WsStartReaderCanonicalization 函数 (webservices.h)
此操作开始将指定的 XML 读取器置于标准或“规范化”格式的过程。
规范化的使用模式为:
- 将读取器移动到规范化开始的元素。
- 调用 WsStartReaderCanonicalization。
- 将读取器向前移动到结束位置。
- 调用 WsEndReaderCanonicalization。
为了仅将 XML 读取器用于规范化 XML 元素节点,当 Reader 位于元素上时,应用程序可以调用 WsStartReaderCanonicalization、 WsSkipNode 和 WsEndReaderCanonicalization 。
必须调用 WsEndReaderCanonicalization,以确保所有规范化的字节都写入指定的回调。
WsEndReaderCanonicalization
必须在 WsStartReaderCanonicalization 的同一深度调用。 如果移动到低于调用 WsStartReaderCanonicalization 的深度,其他读取器函数将返回错误。
d在对 WsStartReaderCanonicalization 和 WsEndReaderCanonicalization 的调用之间调用 WsMoveReader 或 WsSetReaderPosition 无效。
语法
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
控制规范化执行方式的可选属性的“数组”引用。
[in] propertyCount
属性数。
[in, optional] error
指向 WS_ERROR 对象的指针,如果函数失败,应存储有关错误的其他信息。
返回值
此函数可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
一个或多个参数无效。 |
|
由于 对象的当前状态,不允许此操作。 |
|
输入数据的格式不是预期的,或者没有预期的值。 |
注解
无法嵌套对此函数的调用。 因此,在进行下一次 WsStartReaderCanonicalization 调用之前,对 WsStartReaderCanonicalization 的调用必须先调用 WsEndReaderCanonicalization。
如果未指定 WS_XML_CANONICALIZATION_ALGORITHMWS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM 使用。
WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM和WS_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 |