Condividi tramite


Funzione WsStartWriterCanonicalization (webservices.h)

Avvia la canonizzazione nel writer XML specificato.

Sintassi

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

Parametri

[in] writer

Writer XML in cui deve essere avviata la canonizzazione.

[in] writeCallback

Callback richiamato per scrivere i byte canonici durante la generazione. Questo callback verrà sempre richiamato in modo sincrono.

[in] writeCallbackState

Stato definito dal chiamante che deve essere passato quando si richiama il WS_WRITE_CALLBACK.

properties

Matrice di proprietà facoltative che controllano la modalità di esecuzione della canonizzazione. Vedere WS_XML_CANONICALIZATION_PROPERTY.

[in] propertyCount

Numero di proprietà.

[in, optional] error

Specifica la posizione in cui devono essere archiviate informazioni aggiuntive sugli errori se la funzione ha esito negativo.

Valore restituito

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
E_INVALIDARG
Uno o più argomenti non sono validi.
WS_E_INVALID_OPERATION
L'operazione non è consentita a causa dello stato corrente dell'oggetto.
WS_E_INVALID_FORMAT
I dati di input non erano nel formato previsto o non hanno il valore previsto.

Commenti

Il modello di utilizzo per la canonizzazione consiste nel:

Durante questo processo, i byte canonici verranno scritti nel writeCallback specificato. Ogni nodo scritto dal writer verrà canonizzato. Pertanto, la canonizzazione e la generazione possono essere eseguite in un passaggio indipendentemente dalle API usate per scrivere il codice XML. WsEndWriterCanonicalization deve essere chiamato per garantire che tutti i byte canonici vengano scritti nel callback specificato.

WsEndWriterCanonicalization deve essere chiamato allo stesso livello in cui è stata chiamata WsStartWriterCanonicalization . Altre API writer restituiranno un errore se si spostava in una profondità inferiore a quella in cui è stata chiamata WsStartWriterCanonicalization .

È un'operazione non valida per chiamare WsMoveWriter o WsSetWriterPosition in un writer tra una coppia di chiamate WsStartWriterCanonicalization e WsEndWriterCanonicalization.

Non è possibile annidare le chiamate a questa API. Quindi, una chiamata a WsStartWriterCanonicalization deve essere seguita da una chiamata a WsEndWriterCanonicalization prima della successiva chiamata WsStartWriterCanonicalization.

Se non è specificato un WS_XML_CANONICALIZATION_ALGORITHM , viene usato WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM .

Gli algoritmi di WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM e WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM possono essere usati solo con l'intero documento xml. Il writer deve essere posizionato in WS_XML_NODE_TYPE_BOF quando viene chiamata WsStartWriterCanonicalization con questi algoritmi.

Requisiti

   
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione webservices.h
Libreria WebServices.lib
DLL WebServices.dll