爲了簡單起見,我想在同一個命名空間中有一組文件,因爲它們在概念上是相關的。我有一個主要或中心的xsd,將包含其他模式文件,基本上作爲全局根元素。我的問題是最好的例子說明,但我基本上不能讓我的非中心架構驗證,這是一個命名空間的問題:如何創建同名命名空間設計一致的XSD?
模式1(支持):
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.company.org"
xmlns="http://www.person.org"
elementFormDefault="qualified">
<xsd:simpleType name="test">
<xsd:restriction base="xsd:string">
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="PersonType">
<xsd:sequence>
<xsd:element name="Name" type="test" />
<xsd:element name="SSN" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
模式2(中心):
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.company.org"
xmlns="http://www.company.org"
elementFormDefault="qualified">
<xsd:include schemaLocation="http://www.person.org"/>
<xsd:element name="Company">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Person" type="PersonType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
模式2很好,模式1不驗證。 「test」沒有命名空間,我不知道如何在不破壞我的意圖的情況下爲我的所有文件使用1個命名空間。