有關XML,XML-模式,DTD和我真的不明白XSD的區別:任何和XSD:anyType的。差/ XSD之間的相似之處:any和xsd:我讀anyType的
有人可以向我解釋這個或指向一些好文章嗎? (請不要鏈接到XML-Schema規範 - 我讀了,我更糊塗了)
TIA
有關XML,XML-模式,DTD和我真的不明白XSD的區別:任何和XSD:anyType的。差/ XSD之間的相似之處:any和xsd:我讀anyType的
有人可以向我解釋這個或指向一些好文章嗎? (請不要鏈接到XML-Schema規範 - 我讀了,我更糊塗了)
TIA
This post解釋說好聽。我引述:
的xsd:anyType的是一種類型的,像 XSD:整數(雖然XSD:anyType的是 特殊之處在於它可以作爲一個簡單的 或複雜類型行動,它會將 基本上沒有限制它驗證的 樹 - 考慮它 鬆散地與Schema語言的 類似於java.lang.Object)。
樣品使用將是:
<xsd:element name="e" type="xsd:anyType"/>
這將意味着元素命名
<e>
可以具有任何內容,任何 屬性等的xs:any是一個通配符,在內容模型中可用作術語 。例如:
<xsd:complexType name="T">
<xsd:sequence>
<xsd:element ref="A"/>
<xsd:any />
<xsd:element ref="C"/>
</xsd:sequence>
</xsd:complexType>
類型T的元素必須具有內容
<A/><???/><C/>
,其中<???>
可以是 任何命名元素。現在,如果你看看 真的密切存在 近似 XSD定義:在 建議參考給定anyType類型,它使用一個xsd:任何 通配符的話說, 它允許任何元素的手段。
另請參閱XML Schema。
郵件列表的帖子在羅布麻的回答鏈接是我不明白,直到我創建了下面的例子:
隨着anyType的模式:
<xsd:complexType name="Outer">
<xsd:element name="e" type="xsd:anyType" />
</xsd:complexType>
,其允許該格式:
<Outer>
<e> // must be called "e"
// but anything can go inside
</e>
</Outer>
並與任何模式:
<xsd:complexType name="Outer">
<xsd:any />
</xsd:complexType>
,其允許該格式:
<Outer>
//anything can go inside
</Outer>
所以anyType的是一種類型的,任何是一個元素
所以** ** anyType的比** **任何限制性更強?在第一個例子中,我必須有任何內容的元素,而在第二種情況下,我可以擁有任何元素(即不限於標籤名稱)?是嗎? ** anyType **對元素的名稱施加額外的限制? –
user989812323
2011-03-22 09:56:39
@ user989812323是的,你是對的。用'任何'你可以擁有任何你想要的元素。 – dogbane 2011-03-22 10:00:30
注意:xsd:anyType是所有簡單或複雜類型的父類,因此它是DEFAULT類型。所以 等於 –
supernova
2016-04-21 03:09:48