JAXB

1. 根據xsd生成java類

xsd文件

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
            jxb:version="2.0">

    <xsd:element name="Greetings" type="GreetingListType"/>

    <xsd:complexType name="GreetingListType">
        <xsd:sequence>
            <xsd:element name="Greeting" type="GreetingType"
                         maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="GreetingType">
        <xsd:sequence>
            <xsd:element name="Text" type="xsd:string"/>
        </xsd:sequence>
        <xsd:attribute name="language" type="xsd:language"/>
    </xsd:complexType>

</xsd:schema>

pom文件

<build>
        <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>1.5</version>
            <executions>
                <execution>
                    <id>xjc</id>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>src/main/resources</schemaDirectory>
                <schemaFiles>test.xsd</schemaFiles>
                <outputDirectory>src/main/jaxb</outputDirectory>
                <packageName>abadboy.com.jaxb</packageName>
                <clearOutputDir>true</clearOutputDir>
            </configuration>
        </plugin>
        </plugins>
    </build>

2. marshal

private static void marshal() throws IOException {
        ObjectFactory factory = new ObjectFactory();
        GreetingListType greetingListType = factory.createGreetingListType();

        GreetingType greetingType = factory.createGreetingType();
        greetingType.setLanguage("English");
        greetingType.setText("Hello");

        GreetingType greetingType1 = factory.createGreetingType();
        greetingType1.setLanguage("Chinese");
        greetingType1.setText("World");

        greetingListType.getGreeting().add(greetingType);
        greetingListType.getGreeting().add(greetingType1);

        File file = new File("file.xml");
        OutputStream fileOutputStream = new FileOutputStream(file);
        JAXB.marshal(greetingListType, System.out);
        JAXB.marshal(greetingListType,fileOutputStream);

        fileOutputStream.close();
    }

3. unMarshal

 private static void unMarshal() {
        InputStream in = JaxbTest.class.getClassLoader().getResourceAsStream("file.xml");
        GreetingListType greetingListType = JAXB.unmarshal(in, GreetingListType.class);
        for (GreetingType greetingType : greetingListType.getGreeting()) {
            System.out.println(greetingType.getLanguage()+"     "+greetingType.getText() );
        }
    }
 StringWriter sw = new StringWriter();
 JAXB.marshal(xxxxxx, sw);
 result = session.createTextMessage(sw.toString());
發佈了119 篇原創文章 · 獲贊 78 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章