我想從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