0
我在eclipse中使用內置功能從XSD生成XML文件。 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並顯示數據。如果用戶界面用戶修改了內容,應用程序將從數據庫中獲取模式,並創建一個具有修改值的新XML。我無法改變這個系統。因此,我唯一的選擇是將XML更改爲對所有元素使用默認模式。 – Renjith
如果您的系統不允許您在模式中有兩個模式文檔,對於不同的命名空間,那麼它不允許您擁有一個多名字空間文檔實例,因爲xs:import是實現這一目的的唯一方式。 –