共用方式為


列舉值範本資料類型

ENUMERATOR 資料類型具有限制為一組權杖的允許值。

*DataType:ENUMERATOR 會指示範本定義列舉資料類型。 此資料類型會輸出為 XML 架構 simpleType 宣告,此宣告衍生自 字串 類型,並具有指定每個允許列舉值的限制。 下列指示詞可用來完整定義 ENUMERATOR 資料類型:

  • *XMLDataType (必要) 。 要指派給 XML 資料類型的 NCName,將用來在產生的 XML 架構中定義此列舉。 每個列舉類型都必須有唯一的 NCName。 此名稱必須對所有XSD_DEFINED和 ENUMERATOR 類型是唯一的。 若要避免與 GDL 剖析器所定義的資料類型發生衝突,您應該避免以 「GDL_」 和 「GDLW_」 開頭的 NCName。

  • *EnumeratorList (必要) 。 列舉值標記的清單。 每個權杖都必須是有效的 GDL 符號,而且必須符合 XSD 架構針對架構元件值所施加的任何其他需求: < 列舉 > 。

  • *ArrayLabel (選擇性) 。 如果指定這個指示詞,剖析器篩選準則預期值會以括弧括住,前面加上指定的陣列標籤。

要剖析為 ENUMERATOR 資料類型的值必須符合 *ElementTags 指示詞所定義的其中一個標記。

請考慮下列範本。

*Template:  COLORS
{
    *Type:  DATATYPE
    *DataType:   ENUMERATOR
    *XMLDataType: "colors"
    *EnumeratorList: (YELLOW, MAGENTA, CYAN, BLACK, RED, GREEN, BLUE)
}

上述範本會導致剖析器篩選準則建立下列 XML 架構專案。

    <simpleType name = "colors">
        <restriction base="string">
            <enumeration value="YELLOW"/>
            <enumeration value="MAGENTA"/>
            <enumeration value="CYAN"/>
            <enumeration value="BLACK"/>
            <enumeration value="RED"/>
            <enumeration value="GREEN"/>
            <enumeration value="BLUE"/>
        </restriction>
    </simpleType>

剖析器篩選也會建立對應的包裝資料類型。

    <complexType name = "GDLW_colors">
        <simpleContent>
            <extension base="gdl:colors">
                <attribute name="Name" type="string" use="optional"/>
                <attribute name="Personality" type="string" use="optional"/>
            </extension>
        </simpleContent>
    </complexType>

請考慮下列 GDL 專案。

*Color: GREEN

並考慮 ACOLOR 範本,它會宣告 *Color GDL 屬性具有範本 COLORS 所定義的 *ValueType ,如下列程式碼範例所示。

*Template:  ACOLOR
{
    *Name:  "*Color"
    *Type:  ATTRIBUTE
    *ValueType:  COLORS
    *Additive: LEAST_TO_MOST_RECENT
}

如果使用 ACOLOR 範本解譯先前的 GDL 專案,就會發生產生的 XML 輸出。

    <GDL_ATTRIBUTE Name="*Color"  xsi:type="GDLW_colors" >GREEN</GDL_ATTRIBUTE>

XML 屬性 xsi:type 會定義GDL_ATTRIBUTE專案的這個實例,以保存範本定義的實值型別,代表 XML 預設命名空間中定義的列舉。