Partager via


WsStartWriterCanonicalization, fonction (webservices.h)

Démarre la canonisation sur l’enregistreur XML spécifié.

Syntaxe

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

Paramètres

[in] writer

Enregistreur XML sur lequel la canonicalisation doit être démarrée.

[in] writeCallback

Rappel à appeler pour écrire les octets canoniques au fur et à mesure qu’ils sont générés. Ce rappel sera toujours appelé de manière synchrone.

[in] writeCallbackState

État défini par l’appelant qui doit être passé lors de l’appel du WS_WRITE_CALLBACK.

properties

Tableau de propriétés facultatives contrôlant la façon dont la canonicalisation doit être effectuée. Voir WS_XML_CANONICALIZATION_PROPERTY.

[in] propertyCount

Nombre de propriétés.

[in, optional] error

Spécifie l’emplacement où les informations d’erreur supplémentaires doivent être stockées en cas d’échec de la fonction.

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.

Remarques

Le modèle d’utilisation de la canonicalisation consiste à :

Au cours de ce processus, les octets canoniques seront écrits dans le writeCallback spécifié. Chaque nœud écrit par l’enregistreur sera canonisé. Ainsi, la canonisation et la génération peuvent être effectuées en un seul passage, quelles que soient les API utilisées pour écrire le code XML. WsEndWriterCanonicalization doit être appelé afin de garantir que tous les octets canonicalisés sont écrits dans le rappel spécifié.

WsEndWriterCanonicalization doit être appelé à la même profondeur à laquelle WsStartWriterCanonicalization a été appelée. D’autres API d’enregistreur retournent une erreur si elles se déplacent vers une profondeur inférieure à l’endroit où WsStartWriterCanonicalization a été appelée.

Il s’agit d’une opération non valide pour appeler WsMoveWriter ou WsSetWriterPosition sur un enregistreur entre une paire d’appels WsStartWriterCanonicalization et WsEndWriterCanonicalization correspondants .

Les appels à cette API ne peuvent pas être imbriqués. Par conséquent, un appel à WsStartWriterCanonicalization doit être suivi d’un appel à WsEndWriterCanonicalization avant l’appel WsStartWriterCanonicalization suivant.

Si aucun WS_XML_CANONICALIZATION_ALGORITHM n’est 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. L’enregistreur doit se positionner à WS_XML_NODE_TYPE_BOF lorsque WsStartWriterCanonicalization 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