2

要素名は同じで名前空間が異なる2つのXMLスキーマがあります。xjcを使用すると、コンパイラは同じクラスパスと要素に要素を割り当てます。以下に示すように、根本的な問題は、先頭に数字が付いたXMLスキーマ名前空間の処理にあります。具体的には1.0と1.1です。XJCは、これらの異なるURIを同じクラスパスにコンパイルしています。具体的には_1。これにより、同じクラスパスとの衝突が発生しています。

com.companyabc.namespaces.eda.process._1.TheChangeType

1.0を_1_0にバインドし、1.1を_1_1にバインドするためのbindings.xjbの構文は何ですか?

ありがとう!!!

XMLスキーマ1: http: //namespaces.companyABC.com/EDA/Process/1.0/TheChange

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:p10="http://namespaces.companyABC.com/EDA/Process/1.0"
targetNamespace="http://namespaces.companyABC.com/EDA/Process/1.0"
elementFormDefault="qualified">
<xs:element name="TheChange" type="p10:TheChangeType" />
<xs:complexType name="TheChangeType">
    <xs:sequence>
        <xs:element name="Field1" type="xs:string" />
    </xs:sequence>
</xs:complexType>
</xs:schema>

XMLスキーマ2: http: //namespaces.companyABC.com/EDA/Process/1.1/TheChange

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:p11="http://namespaces.companyABC.com/EDA/Process/1.1"
targetNamespace="http://namespaces.companyABC.com/EDA/Process/1.1"
elementFormDefault="qualified">
<xs:element name="TheChange" type="p11:TheChangeType" />
<xs:complexType name="TheChangeType">
    <xs:sequence>
        <xs:element name="Field1" type="xs:string" />
        <xs:element name="Field2" type="xs:string" />
    </xs:sequence>
</xs:complexType>
</xs:schema>

エラー:

[ant:xjc] [ERROR] A class/interface with the same name "com.companyabc.namespaces.eda.process._1.TheChangeType" is already in use. Use a class customization to resolve this conflict.
[ant:xjc]   line 3 of file:/D:/source/1.0/TheChange.xsd

これは、XSDスキーマ注釈を使用するソリューションです。ただし、ソリューションは、bindings.xjbとアノテーションのバインディングパターンとして実装する必要があります。注釈を付けるには、各スキーマに注釈を付ける必要があります。これは問題です。

<xsd:annotation>
    <xsd:appinfo>
        <jaxb:schemaBindings>
            <jaxb:package name="com.companyabc.namespaces.eda.process._1_0" />
        </jaxb:schemaBindings>
    </xsd:appinfo>
</xsd:annotation>

            <jaxb:package name="com.companyabc.namespaces.eda.process._1_1" />

このアノテーションは、bindings.xjbのバインディングパターンとしてどのように実装されていますか?

4

0 に答える 0