質問: どのように私は、XJC/JAXBは、同じ名前空間内の重複elementdefinitionsを含むいくつかのスキーマのpropperのjavaclassesを生成するのですか?JAXB
情報: 私は3つの.xsdスキーマを持っています:A、B、Cはすべて同じtargetnamespaceを持っています。 彼らは私に与えられた三つのshemasであり、私はどのような方法ででもそれらを変更することを許されていません。
彼らAもB又はCに見出されるいくつかの要素を有している(ただし、Aは、自己の多くが同様の要素を宣言した) 例:これは、AとCのために同じ「コード」である。
<xs:simpleType name="y_ym_ymdDatoType">
<xs:union memberTypes="arcgYearType arcgYearMonthType arcDateType"/>
</xs:simpleType>
<xs:simpleType name="arcgYearType">
<xs:restriction base="xs:gYear">
<xs:minInclusive value="1700"/>
<xs:maxInclusive value="2100"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcgYearMonthType">
<xs:restriction base="xs:gYearMonth">
<xs:minInclusive value="1700-01"/>
<xs:maxInclusive value="2100-12"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcDateType">
<xs:restriction base="xs:date">
<xs:minInclusive value="1700-01-01"/>
<xs:maxInclusive value="2100-12-31"/>
</xs:restriction>
</xs:simpleType>
javaclassesにそれらをコンパイルするXJCを使用する場合は
、私は次の例外を取得:arcgYearType、arcgYearMonthTypeとarcDateType:
[ERROR] 'y_ym_ymdDatoType' is already defined
line 297 of file:../c.xsd
[ERROR] (related to above error) the first definition appears here
line 309 of file:../a.xsd
と同じことが他の要素に起こります。
私はこの問題を解決する可能性のあるバインディングファイルについて読んだことがありますが、それを行う方法はわかりませんので、例が非常に優先されます。
XML要素が実際に出てくるときに名前を変更するのではなく、生成されたjavaclassesの名前を変更するだけですか? –
生成されたJavaクラスの名前を変更しています。デフォルトで 'FixedIncomeBook.java'を取得し、このバインディングで' PartyFixedIncomeBook.java'を取得します –
私は以下を取得します:[ERROR]サポートされていないバインディング名前空間 ""。おそらくあなたは "http://java.sun.com/xml/ns/jaxb/xjc"を意味しましたか? ファイルの行4:/../ C.xsd 行番号4はスキーマ定義です。 何が間違っているのですか? –