これらのバイトコードは、複合型を記述するバイトコード テーブルを使用して XML を解析および生成するために WSDAPI によって使用されます。
型のバイトコード テーブルは、その型のバイナリ (メモリ内) 表現と XML (ネットワーク上) 表現の両方を表します。 バイトコード テーブルは、特殊な操作 (つまり、OpEndOfTable
) によって終了される操作の一覧で構成されます。 1 つの操作は、1 バイトの操作コードの後に 0 バイト以上の引数データが続きます。
Bytecode | 形容 |
---|---|
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 個以上の完全な句を指定する必要があります。 外側の句は、任意のシーケンス内の内部句で一致するトークンと一致します。 各内部句に関連する出現演算子は、各句のトークンが発生する回数を示します。 既定値は 1 回です。 指定した句が複数出現する場合は、他の内部句の出現と混在させる可能性があります。 最後の句が OpAnything である場合を除き、すべての内部句は OpBeginElement で始まる必要があります。 このコンストラクトは、XSD のすべてのパーティクルに対応します。 |
OpEndAll | OpBeginAll で開始された句を終了します。 |
OpAnything | 任意の数の要素とテキスト トークンに一致します。 |
OpAnyNumber | 後続の句が何回でも発生する可能性があることを示します。 OpAnyNumber は、後続の句の末尾で終了する句を開始します。 |
OpOneOrMore | 後続の句が 1 回以上発生する可能性があることを示します。 OpOneOrMore は、後続の句の末尾で終了する句を開始します。 |
OpOptional | 後続の句が 0 回または 1 回発生する可能性があることを示します。 OpOptional は、後続の句の末尾で終了する句を開始します。 |
OpFormatInt8 (型,フィールド) | テキスト トークン内の 8 ビット符号付き整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatInt8 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatInt16 (型,フィールド) | 16 ビット符号付き整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatInt16 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatInt32 (型,フィールド) | テキスト トークン内の 32 ビット符号付き整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatInt32 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatInt64 (型,フィールド) | テキスト トークン内の 64 ビット符号付き整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatInt64 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatUInt8 (型,フィールド) | テキスト トークン内の 8 ビット符号なし整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatUInt8 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatUInt16 (型,フィールド) | テキスト トークン内の 16 ビット符号なし整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatUInt16 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatUInt32 (type,field) | テキスト トークン内の 32 ビット符号なし整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatUInt32 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatUInt64 (type,field) | テキスト トークン内の 64 ビット符号なし整数と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストでのバイナリ表現のオフセットを示します。 OpFormatUInt64 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatUnicodeString (type,field) | テキスト トークンの値全体で構成される文字列と一致します。 4 バイトのオフセット引数は、文字列へのポインターが現在のバイナリ コンテキストに表示されるオフセットを示します。 OpFormatUnicodeString マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatDom (型,フィールド) | 後続の句で一致するすべての XML がバイナリ形式で DOM (WSDXML_NODE構造体のリスト) として表されることを示します。 OpFormatDom は、後続の句の末尾で終了する句を開始します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストで最初のWSDXML_NODEへのポインターが表示されるオフセットを示します。 OpFormatDom マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatStruct (structType,type,field) | 後続の句のバイナリ コンテキストが、現在のバイナリ コンテキストによって参照される構造体であることを示します。 OpFormatStruct は、後続の句の末尾で終了する句を開始します。 2 つの 4 バイト引数の最初の引数は、構造体のサイズを示します。 2 番目の引数は、構造体へのポインターが現在のバイナリ コンテキストに表示されるオフセットを示します。 OpFormatStruct マクロは、指定された構造体型 (structType) のサイズを計算し、最初の引数としてサイズを指定します。 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを 2 番目の引数として指定します。 |
OpFormatUri (型,フィールド) | テキスト トークン内の URI と一致します。 4 バイトのオフセット引数は、URI 文字列へのポインターが現在のバイナリ コンテキストに表示されるオフセットを示します。 OpFormatUri マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatUuidUri (type,field) | テキスト トークン内の UUID プロトコル URI と一致します。 4 バイトのオフセット引数は、現在のバイナリ コンテキストで GUID 構造形式の URI が表示されるオフセットを示します。 OpFormatUuidUri マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatName (型,フィールド) | テキスト トークン内の修飾名と一致します。 4 バイトのオフセット引数は、修飾名 (WSDXML_NAME構造体) へのポインターが現在のバイナリ コンテキストに出現するオフセットを示します。 OpFormatName マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatListInsertTail (nodeType,type,field) | 後続の句のすべての出現に対するバイナリ コンテキストが、現在のバイナリ コンテキストによって参照される 1 つのリンクされたリスト内の構造体であることを示します。 OpFormatListInsertTail は、後続の句の末尾で終了する句を開始します。 2 つの 4 バイト引数の最初の引数は、構造体のサイズを示します。 2 番目の引数は、構造体へのポインターが現在のバイナリ コンテキストに表示されるオフセットを示します。 構造体をリストにリンクする 'next' ポインターは、常に構造体の最初のフィールドです。 OpFormatListInsertTail マクロは、指定された構造体の種類 (nodeType) のサイズを計算し、最初の引数としてサイズを指定します。 マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを 2 番目の引数として指定します。 |
OpFormatType (typetable,type,field) | 指定された型テーブルと一致するトークンと一致し、そのテーブルのバイナリ コンテキストが、指定されたオフセットの現在のバイナリ コンテキストに埋め込まれたことを示します。 2 つの 4 バイト引数の最初の引数は、型テーブルへのエンコードされた参照です。 2 番目の引数はオフセットです。 OpFormatType マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatDynamicType (名前、型、フィールド) | 指定された名前を使用して動的に取得された型テーブルによって一致するトークンと一致し、そのテーブルのバイナリ コンテキストが、指定されたオフセットの現在のバイナリ コンテキストに埋め込まれたことを示します。 2 つの 4 バイト引数の最初の引数は、型テーブルを識別する名前です。 通常、この名前は"'body'" などの単一引用符で囲まれた文字列の形式で指定され、4 バイトの値が生成されます。 2 番目の引数はオフセットです。 OpFormatDynamicType マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpFormatLookupType (urifield,type,field) | 現在のバイナリ コンテキスト内の指定されたオフセットで URI によって識別される型テーブルによって一致するトークンと一致し、そのテーブルのバイナリ コンテキストが、指定されたオフセットの現在のバイナリ コンテキストに埋め込まれたことを示します。 2 つの 4 バイト引数の最初の引数は、現在のバイナリ コンテキストでの型 URI のオフセットです。 2 番目の引数は、新しいバイナリ コンテキストのオフセットです。 OpFormatLookupType マクロは、指定された型の指定されたフィールドのオフセットを計算し、そのオフセットを引数として指定します。 |
OpProcess(type,field) | 生成および解析フェーズ中に追加の処理を必要とするように、参照先フィールドにフラグを設定します。 これは、自動的に処理できない複雑なフィールドに使用されます。 |