不!他們不一樣!
在第一模式中:元件<tuple>
可以具有在它之下0或多個元件與任何名稱/,那是因爲你下complexType
定義元件的tuple
另外由於必須添加<any>
標籤與minOccurs="0"
和maxOccurs="Unbounded"
<any>
下指定processContents="skip"
它不打擾任何關於它的子元素..
例子:
<tuple>
<foo>data</foo>
<bar foobarattribute="foobardata">data</bar>
</tuple>
如您所見,儘管foo
和bar
及其屬性foobarattribute
未在XSD中定義,但它允許此XML有效。 但它不允許屬性下<tuple>
編輯:
第二個架構: 這是因爲聲明類型anyType
<xsd:element name="tuple" type="xs:anyType"/>
這意味着作爲同它允許元組下的任何元素和任何屬性。示例XML會是這樣:
<tuple foo="bar">
<foobar attrb="value">data</foobar>
</tuple>
你可以觀察,不像第一個示例XML,這<tuple>
下屬性爲好。之間的兩個樣品XSD代碼
一個更重要的區別是: 在要指定的processContents爲「跳過」第一代碼:因爲它的XML處理器不嘗試驗證從指定的命名空間的任何元件..
在第二個代碼中,對於anyType,processContents將是「不嚴格」的:因爲XML處理器試圖爲所需的名稱空間獲取模式並驗證元素。
希望它有幫助..
通常你的答案應該是downvoted;我希望你能改正它。雖然第一行是正確的,但在許多層面上的解釋是錯誤的。 2.中的元組是[anyType](http://www.w3.org/TR/xmlschema-1/#d0e9252),這意味着它可以具有任何屬性,任何元素,混合以及processingContents * * **不嚴;在1.元組支持**元素只有內容**,**沒有屬性**,沒有混合,並且processingContents是**跳過**。 – 2013-03-15 12:12:55
@PetruGardea,謝謝你驗證我的答案。我承認,我在定義案例二時犯了錯誤。出於某種原因,在Vis Studio中,XSD驗證的行爲是不同的。它不會將'no type'視爲'anyType'..我在發佈解決方案之前實際驗證過一次,但也應該使用在線驗證器進行驗證。謝謝,我知道anyType,但是到目前爲止我一直對'沒有類型'有錯誤的印象。我也用processContents信息更新了答案。 – 2013-03-15 12:54:59