Compartir a través de


Función WsStartWriterCanonicalization (webservices.h)

Inicia la canónica en el sistema de escritura XML especificado.

Sintaxis

HRESULT WsStartWriterCanonicalization(
  [in]           WS_XML_WRITER                          *writer,
  [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] writer

Escritor XML en el que se debe iniciar la canónica.

[in] writeCallback

Devolución de llamada que se va a invocar para escribir los bytes canónicos a medida que se generan. Esta devolución de llamada siempre se invocará de forma sincrónica.

[in] writeCallbackState

Estado definido por el autor de la llamada que se debe pasar al invocar el WS_WRITE_CALLBACK.

properties

Matriz de propiedades opcionales que controlan cómo se va a realizar la canonización. Consulte WS_XML_CANONICALIZATION_PROPERTY.

[in] propertyCount

Número de propiedades.

[in, optional] error

Especifica dónde se debe almacenar información de error adicional si se produce un error en la función.

Valor devuelto

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
E_INVALIDARG
Uno o más argumentos no son válidos.
WS_E_INVALID_OPERATION
No se permite la operación debido al estado actual del objeto .
WS_E_INVALID_FORMAT
Los datos de entrada no tenían el formato esperado o no tenían el valor esperado.

Comentarios

El patrón de uso para la canónica es:

Durante este proceso, los bytes canónicos se escribirán en la writeCallback especificada. Cada nodo escrito por el escritor se canónicamente. Por lo tanto, la canónica y la generación se pueden realizar en un paso de paso independientemente de qué API se usan para escribir el XML. Se debe llamar a WsEndWriterCanonicalization para asegurarse de que todos los bytes canónicos se escriben en la devolución de llamada especificada.

Se debe llamar a WsEndWriterCanonicalization en la misma profundidad a la que se llamó a WsStartWriterCanonicalization. Otras API de escritor devolverán un error si se movería a una profundidad inferior a la de donde se llamó a WsStartWriterCanonicalization .

Se trata de una operación no válida para llamar a WsMoveWriter o WsSetWriterPosition en un escritor entre un par de llamadas WsStartWriterCanonicalization y WsEndWriterCanonicalization .

Las llamadas a esta API no se pueden anidar. Por lo tanto, una llamada a WsStartWriterCanonicalization debe ir seguida de una llamada a WsEndWriterCanonicalization antes de la siguiente llamada de WsStartWriterCanonicalization .

Si no se especifica un WS_XML_CANONICALIZATION_ALGORITHM , se usa WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM .

Los algoritmos WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM y WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM solo se pueden usar con documentos XML completos. El escritor debe colocarse en WS_XML_NODE_TYPE_BOF cuando se llama a WsStartWriterCanonicalization con estos algoritmos.

Requisitos

   
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado webservices.h
Library WebServices.lib
Archivo DLL WebServices.dll