考慮下面的模式:在第6行XML模式中的ref和type有什麼區別?
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Root">
<xs:sequence>
<xs:element ref="Child" />
<xs:element name="Child2" type="Child" />
</xs:sequence>
<xs:attribute ref="Att" />
<xs:attribute name="Att2" type="Att" />
</xs:complexType>
<xs:complexType name="Child">
<xs:attribute ref="Att" />
</xs:complexType>
<xs:attribute name="Att" type="xs:integer" />
</xs:schema>
的ref
爲 「孩子」 失敗,而type
第7點進行驗證。對於該屬性,ref
成功,而type
失敗。我試圖理解爲什麼。
我對ref
的理解是,它只是引用另一個元素,並指定您期望在該位置看到引用類型(具有定義中給出的名稱)的實例。顯然我錯了,那麼ref
實際上是什麼意思?
好的,我得到'type'只能引用類型定義 - 這是有道理的。但是爲了澄清'ref':它只能指向一個預先存在的元素實例並插入一個它的克隆? –
是的,我認爲可以這樣說(如果「實例」是指在xsd中聲明某個頂級元素)。 另一個區別是:當你使用'type'的時候,你可以有兩個具有不同名稱的元素具有相同的結構。當你使用'ref'的時候,你在任何地方都有相同名稱或結構的元素。 –