次の方法で共有


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) 生成フェーズと解析フェーズで追加の処理を必要とするように、参照先フィールドにフラグを設定します。 これは、自動的に処理できない複雑なフィールドに使用されます。