2011-03-22 36 views

回答

27

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

+1

所以** ** anyType的比** **任何限制性更強?在第一個例子中,我必須有任何內容的元素,而在第二種情況下,我可以擁有任何元素(即不限於標籤名稱)?是嗎? ** anyType **對元素的名稱施加額外的限制? – user989812323 2011-03-22 09:56:39

+0

@ user989812323是的,你是對的。用'任何'你可以擁有任何你想要的元素。 – dogbane 2011-03-22 10:00:30

+0

注意:xsd:anyType是所有簡單或複雜類型的父類,因此它是DEFAULT類型。所以等於 supernova 2016-04-21 03:09:48

25

郵件列表的帖子在羅布麻的回答鏈接是我不明白,直到我創建了下面的例子:

隨着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的是一種類型的,任何是一個元素