1. JAXB datasets.xml 읽기.
/** * JAXB - datasets.xml data 읽기 */ public Datasets readXml() { Datasets datasets = null; try { JAXBContext jaxbContext = JAXBContext.newInstance("com.fdi.jaxb.xml.datasets"); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); datasets = (Datasets) unmarshaller.unmarshal(new File("d:/datasets.xml"));
List<DatasetComplexType> list_dct = datasets.getDataset();
for (DatasetComplexType dct : list_dct) { System.out.println("Name : " + dct.getName()); System.out.println("Type : " + dct.getType()); System.out.println("Scope: " + dct.getScope());
List<DatasetComplexType.Item> list_item = dct.getItem();
for (DatasetComplexType.Item item : list_item) { System.out.println("Trim : " + item.getTrim()); System.out.println("Value: " + item.getValue()); System.out.println("Name : " + item.getName()); } } } catch (JAXBException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return datasets; } |
2. JAXB datasets.xml 생성 및 수정.
2.1. datasets.xml 생성.
/** * Create new xml file which follows xml schema specified by the JAXB object. */ public void createXml() { ObjectFactory objFactory = new ObjectFactory(); Datasets datasets = objFactory.createDatasets(); List<DatasetComplexType> list_dct = datasets.getDataset(); DatasetComplexType dct = objFactory.createDatasetComplexType(); dct.setName("DATASET_NAME"); dct.setScope("[0,10]"); dct.setType("RECORD"); list_dct.add(dct); List<DatasetComplexType.Item> list_item = dct.getItem(); DatasetComplexType.Item item = null;// // 임의로 Item 10개를 생성 for (int i = 0; i < 10; i++) { item = objFactory.createDatasetComplexTypeItem(); item.setName("ITEM_NAME[" + i + "]"); item.setValue("ITEM_VALUE[" + i + "]"); list_item.add(item); } PrintWriter printWriter = null; try { printWriter = new PrintWriter(new FileWriter(new File("d:/datasets.xml"))); JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true)); marshaller.marshal(datasets, printWriter); } catch (IOException e) { e.printStackTrace(); } catch (JAXBException e) { e.printStackTrace(); } finally { if (printWriter != null) try { printWriter.close(); } catch (Exception e) {} } } |
2.2. datasets.xml 수정.
/** * update xml file. */ public void updateXml() { Datasets datasets = readXml(); List<DatasetComplexType> list_dct = datasets.getDataset(); for(DatasetComplexType dct : list_dct) { dct.getName(); dct.getScope(); dct.getType();
if("DATASET_NAME".equals(dct.getName())) { dct.setScope("[0,250]"); dct.setType("ARRAY"); } List<DatasetComplexType.Item> list_item = dct.getItem();
ObjectFactory objFactory = new ObjectFactory(); Item item = objFactory.createDatasetComplexTypeItem(); item.setName("TEST001"); item.setValue("TESTVAL001"); item.setTrim("N"); list_item.add(item); }
PrintWriter printWriter = null; try { printWriter = new PrintWriter(new FileWriter(new File("d:/datasets.xml"))); JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true)); marshaller.marshal(datasets, printWriter); } catch (IOException e) { e.printStackTrace(); } catch (JAXBException e) { e.printStackTrace(); } finally { if (printWriter != null) try { printWriter.close(); } catch (Exception e) {} } } |
'Language > Java' 카테고리의 다른 글
[펌] Shutting Down Threads Cleanly (0) | 2012.04.03 |
---|---|
Java String ltrim & rtrim (0) | 2012.03.14 |
[JAXB] XSD 정의 및 Java 파일 생성 (0) | 2012.01.30 |
[JAXB] Install and xsd Compile (0) | 2012.01.30 |
How to deal with clob data type with Java using JDBC? (0) | 2009.07.08 |