Share via


Funzione WsStartReaderCanonicalization (webservices.h)

Questa operazione inizia il processo di inserimento del lettore XML specificato in un modulo standard o "canonizzato".

Il modello di utilizzo per la canonizzazione è:

  • Spostare Lettore nell'elemento in cui inizia la canonizzazione.
  • Chiamare WsStartReaderCanonicalization.
  • Spostare il lettore verso la posizione finale.
  • Chiamare WsEndReaderCanonicalization.
Durante questo processo i byte canonici vengono scritti nel writeCallback specificato.
Nota I nodi avanzati sono canonizzati, inclusi i nodi degli elementi figlio ignorati usando WsSkipNode. Ciò è utile perché significa che la canonizzazione e l'analisi possono essere eseguite in un passaggio sul contenuto XML indipendentemente dalle funzioni usate per leggere i dati.
 

Per usare il lettore XML esclusivamente per la canonizzazione di un nodo di elemento XML, l'applicazione può chiamare WsStartReaderCanonicalization, WsSkipNode e WsEndReaderCanonicalization quando il lettore è posizionato sull'elemento.

WsEndReaderCanonicalization deve essere chiamato per garantire che tutti i byte canonici vengano scritti nel callback specificato.

NotaWsEndReaderCanonicalization deve essere chiamato alla stessa profondità in cui WsStartReaderCanonicalization. Altre funzioni di lettura restituiscono un errore se spostate in una profondità inferiore a quella in cui è stata chiamata WsStartReaderCanonicalization . d
 

Non è valido chiamare WsMoveReader o WsSetReaderPosition in un lettore tra chiamate a WsStartReaderCanonicalization e WsEndReaderCanonicalization.

Sintassi

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

Parametri

[in] reader

Puntatore all'oggetto WS_XML_READER in cui viene avviata la canonizzazione. Il puntatore deve fare riferimento a un oggetto Lettore XML valido.

[in] writeCallback

Una funzione di callback richiamata per scrivere i byte canonici durante la generazione.

Nota Questo callback viene richiamato in modo sincrono.

 

[in] writeCallbackState

Puntatore a uno stato definito dal chiamante passato quando si richiama l'WS_WRITE_CALLBACK.

properties

Riferimento "array" di proprietà facoltative che controllano la modalità di esecuzione della canonizzazione.

Nota Per informazioni dettagliate, vedere WS_XML_CANONICALIZATION_PROPERTY .

 

[in] propertyCount

Numero di proprietà.

[in, optional] error

Puntatore a un oggetto WS_ERROR in cui devono essere archiviate informazioni aggiuntive sull'errore 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

Non è possibile annidare le chiamate a questa funzione. Di conseguenza, una chiamata a WsStartReaderCanonicalization deve essere seguita da una chiamata a WsEndReaderCanonicalization prima della successiva chiamata WsStartReaderCanonicalization.

Se viene usato un WS_XML_CANONICALIZATION_ALGORITHM non specificato WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM .

Gli algoritmi WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM e WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM possono essere usati solo con l'intero documento XML. Il lettore deve essere posizionato in WS_XML_NODE_TYPE_BOF quando WsStartReaderCanonicalization viene chiamato con questi algoritmi.

Requisiti

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