共用方式為


<xdr:ElementType> 項目

定義用於 XML 資料精簡 (XDR) 結構描述 Schema 項目的項目型別。

<ElementType
  content="{empty | textOnly | eltOnly | mixed}" 
  dt:type="datatype" 
  model="{open | closed}" 
  name="idref" 
  order="{one | seq | many}">

屬性

  • content
    指出內容是否必須空白或者可包含文字、項目或兩者同時包含的指示器。以下幾個值可以指定到此屬性中。content 屬性的預設值為 mixed。當 content 屬性設為 mixed 時,order 屬性就必須要有 many 值。

    empty

    項目不可包含內容。

    textOnly

    項目只能包含文字,不能包含項目。若 model 屬性設為 open,則項目可包含文字與其他未命名的項目。

    eltOnly

    項目只能包含指定的項目。它不可包含任何自由文。

    mixed

    項目只能包含具名項目與文字的組合。預設值是 mixed。若 content 屬性的值為 mixed,則在項目子系的數量超過指定界限時,minOccursmaxOccurs 屬性將不會觸發驗證錯誤。

ms256223.note(zh-tw,VS.100).gif注意:
不允許具有 content="empty" 與 model="open" 的項目。

範例

說明

下列範例將說明各種 content 屬性值的用法。

舊版程式碼範例

下列範例將說明對等文件類型定義 (DTD) 的 content 屬性。

  • dt:type
    項目的資料型別。有效的資料型別定義於 XDR 結構描述資料型別參考中。
  • model
    指出內容是否只能包含內容模型中所定義者的指示器。預設值為 open

    <ElementType name="x" model="open"/>
    

    當模型定義為 open 時,項目即可包含並未在內容模型中明確宣告的其他項目或屬性。這些其他的標記可能來自於相同或不同的命名空間中。若它們位於相同的命名空間中,則結構描述中必須要有它們的對應 ElementTypeAttributeType 定義。

    當模型定義為 closed 時,項目就不可包含內容模型中未指定的項目與混合內容。DTD 會使用封閉模型。

  • name
    項目的名稱。這是必要屬性。若此項目型別被宣告為其他項目型別的有效子系,則此名稱會指定在 element 項目中。

    <ElementType name="x">
    </ElementType>
    

    DTD 對等用法如下所示。

    <!ELEMENT x EMPTY>
    
  • order
    指出項目如何顯示的指示器。此指示器可具有以下的值。

    one

    只允許一組項目其中之一。在指定了 one 屬性的情況下,若要讓文件正確地驗證,則必須將 ElementTypemodel 屬性指定為 closed

    seq

    要求項目以指定順序出現。

    many

    允許項目以任何順序出現 (或根本不出現)。若您指定了 manyorder 屬性,則 maxOccurs 值在驗證期間就不再有關聯。

    若要指定有效的順序,必須要有 seq 值。例如,它可用來指定特定的順序 (例如 x1,y1x2,y2) 有效,而沒有其他可能之組合有效的時機。seq 值擔負的角色和 DTD 中的括弧相同。預設值是 seq

    下列範例說明 one 設定。當 one 指定給 order 屬性時,model 屬性的值必須為 closed

    下列範例說明 seq 設定。

    下列範例說明 many 設定。

    order 屬性的 many 設定使得 minOccursmaxOccurs 屬性在驗證期間不再有關聯。請不要使用 order 屬性的 many 設定來搭配 minOccursmaxOccurs,而應改用 seq 設定。例如,請考量下列結構描述,它會設定 order="seq"

若下列 XML 文件對前述的結構描述進行驗證,此驗證將會失敗,因為 Publisher 項目的數量超過 maxOccurs 的指定值 1。但如果將 order 值設為 many,則因為會忽略 maxOccurs="1" 設定,所以驗證會在發生錯誤的情況下順利執行。

項目資訊

發生次數

無限制

父項目

結構描述

項目子系

attribute, AttributeType, datatype, description, element, group

項目屬性

標記 說明

Name="idref"

ElementTypeAttributeType 項目都必須具有名稱。

Model="open"

此項目中允許未在內容模型中指定的項目或混合內容。若要為特定的定義建立子類別,則此設定必須設為開放 (在未來實作繼承時)。

Model="closed"

此項目中不允許未在內容模型中指定的項目或混合內容。

content="empty"

項目不可包含內容。

content="textOnly"

項目只能包含文字,不能包含項目。若 model="open",則項目可能仍包含文字與其他未命名的項目。

*

content="mixed"

項目只能包含具名項目與混合文字的組合。若 model="open",則項目可能仍包含文字與其他未命名的項目。表示 order='many' 且 maxOccurs="*"!

order='one'

只允許一組項目其中之一。

*

order='seq'

表示項目以列出的順序出現。對於項目清單而言,這與預設值類似,但若為順序分組,則必須使用此方法,例如在 x1,y1x2,y2 合法,但其他組合都不合法的情況下。擔負的角色和 DTD 中的括弧相同。

order='many'

項目能以任何順序出現 (或根本不出現)。

dt:type=datatype

指定項目應包含整數。如需基本資料型別的清單,請參閱<XDR 結構描述資料型別參考>。

備註

「項目型別」這個詞彙表示所有共用名稱的所屬項目都是執行個體的項目型別。項目型別宣告於結構描述中;項目產生於文件中。項目型別會以 ElementType 項目型別進行宣告。

範例

另請參閱

參考

XDR 結構描述資料型別參考