열거자 템플릿 데이터 형식

ENUMERATOR 데이터 형식에는 토큰 집합으로 제한된 값이 허용됩니다.

*DataType: ENUMERATOR는 열거형 데이터 형식을 정의하도록 템플릿을 지시합니다. 이 데이터 형식은 허용되는 각 열거자를 지정하는 제한 사항이 있는 문자열 형식에서 파생된 XML 스키마 simpleType 선언으로 출력됩니다. 다음 지시문은 ENUMERATOR 데이터 형식을 완전히 정의하는 데 사용됩니다.

  • *XMLDataType(필수). 생성된 XML 스키마에서 이 열거형을 정의하는 데 사용할 XML 데이터 형식에 할당할 NCName입니다. 각 열거형 형식에는 고유한 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

다음 코드 예제와 같이 *Color GDL 특성을 템플릿 COLORS로 정의된 *ValueType 으로 선언하는 ACOLOR 템플릿을 고려해 보세요.

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

이전 GDL 항목이 ACOLOR 템플릿을 사용하여 해석되는 경우 결과 XML 출력이 발생합니다.

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

XML 특성 xsi:type 은 XML 기본 네임스페이스에 정의된 열거형을 나타내는 템플릿 정의 값 형식을 보유하도록 GDL_ATTRIBUTE 요소의 이 인스턴스를 정의합니다.