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