我想从xsd使用JAXB插件生成java类,但无法获得我想要的效果。 我的用例是:从xsd与mutlitlevel导入生成java类
a.xsd有一些元素。 b.xsd有一些元素。
composite.xsd需要有一些来自“a.xsd”和“b.xsd”的元素以及它自己的元素。
到目前为止,我已经尝试了很多选择。我可以将xsds(a和b)导入到“composite”中,但这只会使我能够将“a”和“b”中的元素用于“composite”xsd,但是当我使用jaxb生成类时,它不会自动带来“a和b”的所有内容。 例如:
a.xsd -> has "name" element.
b.xsd -> has "phone" element.
composite.xsd -> imports a and b and has "nickname" element.
所以,如果我不明确composite.xsd用“名”和“手机”,生成的Java类不会产生这些。也可能是多级导入(类似composite.xsd的继承包括“b.xsd”和“b.xsd”包括“a.xsd)。
所以我想复合所有元素从”a“和在生成的 “b” 类没有明确地重复a.xsd和composite.xsd b.xsd的元素
所需的输出。
composite.class
name, phone, nickname.
请告知
这里有一些更多的细节与XSD。详细信息: (字段名称不同,即什么我提出了最初的问题,但会给出一个要点。 )。
**a.xsd**
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="Customer">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
**b.xsd**
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="Payments">
<xsd:sequence>
<xsd:element name="amount" type="xsd:float" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
**composite.xsd**
<xsd:include schemaLocation="x.xsd" />
<xsd:include schemaLocation="y.xsd" />
<xsd:complexType name="CustomerPayments">
<xsd:sequence>
<xsd:element name="customer" type="Customer" />
<xsd:element name="payments" type="Payments" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
WITH以上的XSD
,我想要实现的是有一个复合java类(由JAXB行家插件生成的)来自动具有如“名称”和“量”字段从进口/包括xsds。
发布您的XSD,以及您到目前为止尝试过了什么。这将有助于解决问题 – PKR
当然,只需添加示例xsd片段即可。 – Pat