WsStartReaderCanonicalization 函数 (webservices.h)

此操作开始将指定的 XML 读取器置于标准或“规范化”格式的过程。

规范化的使用模式为:

  • 将读取器移动到规范化开始的元素。
  • 调用 WsStartReaderCanonicalization
  • 将读取器向前移动到结束位置。
  • 调用 WsEndReaderCanonicalization
在此过程中,规范字节将写入指定的 writeCallback。
注意 超前的节点被规范化,包括使用 WsSkipNode 跳过的子元素的节点。 这是有益的,因为它意味着规范化和分析可以在 XML 内容上一次性完成,而不管使用什么函数来读取数据。
 

为了仅将 XML 读取器用于规范化 XML 元素节点,当 Reader 位于元素上时,应用程序可以调用 WsStartReaderCanonicalizationWsSkipNodeWsEndReaderCanonicalization

必须调用 WsEndReaderCanonicalization,以确保所有规范化的字节都写入指定的回调。

注意WsEndReaderCanonicalization 必须在 WsStartReaderCanonicalization 的同一深度调用。 如果移动到低于调用 WsStartReaderCanonicalization 的深度,其他读取器函数将返回错误。 d
 

在对 WsStartReaderCanonicalization 和 WsEndReaderCanonicalization 的调用之间调用 WsMoveReaderWsSetReaderPosition 无效。

语法

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

参数

[in] reader

指向开始规范化的 WS_XML_READER 对象的指针。 指针必须引用有效的 XML 读取器 对象。

[in] writeCallback

调用的回调函数,用于在生成规范字节时写入这些字节。

注意 此回调是同步调用的。

 

[in] writeCallbackState

指向调用WS_WRITE_CALLBACK时传递的调用方定义 状态的指针

properties

控制规范化执行方式的可选属性的“数组”引用。

注意 有关详细信息 ,请参阅WS_XML_CANONICALIZATION_PROPERTY

 

[in] propertyCount

属性数。

[in, optional] error

指向 WS_ERROR 对象的指针,如果函数失败,应存储有关错误的其他信息。

返回值

此函数可以返回其中一个值。

返回代码 说明
E_INVALIDARG
一个或多个参数无效。
WS_E_INVALID_OPERATION
由于 对象的当前状态,不允许此操作。
WS_E_INVALID_FORMAT
输入数据的格式不是预期的,或者没有预期的值。

注解

无法嵌套对此函数的调用。 因此,在进行下一次 WsStartReaderCanonicalization 调用之前,对 WsStartReaderCanonicalization 的调用必须先调用 WsEndReaderCanonicalization

如果未指定 WS_XML_CANONICALIZATION_ALGORITHMWS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM 使用。

WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHMWS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM算法只能与整个 XML 文档一起使用。 使用这些算法调用 WsStartReaderCanonicalization 时,必须将读取器定位在 WS_XML_NODE_TYPE_BOF

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll