템플릿을 사용하여 데이터 형식 정의
기본 형식과 복합 형식 모두의 모든 데이터 형식은 템플릿을 사용하여 정의해야 합니다. 데이터 형식이 정의되면 모든 특성 템플릿은 *ValueType 지시문을 사용하여 해당 값을 특정 데이터 형식으로 선언할 수 있습니다. 이 지시문의 값은 데이터 형식 템플릿의 이름입니다.
파서 필터가 특성의 인스턴스인 GDL 데이터 항목을 발견하면 해당 데이터 형식에 대해 정의된 구문 규칙에 따라 해당 항목의 값 부분을 구문 분석하려고 시도합니다. 성공하면 파서 필터는 데이터 형식을 해당 기본 XML에 해당하는 데이터 형식으로 분해하고 해당 값을 적절한 XML로 출력합니다. 복합 데이터 형식을 나타내는 생성된 XML은 원래 데이터 형식 정의의 논리적 구조를 유지합니다. 복합 데이터 형식의 자식 요소에는 데이터 형식 템플릿에 정의된 태그로 정의된 이름이 지정됩니다. 이 이름을 지정하면 XML 스냅샷의 사용자 판독기 또는 소프트웨어 클라이언트가 복합 데이터 형식의 각 값을 쉽게 찾고 식별할 수 있습니다.
템플릿은 *Type: DATATYPE 지시문을 설정하여 데이터 형식 템플릿(데이터 형식을 정의하는 템플릿)으로 지정됩니다. 데이터 형식 템플릿 내에서 인식되는 지시문은 다음과 같습니다.
*ValueType:[Datatype 템플릿 이름]. 이 지시문은 특성의 값을 특정 데이터 형식으로 선언합니다. *ValueType 지시문은 특성 템플릿 내에서만 나타날 수 있습니다. 특성 템플릿은 *Type: ATTRIBUTE 지시문이 있는 템플릿입니다.
*DataType:symbol. 이 지시문에는 PASSTHROUGH, XML_TYPE, XSD_DEFINED, ENUMERATOR, FILTER_TYPE, ARRAY, COMPOSITE 또는 MULTIPLE_PERSONALITY 값 중 하나가 있습니다.
*ElementType:list. 이 지시문은 TEMPLATE 데이터 형식 이름 목록을 정의합니다.
*RequiredDelimiter:delimiter. 이 지시문은 따옴표 붙은 문자열을 사용하여 구분 기호를 정의합니다.
*OptionalDelimiter:delimiter. 이 지시문은 따옴표 붙은 문자열을 사용하여 선택적 구분 기호를 정의합니다.
*ArrayLabel:symbol. 이 지시문은 따옴표 붙은 문자열을 사용하여 배열 레이블을 정의합니다.
*ElementTags:list. 이 지시문은 요소 태그에 사용할 기호 목록을 정의합니다.
*EnumeratorList:list. 이 지시문은 열거자 목록에 사용할 기호 목록을 정의합니다.
*XSDTypeDefinition:symbol. 이 지시문은 XSD 형식 정의에 <사용할 Begin/EndValue> 요소로 묶인 임의의 값을 정의합니다.
*ComplexType?:boolean. 이 지시문은 형식이 복잡한지 여부를 정의합니다. 값이 TRUE이면 형식이 복잡합니다. 그렇지 않으면 형식이 단순합니다.
*ArraySize:integer. 이 지시문은 배열의 범위를 정의합니다. 최대 2개의 정수를 사용하여 배열 범위를 지정할 수 있습니다.
*XMLDataType:string. 이 지시문은 따옴표 붙은 문자열을 사용하여 XML 데이터 형식을 정의합니다.
FilterTypeName:string. 이 지시문은 따옴표 붙은 문자열을 사용하여 필터 형식 이름을 정의합니다.
*MaxValue:integer. 이 지시문은 GDL 정수로 값의 최대 크기를 정의합니다.
*MinLength:integer. 이 지시문은 음수가 아닌 GDL 정수로 값의 최소 길이를 정의합니다.
*MaxLength: 정수입니다. 이 지시문은 음수가 아닌 GDL 정수로 값의 최대 길이를 정의합니다.
참고 모든 지시문이 모든 데이터 형식 템플릿 내에서 인식되는 것은 아닙니다.
일반적으로 템플릿을 GDL 특성 항목에 바인딩할 수 없는 경우 해당 특성의 값은 CDATA 섹션 내에서 변경 없이 스냅샷에 내보내지게 됩니다. CDATA는 ATTRIBUTE 요소의 요소 콘텐츠(즉, 자식 요소)로 상주해야 합니다.
예를 들어 파서가 다음 GDL 특성 항목을 설명하는 템플릿을 찾을 수 없다고 가정합니다.
*ModelName: "OEMName LaserJet "
그런 다음 다음과 같이 스냅샷에 항목이 표시됩니다.
<GDL_ATTRIBUTE Name="*ModelName"
<![CDATA["OEMName LaserJet "]]></GDL_ATTRIBUTE>