我想了解一個XSD架構。我無法發佈原始模式,但它有點如下。 我的問題是,我不明白爲什麼相同的名稱空間(http://www.test.com/test)被引用兩次,一次使用前綴,一次沒有前綴。這有效嗎?如果是,它的用途是什麼?XSD架構 - 多次使用相同的命名空間
另外,當爲這個XSD生成XML時,我會使用前綴還是不使用?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.test.com/test"
xmlns:pre="http://www.test.com/test" targetNamespace="http://www.test.com/test"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="StudentType">
<xs:sequence>
<xs:element name="studentId" type="xs:token" />
<xs:element name="firstName" type="xs:token"/>
<xs:element name="middleName" type="xs:token" minOccurs="0"/>
<xs:element name="lastName" type="xs:token"/>
</xs:sequence>
</xs:complexType>
<xs:element name="students">
<xs:complexType>
<xs:sequence>
<xs:element name="student" type="StudentType" minOccurs="0" maxOccurs="unbounded">
<xs:unique name="uniqueStudentId">
<xs:selector xpath="pre:studentId"/>
<xs:field xpath="."/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
重要的是要認識到,前綴只在單個XML片段中有意義,並且您不必強制使用XSD使用的相同前綴。所有'Hello','你好'和'你好'是完全一樣的東西,從信息角度。 –
感謝您分享此內容。 – kapd