Freigeben über


WsStartWriterCanonicalization-Funktion (webservices.h)

Startet die Kanonisierung für den angegebenen XML-Writer.

Syntax

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

Parameter

[in] writer

Der XML-Writer, für den die Kanonisierung gestartet werden soll.

[in] writeCallback

Der Rückruf, der aufgerufen werden soll, um die kanonischen Bytes zu schreiben, während sie generiert werden. Dieser Rückruf wird immer synchron aufgerufen.

[in] writeCallbackState

Vom Aufrufer definierter Zustand, der beim Aufrufen des WS_WRITE_CALLBACK übergeben werden soll.

properties

Ein Array optionaler Eigenschaften, die steuern, wie die Kanonisierung ausgeführt werden soll. Siehe WS_XML_CANONICALIZATION_PROPERTY.

[in] propertyCount

Die Anzahl der Eigenschaften.

[in, optional] error

Gibt an, wo zusätzliche Fehlerinformationen 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 waren nicht im erwarteten Format oder hatten nicht den erwarteten Wert.

Hinweise

Das Verwendungsmuster für die Kanonisierung ist:

Während dieses Prozesses werden die kanonischen Bytes in den angegebenen WriteCallback geschrieben. Jeder vom Writer geschriebene Knoten wird kanonisiert. Daher können Kanonisierung und Generierung in einem Durchgang durchgeführt werden, unabhängig davon, welche APIs zum Schreiben des XML verwendet werden. WsEndWriterCanonicalization muss aufgerufen werden, um sicherzustellen, dass alle kanonisierten Bytes in den angegebenen Rückruf geschrieben werden.

WsEndWriterCanonicalization muss in der gleichen Tiefe aufgerufen werden, in der WsStartWriterCanonicalization aufgerufen wurde. Andere Writer-APIs geben einen Fehler zurück, wenn sie sich in eine Tiefe unterhalb des Aufrufs von WsStartWriterCanonicalization bewegen würden.

Es ist ein ungültiger Vorgang, WsMoveWriter oder WsSetWriterPosition für einen Writer zwischen einem Paar übereinstimmenden WsStartWriterCanonicalization - und WsEndWriterCanonicalization-Aufrufen aufzurufen.

Aufrufe dieser API können nicht geschachtelt werden. Auf einen Aufruf von WsStartWriterCanonicalization muss also ein Aufruf von WsEndWriterCanonicalization vor dem nächsten WsStartWriterCanonicalization-Aufruf folgen.

Wenn kein WS_XML_CANONICALIZATION_ALGORITHM angegeben wird, 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 Writer muss bei WS_XML_NODE_TYPE_BOF positioniert werden, wenn WsStartWriterCanonicalization mit diesen Algorithmen aufgerufen wird.

Anforderungen

   
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