이러한 바이트 코드는 WSDAPI에서 복합 형식을 설명하는 바이트 코드 테이블을 사용하여 XML을 구문 분석하고 생성하는 데 사용됩니다.
형식의 바이트 코드 테이블은 형식의 이진(메모리 내) 및 XML(온-더-와이어) 표현을 모두 나타냅니다. 바이트 코드 테이블은 특수 작업, 즉 OpEndOfTable종료되는 작업 목록으로 구성됩니다. 작업은 1바이트 작업 코드와 0바이트 이상의 인수 데이터로 구성됩니다.
| 바이트 코드 | 묘사 |
|---|---|
| OpNone | 아무것도 일치하지 않습니다. |
| OpEndOfTable | 바이트 코드 테이블의 끝을 나타냅니다. |
| OpBeginElement(이름) | 요소 시작 토큰을 지정된 이름과 일치합니다. 이름은 4 바이트 인코딩된 형식으로 테이블에 나타납니다. OnBeginElement는 일치하는 OpEndElement로 끝나는 절을 시작합니다. OpBeginElement와 일치하는 OpEndElement 사이에 0개 이상의 전체 절이 나타나야 합니다. |
| OpBeginAnyElement | 요소 시작 토큰을 모든 이름과 일치합니다. OnBeginAnyElement는 일치하는 OpEndElement로 끝나는 절을 시작합니다. OpBeginAnyElement와 일치하는 OpEndElement 사이에 0개 이상의 전체 절이 나타나야 합니다. |
| OpEndElement | OpBeginElement 또는 OpBeginAnyElement로 시작된 절을 종료합니다. |
| OpElement(이름) | 전체 요소를 표시된 이름과 일치합니다. 이름은 4 바이트 인코딩된 형식으로 테이블에 나타납니다. |
| OpAnyElement | 전체 요소를 어떤 이름으로든 일치합니다. |
| OpAnyElements | 임의의 개수의 요소와 임의의 이름을 일치합니다. |
| OpAnyText | 텍스트 토큰과 일치합니다. |
| OpAttribute(이름) | 특성의 레이블 토큰을 지정된 이름과 일치합니다. OpAttribute는 테이블에 후속 절을 포함하는 절을 시작합니다. 후속 절은 특성의 값 부분과 일치하는 데 사용됩니다. OpAttribute 절은 항상 OpBeginElement 또는 OpBeginAnyElement 작업 이후 또는 다른 OpAttribute 절 후에 나타납니다. |
| OpBeginChoice | OpBeginChoice는 일치하는 OpEndChoice로 끝나는 절을 시작합니다. OpBeginChoice와 일치하는 OpEndChoice 사이에 0개 이상의 전체 절이 나타나야 합니다. 외부 절은 내부 절 중 하나와 일치하는 토큰과 일치합니다. 마지막 절이 OpAnything일 수 있다는 점을 제외하고 모든 내부 절은 OpBeginElement로 시작해야 합니다. 이 구문은 XSD 선택 파티클에 해당합니다. |
| OpEndChoice | OpBeginChoice로 시작된 절을 종료합니다. |
| OpBeginSequence | OpBeginSequence는 일치하는 OpEndSequence로 끝나는 절을 시작합니다. OpBeginSequence와 OpEndSequence 사이에 0개 이상의 전체 절이 나타나야 합니다. 외부 절은 모든 내부 절과 일치하는 토큰을 순서대로 일치합니다. 이 구문은 XSD 시퀀스 파티클에 해당합니다. |
| OpEndSequence | OpBeginSequence로 시작된 절을 종료합니다. |
| OpBeginAll | OpBeginAll은 일치하는 OpEndAll로 끝나는 절을 시작합니다. OpBeginAll과 OpEndAll 사이에 전체 절이 0개 이상 표시되어야 합니다. 외부 절은 모든 시퀀스의 내부 절과 일치하는 토큰과 일치합니다. 각 내부 절과 관련된 발생 연산자는 각 절에 대한 토큰이 발생할 수 있는 횟수를 나타냅니다. 기본값은 한 번입니다. 지정된 절이 여러 번 발생하면 다른 내부 절의 발생과 섞일 수 있습니다. 마지막 절이 OpAnything일 수 있다는 점을 제외하고 모든 내부 절은 OpBeginElement로 시작해야 합니다. 이 구문은 XSD 모든 파티클에 해당합니다. |
| OpEndAll | OpBeginAll로 시작된 절을 종료합니다. |
| OpAnything | 다양한 요소 및 텍스트 토큰과 일치합니다. |
| OpAnyNumber | 후속 절이 여러 번 발생할 수 있음을 나타냅니다. OpAnyNumber는 후속 절의 끝에서 종료되는 절을 시작합니다. |
| OpOneOrMore | 후속 절이 하나 이상 발생할 수 있음을 나타냅니다. OpOneOrMore는 후속 절의 끝에서 종료되는 절을 시작합니다. |
| OpOptional | 후속 절이 0번 또는 한 번 발생할 수 있음을 나타냅니다. OpOptional은 후속 절의 끝에서 종료되는 절을 시작합니다. |
| OpFormatInt8(type,field) | 텍스트 토큰에서 부가된 8비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatInt8 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatInt16(type,field) | 부가된 16비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatInt16 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatInt32(type,field) | 텍스트 토큰에서 부가된 32비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatInt32 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatInt64(type,field) | 텍스트 토큰에서 부가된 64비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatInt64 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatUInt8(type,field) | 텍스트 토큰에서 부호 없는 8비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatUInt8 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatUInt16(type,field) | 텍스트 토큰에서 부호 없는 16비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatUInt16 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatUInt32(type,field) | 텍스트 토큰에서 부호 없는 32비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatUInt32 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatUInt64(type,field) | 텍스트 토큰의 부호 없는 64비트 정수와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 이진 표현의 오프셋을 나타냅니다. OpFormatUInt64 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatUnicodeString(type,field) | 텍스트 토큰의 전체 값으로 구성된 문자열과 일치합니다. 4바이트 오프셋 인수는 문자열에 대한 포인터가 현재 이진 컨텍스트에 나타나는 오프셋을 나타냅니다. OpFormatUnicodeString 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatDom(type,field) | 후속 절과 일치하는 모든 XML이 DOM(WSDXML_NODE 구조 목록)으로 이진 형식으로 표시됨을 나타냅니다. OpFormatDom은 후속 절의 끝에서 종료되는 절을 시작합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 첫 번째 WSDXML_NODE 대한 포인터가 나타나는 오프셋을 나타냅니다. OpFormatDom 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatStruct(structType, type, field) | 후속 절의 이진 컨텍스트가 현재 이진 컨텍스트에서 참조하는 구조체임을 나타냅니다. OpFormatStruct는 후속 절의 끝에서 종료되는 절을 시작합니다. 두 개의 4-바이트 인수 중 첫 번째 인수는 구조체의 크기를 나타냅니다. 두 번째 인수는 현재 이진 컨텍스트에서 구조체에 대한 포인터가 나타나는 오프셋을 나타냅니다. OpFormatStruct 매크로는 표시된 구조체 형식(structType)의 크기를 계산하고 크기를 첫 번째 인수로 제공합니다. 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 두 번째 인수로 오프셋되는 오프셋을 제공합니다. |
| OpFormatUri(type,field) | 텍스트 토큰의 URI와 일치합니다. 4바이트 오프셋 인수는 현재 이진 컨텍스트에서 URI 문자열에 대한 포인터가 나타나는 오프셋을 나타냅니다. OpFormatUri 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatUuidUri(type,field) | 텍스트 토큰의 UUID 프로토콜 URI와 일치합니다. 4바이트 오프셋 인수는 GUID 구조체 형식의 URI가 현재 이진 컨텍스트에 나타나는 오프셋을 나타냅니다. OpFormatUuidUri 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatName(type,field) | 텍스트 토큰의 정규화된 이름과 일치합니다. 4바이트 오프셋 인수는 정규화된 이름(WSDXML_NAME 구조체)에 대한 포인터가 현재 이진 컨텍스트에 나타나는 오프셋을 나타냅니다. OpFormatName 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatListInsertTail(nodeType, type, field) | 후속 절의 모든 발생에 대한 이진 컨텍스트가 현재 이진 컨텍스트에서 참조하는 singly-linked 목록의 구조체임을 나타냅니다. OpFormatListInsertTail은 후속 절의 끝에서 종료되는 절을 시작합니다. 두 개의 4-바이트 인수 중 첫 번째 인수는 구조체의 크기를 나타냅니다. 두 번째 인수는 현재 이진 컨텍스트에서 구조체에 대한 포인터가 나타나는 오프셋을 나타냅니다. 구조체를 목록으로 연결하는 '다음' 포인터는 항상 구조체의 첫 번째 필드입니다. OpFormatListInsertTail 매크로는 표시된 구조체 형식(nodeType)의 크기를 계산하고 크기를 첫 번째 인수로 제공합니다. 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 두 번째 인수로 오프셋되는 오프셋을 제공합니다. |
| OpFormatType(typetable, type,field) | 표시된 형식 테이블과 일치하는 토큰을 일치시키고 해당 테이블의 이진 컨텍스트가 표시된 오프셋의 현재 이진 컨텍스트에 포함됨을 나타냅니다. 두 개의 4 바이트 인수 중 첫 번째는 형식 테이블에 대한 인코딩된 참조입니다. 두 번째 인수는 오프셋입니다. OpFormatType 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatDynamicType(이름, 형식, 필드) | 지정된 이름을 사용하여 동적으로 가져온 형식 테이블과 일치하는 토큰을 일치시키고 해당 테이블의 이진 컨텍스트가 표시된 오프셋의 현재 이진 컨텍스트에 포함되어 있음을 나타냅니다. 두 개의 4 바이트 인수 중 첫 번째는 형식 테이블을 식별하는 이름입니다. 일반적으로 이 이름은 4-바이트 값을 생성하는 "'body'"와 같은 작은따옴표 붙은 문자열 형식으로 지정됩니다. 두 번째 인수는 오프셋입니다. OpFormatDynamicType 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpFormatLookupType(urifield, type, field) | 현재 이진 컨텍스트의 표시된 오프셋에서 URI로 식별된 형식 테이블과 일치하는 토큰을 일치시키고 해당 테이블의 이진 컨텍스트가 현재 이진 컨텍스트에 표시된 오프셋에 포함되어 있음을 나타냅니다. 두 개의 4바이트 인수 중 첫 번째는 현재 이진 컨텍스트에서 형식 URI의 오프셋입니다. 두 번째 인수는 새 이진 컨텍스트에 대한 오프셋입니다. OpFormatLookupType 매크로는 표시된 형식에서 표시된 필드의 오프셋을 계산하고 오프셋을 인수로 제공합니다. |
| OpProcess(type,field) | 참조된 필드에 생성 및 구문 분석 단계 중에 추가 처리가 필요한 것으로 플래그를 지정합니다. 자동으로 처리할 수 없는 복잡한 필드에 사용됩니다. |