从Java中的xsd文件生成xml String

时间:2016-06-17 13:23:43

标签: java xml xsd

我有一个大型架构文件(.xsd),您可以选择以下选项:

<xs:element name="MyData">
    <xs:complexType>
        <xs:choice maxOccurs="unbounded">
            <xs:element name="AAA" type="AAAType" maxOccurs="unbounded" />
            <xs:element name="BBB" type="BBBType" maxOccurs="unbounded" />
            <xs:element name="CCC" type="CCCType" maxOccurs="unbounded" />
            <xs:element name="DDD" type="DDDType" maxOccurs="unbounded" />
            <xs:element name="EEE" type="EEEType" maxOccurs="unbounded" />
            <xs:element name="FFF" type="FFFType" maxOccurs="unbounded" />
            <xs:element name="GGG" type="GGGType" maxOccurs="unbounded" />
            <xs:element name="HHH" type="HHHType" maxOccurs="unbounded" />
            <xs:element name="III" type="IIIType" maxOccurs="unbounded" />
            <xs:element name="JJJ" type="JJJType" maxOccurs="unbounded" />
            <xs:element name="KKK" type="KKKType" maxOccurs="unbounded" />
            <xs:element name="LLL" type="LLLType" maxOccurs="unbounded" />
            <xs:element name="MMM" type="MMMType" maxOccurs="unbounded" />
            <xs:element name="NNN" type="NNNType" maxOccurs="unbounded" />
            <xs:element name="OOO" type="OOOType" maxOccurs="unbounded" />
            <xs:element name="PPP" type="PPPType" maxOccurs="unbounded" />
            <xs:element name="QQQ" type="QQQType" maxOccurs="unbounded" />
            <xs:element name="RRR" type="RRRType" maxOccurs="unbounded" />
            <xs:element name="SSS" type="SSSType" maxOccurs="unbounded" />
            <xs:element name="TTT" type="TTTType" maxOccurs="unbounded" />
            <xs:element name="UUU" type="UUUType" maxOccurs="unbounded" />
            <xs:element name="VVV" type="VVVType" maxOccurs="unbounded" />
            <xs:element name="WWW" type="WWWType" maxOccurs="unbounded" />
            <xs:element name="XXX" type="XXXType" maxOccurs="unbounded" />
            <xs:element name="YYY" type="YYYType" maxOccurs="unbounded" />
            <xs:element name="ZZZ" type="ZZZType" maxOccurs="unbounded" />
        </xs:choice>
        <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
</xs:element>

每种类型都有自己的序列和复杂类型。有没有一种方法可以用Java编程,我可以选择它作为字符串,程序在模式文件中查找并输出XML字符串?与给定模式在Eclipse中创建XML文件的方式类似,我想以编程方式进行。

1 个答案:

答案 0 :(得分:2)

查看JAXB,它读取模式文件并生成遵循XSD中设置的规则的Java类。它基本上创建了POJO对象,它有一堆setter可以轻松填充所需的XML数据。

JAXB是常用的,无论如何都值得学习。

请参阅此处的官方文档

Lesson: Introduction to JAXB