Compartilhar via


Códigos de bytes de tipo XML do WSDAPI

Esses bytecodes são usados pelo WSDAPI para analisar e gerar XML usando tabelas de bytecode que descrevem tipos complexos.

A tabela de bytecode para um tipo expressa as representações binárias (na memória) e XML (on-the-wire) do tipo. Uma tabela de código de byte consiste em uma lista de operações encerradas por uma operação especial, ou OpEndOfTableseja, . Uma operação consiste em um código de operação de um byte seguido por zero ou mais bytes de dados de argumento.

Bytecode Descrição
OpNone Não corresponde a nada.
OpEndOfTable Indica o final de uma tabela de código de byte.
OpBeginElement (nome) Corresponde a um token de início de elemento com o nome indicado. O nome aparece na tabela no formulário codificado em 4 bytes. OnBeginElement inicia uma cláusula que termina com um OpEndElement correspondente. Zero ou mais cláusulas completas devem aparecer entre OpBeginElement e seu OpEndElement correspondente.
OpBeginAnyElement Corresponde a um token de início de elemento com qualquer nome. OnBeginAnyElement inicia uma cláusula que termina com um OpEndElement correspondente. Zero ou mais cláusulas completas devem aparecer entre OpBeginAnyElement e seu OpEndElement correspondente.
OpEndElement Encerra uma cláusula iniciada com OpBeginElement ou OpBeginAnyElement.
OpElement (nome) Corresponde a um elemento inteiro com o nome indicado. O nome aparece na tabela no formulário codificado em 4 bytes.
OpAnyElement Corresponde a um elemento inteiro com qualquer nome.
OpAnyElements Corresponde a qualquer número de elementos com qualquer nome.
OpAnyText Corresponde a um token de texto.
OpAttribute (nome) Corresponde ao token de rótulo de um atributo com o nome indicado. OpAttribute inicia uma cláusula que inclui a cláusula subsequente na tabela. A cláusula subsequente é usada para corresponder à parte do valor do atributo. As cláusulas OpAttribute sempre aparecem após operações OpBeginElement ou OpBeginAnyElement ou após outra cláusula OpAttribute.
OpBeginChoice OpBeginChoice inicia uma cláusula que termina com um OpEndChoice correspondente. Zero ou mais cláusulas completas devem aparecer entre OpBeginChoice e seu OpEndChoice correspondente. A cláusula externa corresponde aos tokens correspondentes a qualquer uma das cláusulas internas. Todas as cláusulas internas devem começar com OpBeginElement, exceto que a última pode ser OpAnything. Esse constructo corresponde à partícula de opção XSD.
OpEndChoice Encerra uma cláusula iniciada com OpBeginChoice.
OpBeginSequence OpBeginSequence inicia uma cláusula que termina com um OpEndSequence correspondente. Zero ou mais cláusulas completas devem aparecer entre OpBeginSequence e OpEndSequence. A cláusula externa corresponde aos tokens correspondentes a todas as cláusulas internas em sequência. Esse constructo corresponde à partícula de sequência XSD.
OpEndSequence Encerra uma cláusula iniciada com OpBeginSequence.
OpBeginAll OpBeginAll inicia uma cláusula que termina com um OpEndAll correspondente. Zero ou mais cláusulas completas devem aparecer entre OpBeginAll e OpEndAll. A cláusula externa corresponde aos tokens correspondentes pelas cláusulas internas em qualquer sequência. Os operadores de ocorrência relacionados a cada cláusula interna indicam quantas vezes os tokens de cada cláusula podem ocorrer. O padrão é uma vez. Várias ocorrências de uma cláusula especificada podem ser misturadas com ocorrências de outras cláusulas internas. Todas as cláusulas internas devem começar com OpBeginElement, exceto que a última pode ser OpAnything. Esse constructo corresponde à partícula XSD all.
OpEndAll Encerra uma cláusula iniciada com OpBeginAll.
OpAnything Corresponde a qualquer número de elementos e tokens de texto.
OpAnyNumber Indica que a cláusula subsequente pode ocorrer várias vezes. OpAnyNumber inicia uma cláusula que termina no final da cláusula subsequente.
OpOneOrMore Indica que a cláusula subsequente pode ocorrer uma ou mais vezes. OpOneOrMore inicia uma cláusula que termina no final da cláusula subsequente.
OpOptional Indica que a cláusula subsequente pode ocorrer zero ou uma vez. OpOptional inicia uma cláusula que termina no final da cláusula subsequente.
OpFormatInt8 (tipo, campo) Corresponde a um inteiro com sinal de 8 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatInt8 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatInt16 (tipo, campo) Corresponde a um inteiro com sinal de 16 bits. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatInt16 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatInt32 (tipo, campo) Corresponde a um inteiro com sinal de 32 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatInt32 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatInt64 (tipo, campo) Corresponde a um inteiro com sinal de 64 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatInt64 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatUInt8 (tipo, campo) Corresponde a um inteiro sem sinal de 8 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatUInt8 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatUInt16 (tipo, campo) Corresponde a um inteiro sem sinal de 16 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatUInt16 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatUInt32 (tipo, campo) Corresponde a um inteiro sem sinal de 32 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatUInt32 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatUInt64 (tipo, campo) Corresponde a um inteiro sem sinal de 64 bits em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento da representação binária no contexto binário atual. A macro OpFormatUInt64 calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatUnicodeString (tipo, campo) Corresponde a uma cadeia de caracteres que consiste no valor inteiro de um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento em que um ponteiro para a cadeia de caracteres aparece no contexto binário atual. A macro OpFormatUnicodeString calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatDom (tipo, campo) Indica que todos os XML correspondidos pela cláusula subsequente são representados em formato binário como DOM (uma lista de estruturas de WSDXML_NODE). OpFormatDom inicia uma cláusula que termina no final da cláusula subsequente. Um argumento de deslocamento de 4 bytes indica o deslocamento em que um ponteiro para o primeiro WSDXML_NODE aparece no contexto binário atual. A macro OpFormatDom calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatStruct (structType, type,field) Indica que o contexto binário para a cláusula subsequente é uma estrutura referenciada pelo contexto binário atual. OpFormatStruct inicia uma cláusula que termina no final da cláusula subsequente. O primeiro de dois argumentos de 4 bytes indica o tamanho da estrutura. O segundo argumento indica o deslocamento em que um ponteiro para a estrutura aparece no contexto binário atual. A macro OpFormatStruct calcula o tamanho do tipo de estrutura indicado (structType) e fornece o tamanho como o primeiro argumento. A macro calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o segundo argumento.
OpFormatUri (tipo, campo) Corresponde a um URI em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento em que um ponteiro para a cadeia de caracteres de URI aparece no contexto binário atual. A macro OpFormatUri calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatUuidUri (tipo, campo) Corresponde a um URI de protocolo UUID em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento em que o URI no formulário da estrutura GUID aparece no contexto binário atual. A macro OpFormatUuidUri calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatName (tipo, campo) Corresponde a um nome qualificado em um token de texto. Um argumento de deslocamento de 4 bytes indica o deslocamento em que um ponteiro para o nome qualificado (uma estrutura WSDXML_NAME) aparece no contexto binário atual. A macro OpFormatName calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatListInsertTail (nodeType, type,field) Indica que os contextos binários para todas as ocorrências da cláusula subsequente são estruturas em uma lista vinculada por singly referenciada pelo contexto binário atual. OpFormatListInsertTail inicia uma cláusula que termina no final da cláusula subsequente. O primeiro de dois argumentos de 4 bytes indica o tamanho das estruturas. O segundo argumento indica o deslocamento em que um ponteiro para a estrutura aparece no contexto binário atual. O ponteiro 'next' que vincula as estruturas a uma lista é sempre o primeiro campo nas estruturas. A macro OpFormatListInsertTail calcula o tamanho do tipo de estrutura indicado (nodeType) e fornece o tamanho como o primeiro argumento. A macro calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o segundo argumento.
OpFormatType (typetable, type,field) Corresponde aos tokens correspondentes à tabela de tipos indicada e indica que o contexto binário dessa tabela é inserido no contexto binário atual em um deslocamento indicado. O primeiro dos dois argumentos de 4 bytes é a referência codificada à tabela de tipos. O segundo argumento é o deslocamento. A macro OpFormatType calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatDynamicType (nome, tipo, campo) Corresponde aos tokens correspondidos por uma tabela de tipos obtida dinamicamente usando o nome indicado e indica que o contexto binário dessa tabela é inserido no contexto binário atual em um deslocamento indicado. O primeiro de dois argumentos de 4 bytes é o nome que identifica a tabela de tipos. Normalmente, esse nome é especificado na forma de uma cadeia de caracteres de aspas simples, como "'body'", que produz um valor de 4 bytes. O segundo argumento é o deslocamento. A macro OpFormatDynamicType calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpFormatLookupType (urifield, type,field) Corresponde aos tokens correspondentes à tabela de tipos identificada pelo URI em um deslocamento indicado no contexto binário atual e indica que o contexto binário dessa tabela é inserido no contexto binário atual em um deslocamento indicado. O primeiro de dois argumentos de 4 bytes é o deslocamento do URI do tipo no contexto binário atual. O segundo argumento é o deslocamento para o novo contexto binário. A macro OpFormatLookupType calcula o deslocamento do campo indicado no tipo indicado e fornece esse deslocamento como o argumento .
OpProcess(type,field) Sinaliza o campo referenciado como exigindo processamento adicional durante as fases de geração e análise. Isso é usado para campos complexos que não podem ser processados automaticamente.