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
指定函数失败时应存储其他错误信息的位置。
返回值
此函数可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
一个或多个参数无效。 |
|
由于对象的当前状态,不允许该操作。 |
|
输入数据未采用预期格式或没有预期值。 |
注解
规范化的使用模式是:
- 调用 WsStartWriterCanonicalization,
- 编写要规范化的 xml,
- 调用 WsEndWriterCanonicalization。
必须在调用 WsStartWriterCanonicalization 的同一深度调用 WsEndWriterCanonicalization 。 如果其他编写器 API 移动到低于 调用 WsStartWriterCanonicalization 的深度,则其他编写器 API 将返回错误。
在一对匹配的 WsStartWriterCanonicalization 和 WsEndWriterCanonicalization 调用之间对编写器调用 WsMoveWriter 或 WsSetWriterPosition 是无效的操作。
无法嵌套对此 API 的调用。 因此,在下一次 WsStartWriterCanonicalization 调用之前,必须先调用 WsStartWriterCanonicalization ,然后再调用 WsStartWriterCanonicalization 。
如果未指定 WS_XML_CANONICALIZATION_ALGORITHM ,则使用 WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM 。
WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM和WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM算法只能用于整个 xml 文档。 使用这些算法调用 WsStartWriterCanonicalization 时,编写器必须定位在 WS_XML_NODE_TYPE_BOF。
要求
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | webservices.h |
Library | WebServices.lib |
DLL | WebServices.dll |