WsStartReaderCanonicalization, fonction (webservices.h)

Cette opération commence le processus de placement du lecteur XML spécifié dans un formulaire standard ou « canonisé ».

Le modèle d’utilisation pour la canonisation est le suivant :

  • Déplacez le lecteur vers l’élément où commence la canonisation.
  • Appelez WsStartReaderCanonicalization.
  • Déplacez le lecteur vers l’avant jusqu’à la position de fin.
  • Appelez WsEndReaderCanonicalization.
Pendant ce processus, les octets canoniques sont écrits dans l’objet writeCallback spécifié.
Note Les nœuds avancés sont canoniques, y compris les nœuds des éléments enfants ignorés à l’aide de WsSkipNode. Cela est bénéfique, car cela signifie que la canonisation et l’analyse peuvent être effectuées en un seul passage sur le contenu XML, quelles que soient les fonctions utilisées pour lire les données.
 

Pour utiliser le lecteur XML uniquement pour canoniser un nœud d’élément XML, l’application peut appeler WsStartReaderCanonicalization, WsSkipNode et WsEndReaderCanonicalization lorsque le lecteur est positionné sur l’élément.

WsEndReaderCanonicalization doit être appelé pour garantir que tous les octets canoniques sont écrits dans le rappel spécifié.

NoteWsEndReaderCanonicalization doit être appelé à la même profondeur à laquelle WsStartReaderCanonicalization. D’autres fonctions de lecteur retournent une erreur si elles sont déplacées vers une profondeur inférieure à celle où WsStartReaderCanonicalization a été appelée. d
 

Il n’est pas valide d’appeler WsMoveReader ou WsSetReaderPosition sur un Lecteur entre les appels à WsStartReaderCanonicalization et WsEndReaderCanonicalization.

Syntaxe

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
);

Paramètres

[in] reader

Pointeur vers l’objet WS_XML_READER sur lequel la canonisation est démarrée. Le pointeur doit référencer un objet Lecteur XML valide.

[in] writeCallback

Fonction de rappel appelée pour écrire les octets canoniques à mesure qu’elles sont générées.

Note Ce rappel est appelé de façon synchrone.

 

[in] writeCallbackState

Pointeur vers un état défini par l’appelant passé lors de l’appel du WS_WRITE_CALLBACK.

properties

Référence « tableau » des propriétés facultatives qui contrôlent la façon dont la canonisation est effectuée.

 

[in] propertyCount

Nombre de propriétés.

[in, optional] error

Pointeur vers un objet WS_ERROR où des informations supplémentaires sur l’erreur doivent être stockées si la fonction échoue.

Valeur retournée

Cette fonction peut retourner l’une de ces valeurs.

Code de retour Description
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
WS_E_INVALID_OPERATION
L’opération n’est pas autorisée en raison de l’état actuel de l’objet.
WS_E_INVALID_FORMAT
Les données d’entrée n’étaient pas au format attendu ou n’avaient pas la valeur attendue.

Notes

Les appels à cette fonction ne peuvent pas être imbriqués. Par conséquent, un appel à WsStartReaderCanonicalization doit être suivi d’un appel à WsEndReaderCanonicalization avant que l’appel WsStartReaderCanonicalization puisse être effectué.

Si un WS_XML_CANONICALIZATION_ALGORITHM n’est pas spécifié WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM est utilisé.

Les algorithmes WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM et WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM ne peuvent être utilisés qu’avec des documents XML entiers. Le lecteur doit être positionné sur WS_XML_NODE_TYPE_BOF lorsque WsStartReaderCanonicalization est appelé avec ces algorithmes.

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête webservices.h
Bibliothèque WebServices.lib
DLL WebServices.dll