Compartilhar via


Função WsStartReaderCanonicalization (webservices.h)

Essa operação inicia o processo de colocar o Leitor de XML especificado em um formato padrão ou "canonizado".

O padrão de uso para canonicalização é:

  • Mova o Leitor para o elemento em que a canonicalização começa.
  • Chame WsStartReaderCanonicalization.
  • Mova o Leitor para a posição final.
  • Chame WsEndReaderCanonicalization.
Durante esse processo, os bytes canônicos são gravados no writeCallback especificado.
Nota Os nós avançados em são canonizados, incluindo nós de elementos filho ignorados usando WsSkipNode. Isso é benéfico porque significa que a canonicalização e a análise podem ser feitas em uma passagem sobre o conteúdo XML, independentemente de quais funções são usadas para ler os dados.
 

Para usar o Leitor de XML exclusivamente para canonizar um nó de elemento XML, o aplicativo pode chamar WsStartReaderCanonicalization, WsSkipNode e WsEndReaderCanonicalization quando o Leitor é posicionado no elemento.

WsEndReaderCanonicalization deve ser chamado para garantir que todos os bytes canônicos sejam gravados no retorno de chamada especificado.

NotaWsEndReaderCanonicalization deve ser chamado na mesma profundidade em que WsStartReaderCanonicalization. Outras funções de leitor retornam um erro se movidas para uma profundidade inferior à em que WsStartReaderCanonicalization foi chamado. d
 

Não é válido chamar WsMoveReader ou WsSetReaderPosition em um Leitor entre chamadas para WsStartReaderCanonicalization e WsEndReaderCanonicalization.

Sintaxe

HRESULT WsStartReaderCanonicalization(
  [in]           WS_XML_READER                          *reader,
  [in]           WS_WRITE_CALLBACK                      writeCallback,
  [in]           void                                   *writeCallbackState,
                 const WS_XML_CANONICALIZATION_PROPERTY *properties,
  [in]           ULONG                                  propertyCount,
  [in, optional] WS_ERROR                               *error
);

Parâmetros

[in] reader

Um ponteiro para o objeto WS_XML_READER no qual a canonicalização é iniciada. O ponteiro deve referenciar um objeto XML Reader válido.

[in] writeCallback

Uma função de retorno de chamada invocada para gravar os bytes canônicos conforme eles são gerados.

Nota Esse retorno de chamada é invocado de forma síncrona.

 

[in] writeCallbackState

Um ponteiro para um estado definido pelo chamador que é passado ao invocar o WS_WRITE_CALLBACK.

properties

Uma referência de "matriz" de propriedades opcionais que controlam como a canonicalização é executada.

Nota Consulte WS_XML_CANONICALIZATION_PROPERTY para obter detalhes.

 

[in] propertyCount

O número de propriedades.

[in, optional] error

Um ponteiro para um objeto WS_ERROR em que informações adicionais sobre o erro devem ser armazenadas se a função falhar.

Retornar valor

Essa função pode retornar um desses valores.

Código de retorno Descrição
E_INVALIDARG
Um ou mais argumentos são inválidos.
WS_E_INVALID_OPERATION
A operação não é permitida devido ao estado atual do objeto.
WS_E_INVALID_FORMAT
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado.

Comentários

Não é possível aninhar chamadas para essa função. Consequentemente, uma chamada para WsStartReaderCanonicalization deve ser seguida por uma chamada para WsEndReaderCanonicalization antes que a próxima chamada WsStartReaderCanonicalization possa ser feita.

Se um WS_XML_CANONICALIZATION_ALGORITHM não for especificado WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM será usado.

Os algoritmos WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM e WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM só podem ser usados com documentos XML inteiros. O Leitor deve ser posicionado em WS_XML_NODE_TYPE_BOF quando WsStartReaderCanonicalization é chamado com esses algoritmos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho webservices.h
Biblioteca WebServices.lib
DLL WebServices.dll