Freigeben über


WsStartReaderCanonicalization-Funktion (webservices.h)

Dieser Vorgang beginnt mit dem Vorgang, den angegebenen XML-Reader in einer Standard- oder "kanonisierten" Form zu platzieren.

Das Verwendungsmuster für die Kanonisierung lautet:

  • Verschieben Sie den Reader in das Element, in dem die Kanonisierung beginnt.
  • Rufen Sie WsStartReaderCanonicalization auf.
  • Verschieben Sie den Reader nach vorne an die Endposition.
  • Rufen Sie WsEndReaderCanonicalization auf.
Während dieses Prozesses werden die kanonischen Bytes in den angegebenen writeCallback geschrieben.
Hinweis Erweiterte Knoten werden kanonisiert, einschließlich Knoten von untergeordneten Elementen, die mit WsSkipNode übersprungen werden. Dies ist von Vorteil, da es bedeutet, dass die Kanonisierung und Analyse in einem Durchlauf über den XML-Inhalt durchgeführt werden kann, unabhängig davon, welche Funktionen zum Lesen der Daten verwendet werden.
 

Um den XML-Reader ausschließlich zum Kanonisieren eines XML-Elementknotens zu verwenden, kann die Anwendung WsStartReaderCanonicalization, WsSkipNode und WsEndReaderCanonicalization aufrufen, wenn der Reader auf dem Element positioniert ist.

Die WsEndReaderCanonicalization muss aufgerufen werden, um sicherzustellen, dass alle kanonisierten Bytes in den angegebenen Rückruf geschrieben werden.

HinweisWsEndReaderCanonicalization muss in der gleichen Tiefe wie WsStartReaderCanonicalization aufgerufen werden. Andere Readerfunktionen geben einen Fehler zurück, wenn sie in eine Tiefe verschoben werden, die niedriger ist als in der WsStartReaderCanonicalization aufgerufen wurde. T
 

Es ist nicht gültig, WsMoveReader oder WsSetReaderPosition für einen Reader zwischen Aufrufen von WsStartReaderCanonicalization und WsEndReaderCanonicalization aufzurufen.

Syntax

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

Parameter

[in] reader

Ein Zeiger auf das WS_XML_READER-Objekt , für das die Kanonisierung gestartet wird. Der Zeiger muss auf ein gültiges XML Reader-Objekt verweisen.

[in] writeCallback

Eine Rückruffunktion, die aufgerufen wird, um die kanonischen Bytes zu schreiben, während sie generiert werden.

Hinweis Dieser Rückruf wird synchron aufgerufen.

 

[in] writeCallbackState

Ein Zeiger auf einen vom Aufrufer definierten Zustand, der beim Aufrufen des WS_WRITE_CALLBACK übergeben wird.

properties

Ein "Array"-Verweis mit optionalen Eigenschaften, die steuern, wie die Kanonisierung durchgeführt wird.

Hinweis Weitere Informationen finden Sie unter WS_XML_CANONICALIZATION_PROPERTY .

 

[in] propertyCount

Die Anzahl der Eigenschaften.

[in, optional] error

Ein Zeiger auf ein WS_ERROR-Objekt , in dem zusätzliche Informationen zum Fehler gespeichert werden sollen, wenn die Funktion fehlschlägt.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
E_INVALIDARG
Mindestens ein Argument ist ungültig.
WS_E_INVALID_OPERATION
Der Vorgang ist aufgrund des aktuellen Zustands des Objekts nicht zulässig.
WS_E_INVALID_FORMAT
Die Eingabedaten hatten nicht das erwartete Format oder hatten nicht den erwarteten Wert.

Hinweise

Aufrufe dieser Funktion können nicht geschachtelt werden. Folglich muss auf einen Aufruf von WsStartReaderCanonicalization ein Aufruf von WsEndReaderCanonicalization folgen, bevor der nächste WsStartReaderCanonicalization-Aufruf durchgeführt werden kann.

Wenn kein WS_XML_CANONICALIZATION_ALGORITHM angegeben ist , wird WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM verwendet.

Die Algorithmen WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM und WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM können nur mit gesamten XML-Dokumenten verwendet werden. Der Reader muss bei WS_XML_NODE_TYPE_BOF positioniert werden, wenn WsStartReaderCanonicalization mit diesen Algorithmen aufgerufen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile webservices.h
Bibliothek WebServices.lib
DLL WebServices.dll