Función WsStartReaderCanonicalization (webservices.h)

Esta operación comienza el proceso de colocar el lector XML especificado en un formato estándar o "canonizado".

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

  • Mueva el lector al elemento donde comienza la canónica.
  • Llame a WsStartReaderCanonicalization.
  • Mueva el lector hacia delante hasta la posición final.
  • Llame a WsEndReaderCanonicalization.
Durante este proceso, los bytes canónicos se escriben en la writeCallback especificada.
Nota Los nodos avanzados sobre se canónicamente incluyen nodos de elementos secundarios omitidos mediante WsSkipNode. Esto es beneficioso porque significa que la canónica y el análisis se pueden realizar en un paso sobre el contenido XML, independientemente de las funciones que se usan para leer los datos.
 

Para usar el Lector XML únicamente para canónicor un nodo de elemento XML, la aplicación puede llamar a WsStartReaderCanonicalization, WsSkipNode y WsEndReaderCanonicalization cuando el Lector se coloca en el elemento.

Se debe llamar a WsEndReaderCanonicalization para asegurarse de que todos los bytes canónicos se escriben en la devolución de llamada especificada.

NotaWsEndReaderCanonicalization se debe llamar a en la misma profundidad en la que WsStartReaderCanonicalization. Otras funciones de lector devuelven un error si se mueven a una profundidad inferior a la de donde se llamó a WsStartReaderCanonicalization . d
 

No es válido llamar a WsMoveReader o WsSetReaderPosition en un lector entre llamadas a WsStartReaderCanonicalization y WsEndReaderCanonicalization.

Sintaxis

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

Puntero al objeto WS_XML_READER en el que se inicia la canónica. El puntero debe hacer referencia a un objeto Lector XML válido.

[in] writeCallback

Función de devolución de llamada invocada para escribir los bytes canónicos a medida que se generan.

Nota Esta devolución de llamada se invoca de forma sincrónica.

 

[in] writeCallbackState

Puntero a un estado definido por el autor de la llamada que se pasa al invocar el WS_WRITE_CALLBACK.

properties

Referencia de "matriz" de propiedades opcionales que controlan cómo se realiza la canonización.

Nota Consulte WS_XML_CANONICALIZATION_PROPERTY para obtener más información.

 

[in] propertyCount

Número de propiedades.

[in, optional] error

Puntero a un objeto WS_ERROR donde se debe almacenar información adicional sobre el error 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

Las llamadas a esta función no se pueden anidar. Por consiguiente, una llamada a WsStartReaderCanonicalization debe ir seguida de una llamada a WsEndReaderCanonicalization antes de que se pueda realizar la siguiente llamada a WsStartReaderCanonicalization .

Si no se especifica un WS_XML_CANONICALIZATION_ALGORITHMWS_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 lector debe colocarse en WS_XML_NODE_TYPE_BOF cuando se llama a WsStartReaderCanonicalization con estos algoritmos.

Requisitos

Requisito Value
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