Dela via


Bytekoder för WSDAPI-XML-typ

Dessa bytekoder används av WSDAPI för att parsa och generera XML med hjälp av bytekodstabeller som beskriver komplexa typer.

Bytecode-tabellen för en typ uttrycker både de binära (minnesinterna) och XML-representationerna (on-the-wire) av typen. En bytecode-tabell består av en lista över åtgärder som avslutas av en särskild åtgärd, nämligen OpEndOfTable. En åtgärd består av en åtgärdskod på en byte följt av noll eller fler byte argumentdata.

Bytekod Beskrivning
OpNone Matchar ingenting.
OpEndOfTable Anger slutet på en bytekodstabell.
OpBeginElement (namn) Matchar en elementstarttoken med det angivna namnet. Namnet visas i tabellen i 4 bytes kodat formulär. OnBeginElement startar en sats som slutar med ett matchande OpEndElement. Noll eller fler fullständiga satser måste visas mellan OpBeginElement och dess matchande OpEndElement.
OpBeginAnyElement Matchar en elementstarttoken med valfritt namn. OnBeginAnyElement startar en sats som slutar med ett matchande OpEndElement. Noll eller fler fullständiga satser måste visas mellan OpBeginAnyElement och dess matchande OpEndElement.
OpEndElement Avslutar en sats som startats med OpBeginElement eller OpBeginAnyElement.
OpElement (namn) Matchar ett helt element med det angivna namnet. Namnet visas i tabellen i 4 bytes kodat formulär.
OpAnyElement Matchar ett helt element med valfritt namn.
OpAnyElements Matchar valfritt antal element med alla namn.
OpAnyText Matchar en texttoken.
OpAttribute (namn) Matchar etiketttoken för ett attribut med det angivna namnet. OpAttribute startar en sats som innehåller den efterföljande satsen i tabellen. Den efterföljande satsen används för att matcha värdedelen av attributet. OpAttribute-satser visas alltid efter OpBeginElement- eller OpBeginAnyElement-åtgärder eller efter en annan OpAttribute-sats.
OpBeginChoice OpBeginChoice startar en sats som slutar med en matchande OpEndChoice. Noll eller fler fullständiga satser måste visas mellan OpBeginChoice och dess matchande OpEndChoice. Den yttre satsen matchar de token som matchas av någon av de inre satserna. Alla inre satser måste börja med OpBeginElement förutom att den sista kan vara OpAnything. Den här konstruktionen motsvarar XSD-valpartikeln.
OpEndChoice Avslutar en sats som startats med OpBeginChoice.
OpBeginSequence OpBeginSequence startar en sats som slutar med en matchande OpEndSequence. Noll eller fler fullständiga satser måste visas mellan OpBeginSequence och OpEndSequence. Den yttre satsen matchar de token som matchas av alla inre satser i följd. Den här konstruktionen motsvarar XSD-sekvenspartikeln.
OpEndSequence Avslutar en sats som startats med OpBeginSequence.
OpBeginAll OpBeginAll startar en sats som slutar med en matchande OpEndAll. Noll eller fler fullständiga satser måste visas mellan OpBeginAll och OpEndAll. Den yttre satsen matchar de token som matchas av de inre satserna i valfri sekvens. Förekomstoperatorer relaterade till varje inre sats anger hur många gånger token för varje sats kan inträffa. Standardvärdet är en gång. Flera förekomster av en angiven sats kan blandas med förekomster av andra inre satser. Alla inre satser måste börja med OpBeginElement förutom att den sista kan vara OpAnything. Den här konstruktionen motsvarar XSD:ens alla partiklar.
OpEndAll Avslutar en sats som startats med OpBeginAll.
OpAnything Matchar valfritt antal element och texttoken.
OpAnyNumber Anger att den efterföljande satsen kan inträffa valfritt antal gånger. OpAnyNumber startar en sats som avslutas i slutet av den efterföljande satsen.
OpOneOrMore Anger att den efterföljande satsen kan inträffa en eller flera gånger. OpOneOrMore startar en sats som avslutas i slutet av den efterföljande satsen.
OpOptional Anger att den efterföljande satsen kan inträffa noll eller en gång. OpOptional startar en sats som avslutas i slutet av den efterföljande satsen.
OpFormatInt8 (typ,fält) Matchar ett 8-bitars signerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. OpFormatInt8-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatInt16 (typ,fält) Matchar ett 16-bitars signerat heltal. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. Makrot OpFormatInt16 beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatInt32 (typ,fält) Matchar ett 32-bitars signerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. Makrot OpFormatInt32 beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatInt64 (typ,fält) Matchar ett 64-bitars signerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. OpFormatInt64-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatUInt8 (typ,fält) Matchar ett 8-bitars osignerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. Makrot OpFormatUInt8 beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatUInt16 (typ,fält) Matchar ett 16-bitars osignerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. Makrot OpFormatUInt16 beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatUInt32 (typ,fält) Matchar ett 32-bitars osignerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. Makrot OpFormatUInt32 beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatUInt64 (typ,fält) Matchar ett 64-bitars osignerat heltal i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen av den binära representationen i den aktuella binära kontexten. Makrot OpFormatUInt64 beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatUnicodeString (typ,fält) Matchar en sträng som består av hela värdet för en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen där en pekare till strängen visas i den aktuella binära kontexten. Makrot OpFormatUnicodeString beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatDom (typ,fält) Anger att all XML som matchas av den efterföljande satsen representeras i binär form som DOM (en lista över WSDXML_NODE strukturer). OpFormatDom startar en sats som avslutas i slutet av den efterföljande satsen. Ett förskjutningsargument på 4 byte anger förskjutningen där en pekare till den första WSDXML_NODE visas i den aktuella binära kontexten. OpFormatDom-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatStruct (structType,type,field) Anger att den binära kontexten för den efterföljande satsen är en struktur som refereras av den aktuella binära kontexten. OpFormatStruct startar en sats som avslutas i slutet av den efterföljande satsen. Det första av två argument på 4 byte anger strukturens storlek. Det andra argumentet anger förskjutningen där en pekare till strukturen visas i den aktuella binära kontexten. OpFormatStruct-makrot beräknar storleken på den angivna strukturtypen (structType) och anger storleken som det första argumentet. Makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som det andra argumentet.
OpFormatUri (typ,fält) Matchar en URI i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen där en pekare till URI-strängen visas i den aktuella binära kontexten. OpFormatUri-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatUuidUri (typ,fält) Matchar en UUID-protokoll-URI i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen där URI i GUID-strukturform visas i den aktuella binära kontexten. Makrot OpFormatUuidUri beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatName (typ,fält) Matchar ett kvalificerat namn i en texttoken. Ett förskjutningsargument på 4 byte anger förskjutningen där en pekare till det kvalificerade namnet (en WSDXML_NAME struktur) visas i den aktuella binära kontexten. OpFormatName-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatListInsertTail (nodeType,type,field) Anger att de binära kontexterna för alla förekomster av den efterföljande satsen är strukturer i en singly-länkad lista som refereras av den aktuella binära kontexten. OpFormatListInsertTail startar en sats som avslutas i slutet av den efterföljande satsen. Den första av två argument på 4 byte anger strukturens storlek. Det andra argumentet anger förskjutningen där en pekare till strukturen visas i den aktuella binära kontexten. Nästa pekare som länkar strukturerna till en lista är alltid det första fältet i strukturerna. Makrot OpFormatListInsertTail beräknar storleken på den angivna strukturtypen (nodeType) och anger storleken som det första argumentet. Makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som det andra argumentet.
OpFormatType (typetable,type,field) Matchar de token som matchas av den angivna typtabellen och anger att den binära kontexten för tabellen är inbäddad i den aktuella binära kontexten vid en angiven förskjutning. Den första av två 4-bytesargument är den kodade referensen till typtabellen. Det andra argumentet är förskjutningen. OpFormatType-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatDynamicType (namn,typ,fält) Matchar de token som matchas av en typtabell som hämtas dynamiskt med det angivna namnet och anger att den binära kontexten för tabellen är inbäddad i den aktuella binära kontexten vid en angiven förskjutning. Den första av två argument på 4 byte är namnet som identifierar typtabellen. Vanligtvis anges det här namnet i form av en sträng med en citattecken, till exempel "'body'", som ger ett värde på 4 byte. Det andra argumentet är förskjutningen. Makrot OpFormatDynamicType beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpFormatLookupType (urifield,type,field) Matchar de token som matchas av den typtabell som identifieras av URI:n vid en angiven förskjutning i den aktuella binära kontexten och anger att den binära kontexten för tabellen är inbäddad i den aktuella binära kontexten vid en angiven förskjutning. Det första av två 4-bytesargument är förskjutningen av typ-URI:n i den aktuella binära kontexten. Det andra argumentet är förskjutningen för den nya binära kontexten. OpFormatLookupType-makrot beräknar förskjutningen av det angivna fältet i den angivna typen och tillhandahåller som förskjutning som argument.
OpProcess(type,field) Flaggar det refererade fältet som kräver ytterligare bearbetning under genererings- och parsningsfaserna. Detta används för komplexa fält som inte kan bearbetas automatiskt.