WSDAPI-XML-Typ-Bytecodes
Diese Bytecodes werden von WSDAPI verwendet, um XML mithilfe von Bytecodetabellen zu analysieren und zu generieren, die komplexe Typen beschreiben.
Die Bytecodetabelle für einen Typ drückt sowohl die binären (speicherinternen) als auch die XML-Darstellungen (on-the-wire) des Typs aus. Eine Bytecodetabelle besteht aus einer Liste von Vorgängen, die durch einen speziellen Vorgang beendet werden, nämlich OpEndOfTable
. Ein Vorgang besteht aus einem 1-Byte-Vorgangscode, gefolgt von null oder mehr Bytes an Argumentdaten.
Bytecode | Beschreibung |
---|---|
OpNone | Entspricht nichts. |
OpEndOfTable | Gibt das Ende einer Bytecodetabelle an. |
OpBeginElement (Name) | Entspricht einem Starttoken des Elements mit dem angegebenen Namen. Der Name wird in der Tabelle in 4-Byte-codierter Form angezeigt. OnBeginElement startet eine -Klausel, die mit einem übereinstimmenden OpEndElement endet. Null oder mehr vollständige Klauseln müssen zwischen OpBeginElement und dem entsprechenden OpEndElement angezeigt werden. |
OpBeginAnyElement | Entspricht einem Starttoken des Elements mit einem beliebigen Namen. OnBeginAnyElement startet eine -Klausel, die mit einem übereinstimmenden OpEndElement endet. Null oder mehr vollständige Klauseln müssen zwischen OpBeginAnyElement und dem entsprechenden OpEndElement angezeigt werden. |
OpEndElement | Beendet eine Klausel, die mit OpBeginElement oder OpBeginAnyElement gestartet wurde. |
OpElement (Name) | Gleicht ein gesamtes Element mit dem angegebenen Namen ab. Der Name wird in der Tabelle in 4-Byte-codierter Form angezeigt. |
OpAnyElement | Gleicht ein gesamtes Element mit einem beliebigen Namen ab. |
OpAnyElements | Entspricht einer beliebigen Anzahl von Elementen mit beliebigen Namen. |
OpAnyText | Entspricht einem Texttoken. |
OpAttribute (Name) | Entspricht dem Bezeichnungstoken eines Attributs mit dem angegebenen Namen. OpAttribute startet eine -Klausel, die die nachfolgende -Klausel in der Tabelle enthält. Die nachfolgende -Klausel wird verwendet, um den Wertteil des Attributs abzugleichen. OpAttribute-Klauseln werden immer nach OpBeginElement- oder OpBeginAnyElement-Vorgängen oder nach einer anderen OpAttribute-Klausel angezeigt. |
OpBeginChoice | OpBeginChoice startet eine -Klausel, die mit einem entsprechenden OpEndChoice endet. Null oder mehr vollständige Klauseln müssen zwischen OpBeginChoice und dem entsprechenden OpEndChoice angezeigt werden. Die äußere Klausel stimmt mit den Token überein, die durch eine der inneren Klauseln übereinstimmen. Alle inneren Klauseln müssen mit OpBeginElement beginnen, mit der Ausnahme, dass die letzte Klausel OpAnything sein kann. Dieses Konstrukt entspricht dem XSD-Auswahlpartikel. |
OpEndChoice | Beendet eine Klausel, die mit OpBeginChoice gestartet wurde. |
OpBeginSequence | OpBeginSequence startet eine -Klausel, die mit einer übereinstimmenden OpEndSequence endet. Null oder mehr vollständige Klauseln müssen zwischen OpBeginSequence und OpEndSequence angezeigt werden. Die äußere Klausel stimmt mit den Token überein, die von allen inneren Klauseln nacheinander abgeglichen werden. Dieses Konstrukt entspricht dem XSD-Sequenzpartikel. |
OpEndSequence | Beendet eine Klausel, die mit OpBeginSequence gestartet wurde. |
OpBeginAll | OpBeginAll startet eine -Klausel, die mit einem übereinstimmenden OpEndAll endet. Null oder mehr vollständige Klauseln müssen zwischen OpBeginAll und OpEndAll angezeigt werden. Die äußere Klausel stimmt mit den Token überein, die von den inneren Klauseln in beliebiger Reihenfolge abgeglichen werden. Vorkommensoperatoren, die sich auf jede innere Klausel beziehen, geben an, wie oft die Token für jede Klausel auftreten können. Der Standardwert ist einmal. Mehrere Vorkommen einer angegebenen Klausel können mit Vorkommen anderer innerer Klauseln vermischt werden. Alle inneren Klauseln müssen mit OpBeginElement beginnen, mit der Ausnahme, dass die letzte Klausel OpAnything sein kann. Dieses Konstrukt entspricht dem XSD-Gesamtteilchen. |
OpEndAll | Beendet eine Klausel, die mit OpBeginAll gestartet wurde. |
OpAnything | Entspricht einer beliebigen Anzahl von Elementen und Texttoken. |
OpAnyNumber | Gibt an, dass die nachfolgende Klausel beliebig oft auftreten kann. OpAnyNumber startet eine -Klausel, die am Ende der nachfolgenden Klausel beendet wird. |
OpOneOrMehr | Gibt an, dass die nachfolgende Klausel ein oder mehrere Male auftreten kann. OpOneOrMore startet eine -Klausel, die am Ende der nachfolgenden Klausel beendet wird. |
OpOptional | Gibt an, dass die nachfolgende Klausel 0 oder einmal auftreten kann. OpOptional startet eine -Klausel, die am Ende der nachfolgenden Klausel beendet wird. |
OpFormatInt8 (type,field) | Entspricht einer 8-Bit-Ganzzahl mit Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatInt8-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und stellt diesen Offset als Argument bereit. |
OpFormatInt16 (type,field) | Entspricht einer 16-Bit-Ganzzahl mit Vorzeichen. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatInt16-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und liefert diesen Offset als Argument. |
OpFormatInt32 (Typ,Feld) | Entspricht einer 32-Bit-Ganzzahl mit Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatInt32-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und liefert diesen Offset als Argument. |
OpFormatInt64 (type,field) | Entspricht einer 64-Bit-Ganzzahl mit Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatInt64-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und stellt diesen Offset als Argument bereit. |
OpFormatUInt8 (Typ,Feld) | Entspricht einer 8-Bit-Ganzzahl ohne Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatUInt8-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und liefert diesen Offset als Argument. |
OpFormatUInt16 (type,field) | Entspricht einer 16-Bit-Ganzzahl ohne Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatUInt16-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und stellt diesen Offset als Argument bereit. |
OpFormatUInt32 (type,field) | Entspricht einer 32-Bit-Ganzzahl ohne Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatUInt32-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatUInt64 (type,field) | Entspricht einer 64-Bit-Ganzzahl ohne Vorzeichen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset der binären Darstellung im aktuellen binären Kontext an. Das OpFormatUInt64-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatUnicodeString (type,field) | Entspricht einer Zeichenfolge, die aus dem gesamten Wert eines Texttokens besteht. Ein 4-Byte-Offsetargument gibt den Offset an, bei dem ein Zeiger auf die Zeichenfolge im aktuellen binären Kontext angezeigt wird. Das OpFormatUnicodeString-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatDom (type,field) | Gibt an, dass alle XML-Dateien, die von der nachfolgenden Klausel übereinstimmen, in binärer Form als DOM (eine Liste mit WSDXML_NODE Strukturen) dargestellt werden. OpFormatDom startet eine Klausel, die am Ende der nachfolgenden Klausel beendet wird. Ein 4-Byte-Offsetargument gibt den Offset an, bei dem ein Zeiger auf die erste WSDXML_NODE im aktuellen binären Kontext angezeigt wird. Das OpFormatDom-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatStruct (structType,type,field) | Gibt an, dass der binäre Kontext für die nachfolgende Klausel eine Struktur ist, auf die vom aktuellen binären Kontext verwiesen wird. OpFormatStruct startet eine Klausel, die am Ende der nachfolgenden Klausel beendet wird. Das erste von zwei 4-Byte-Argumenten gibt die Größe der Struktur an. Das zweite Argument gibt den Offset an, bei dem ein Zeiger auf die Struktur im aktuellen binären Kontext angezeigt wird. Das OpFormatStruct-Makro berechnet die Größe des angegebenen Strukturtyps (structType) und gibt die Größe als erstes Argument an. Das Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als zweites Argument an. |
OpFormatUri (Typ,Feld) | Entspricht einem URI in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset an, bei dem ein Zeiger auf die URI-Zeichenfolge im aktuellen binären Kontext angezeigt wird. Das OpFormatUri-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatUuidUri (type,field) | Entspricht einem UUID-Protokoll-URI in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset an, bei dem der URI in GUID-Strukturform im aktuellen binären Kontext angezeigt wird. Das OpFormatUuidUri-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatName (type,field) | Entspricht einem qualifizierten Namen in einem Texttoken. Ein 4-Byte-Offsetargument gibt den Offset an, bei dem ein Zeiger auf den qualifizierten Namen (eine WSDXML_NAME-Struktur) im aktuellen binären Kontext angezeigt wird. Das OpFormatName-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und stellt diesen Offset als Argument bereit. |
OpFormatListInsertTail (nodeType,type,field) | Gibt an, dass die binären Kontexte für alle Vorkommen der nachfolgenden Klausel Strukturen in einer singly verknüpften Liste sind, auf die vom aktuellen binären Kontext verwiesen wird. OpFormatListInsertTail startet eine Klausel, die am Ende der nachfolgenden Klausel beendet wird. Das erste von zwei 4-Byte-Argumenten gibt die Größe der Strukturen an. Das zweite Argument gibt den Offset an, bei dem ein Zeiger auf die Struktur im aktuellen binären Kontext angezeigt wird. Der "Nächste"-Zeiger, der die Strukturen mit einer Liste verknüpft, ist immer das erste Feld in den Strukturen. Das OpFormatListInsertTail-Makro berechnet die Größe des angegebenen Strukturtyps (nodeType) und gibt die Größe als erstes Argument an. Das Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als zweites Argument an. |
OpFormatType (typetable,type,field) | Entspricht den Token, die durch die angegebene Typtabelle übereinstimmen, und gibt an, dass der binäre Kontext für diese Tabelle in den aktuellen binären Kontext mit einem angegebenen Offset eingebettet ist. Das erste von zwei 4-Byte-Argumenten ist der codierte Verweis auf die Typtabelle. Das zweite Argument ist der Offset. Das OpFormatType-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatDynamicType (Name,Typ,Feld) | Entspricht den Token, die durch eine Typtabelle übereinstimmen, die dynamisch unter Verwendung des angegebenen Namens abgerufen wird, und gibt an, dass der binäre Kontext für diese Tabelle in den aktuellen binären Kontext mit einem angegebenen Offset eingebettet ist. Das erste von zwei 4-Byte-Argumenten ist der Name, der die Typtabelle identifiziert. In der Regel wird dieser Name in Form einer Zeichenfolge mit einzelnen Anführungszeichen angegeben, z. B. "body", die einen Wert von 4 Byte erzeugt. Das zweite Argument ist der Offset. Das OpFormatDynamicType-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpFormatLookupType (urifield,type,field) | Entspricht den Token, die durch die vom URI identifizierte Typtabelle an einem angegebenen Offset im aktuellen binären Kontext übereinstimmen, und gibt an, dass der binäre Kontext für diese Tabelle in den aktuellen binären Kontext mit einem angegebenen Offset eingebettet ist. Das erste von zwei 4-Byte-Argumenten ist der Offset des Typ-URI im aktuellen binären Kontext. Das zweite Argument ist der Offset für den neuen binären Kontext. Das OpFormatLookupType-Makro berechnet den Offset des angegebenen Felds im angegebenen Typ und gibt diesen Offset als Argument an. |
OpProcess(type,field) | Kennzeichnet das Feld, auf das verwiesen wird, während der Generierungs- und Analysephasen zusätzliche Verarbeitung erforderlich ist. Dies wird für komplexe Felder verwendet, die nicht automatisch verarbeitet werden können. |