Share via


WsStartWriterCanonicalization 函式 (webservices.h)

在指定的 XML 寫入器上啟動標準化。

語法

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

參數

[in] writer

應該啟動標準化的 XML 寫入器。

[in] writeCallback

要叫用以寫入標準位元組的回呼,因為會產生這些位元組。 這個回呼一律會以同步方式叫用。

[in] writeCallbackState

叫用 WS_WRITE_CALLBACK時應該傳遞的呼叫端定義狀態。

properties

選擇性屬性陣列,控制如何執行標準化。 請參閱 WS_XML_CANONICALIZATION_PROPERTY

[in] propertyCount

屬性數目。

[in, optional] error

指定函式失敗時應儲存其他錯誤資訊的位置。

傳回值

此函式可以傳回下列其中一個值。

傳回碼 描述
E_INVALIDARG
一或多個引數無效。
WS_E_INVALID_OPERATION
由於 物件的目前狀態,不允許此作業。
WS_E_INVALID_FORMAT
輸入資料不是預期的格式,或沒有預期的值。

備註

標準化的使用模式是:

在此程式期間,標準位元組會寫入指定的 writeCallback。 寫入器所撰寫的每個節點都會正式化。 因此,不論使用哪些 API 來撰寫 XML,都可以在一次傳遞中完成標準化和產生。 必須呼叫 WsEndWriterCanonicalization ,以確保所有標準位元組都會寫入指定的回呼。

WsEndWriterCanonicalization 必須在呼叫 WsStartWriterCanonicalization 的相同深度呼叫。 如果其他寫入器 API 會移至低於 呼叫 WsStartWriterCanonicalization 的深度,則會傳回錯誤。

在一對相符WsStartWriterCanonicalizationWsEndWriterCanonicalization呼叫之間的寫入器上呼叫WsMoveWriterWsSetWriterPosition是不正確作業。

無法巢狀呼叫此 API。 因此,呼叫 WsStartWriterCanonicalization 之後必須接著呼叫 WsEndWriterCanonicalization ,再呼叫下一個 WsStartWriterCanonicalization 呼叫。

如果未指定 WS_XML_CANONICALIZATION_ALGORITHM ,則會使用 WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM

WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHMWS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM演算法只能與整個 xml 檔搭配使用。 當使用這些演算法呼叫WsStartWriterCanonicalization時,寫入器必須位於WS_XML_NODE_TYPE_BOF

規格需求

   
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll