0
XSDからXMLファイルを生成するために、Eclipseでinbuilt機能を使用しています。 XMLは以下のように生成されなければならず、別の名前空間の下に 'addressbook'があります。XSD要素の名前空間属性を宣言する
<employee xmlns:ns2="urn:employees_2014_1.lists.webservices.test.com">
<department>8029</department>
<emailAddress>[email protected]</emailAddress>
<employeeAddressBookList>
<ns2:addressbook>
<ns2:addressee>BC</ns2:addressee>
<ns2:addr1>A1</ns2:addr1>
<ns2:addr2>A2</ns2:addr2>
<ns2:city>C1</ns2:city>
<ns2:state>ST1</ns2:state>
<ns2:zip>10001</ns2:zip>
</ns2:addressbook>
</employeeAddressBookList>
<employeeId>000001</employeeId>
</employee>
私のXSDは以下の通りです。
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="employee">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="department" type="xsd:int" />
<xsd:element name="emailAddress" type="xsd:string" />
<xsd:element name="employeeAddressBookList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ns2:addressbook">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ns2:addressee" type="xsd:string" />
<xsd:element name="ns2:addr1" type="xsd:string" />
<xsd:element name="ns2:addr2" type="xsd:string" />
<xsd:element name="ns2:city" type="xsd:string" />
<xsd:element name="ns2:state" type="xsd:string" />
<xsd:element name="ns2:zip" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="employeeId" type="xsd:int" />
</xsd:sequence>
<xsd:attribute name="xmlns:ns2" type="xs:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
これは、名前空間値を除いたXMLを生成しました。
<employee xmlns:ns2="">
<department>8029</department>
<emailAddress>[email protected]</emailAddress>
<employeeAddressBookList>
<ns2:addressbook>
<ns2:addressee>BC</ns2:addressee>
<ns2:addr1>A1</ns2:addr1>
<ns2:addr2>A2</ns2:addr2>
<ns2:city>C1</ns2:city>
<ns2:state>ST1</ns2:state>
<ns2:zip>10001</ns2:zip>
</ns2:addressbook>
</employeeAddressBookList>
<employeeId>000001</employeeId>
</employee>
私は私が名前空間に値を追加するにはどうすればよい
<employee xmlns:ns2="">
...このラインについて話していますか?
私はこのスキーマがデータベースエントリになるため、別のXSDを宣言してインポートするオプションはありません。それは、私はこれらの情報をUIで表示するためにサードパーティのシステムを使用しているようです。彼らはXMLを読んでデータを表示します。 UIユーザーがコンテンツを変更すると、アプリケーションはDBからスキーマをフェッチし、変更された値で新しいXMLを作成します。私はそのシステムを変更することはできません。したがって、私が持っているオプションは、すべての要素に対してデフォルトのスキーマを使用するようにXMLを変更することだけです。 – Renjith
システムで、異なる名前空間に対して2つのスキーマ文書をスキーマに持つことができない場合は、 xs:importはこれを実現するための方法なので、複数の名前空間のドキュメントインスタンスです。 –