열거자 템플릿 데이터 형식
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 요소의 이 인스턴스를 정의합니다.