WS_XML_WRITER_PROPERTY_ID枚举 (webservices.h)
每个 xml 编写器属性由 ID 标识,并具有关联的值。 此枚举在 WS_XML_WRITER_PROPERTY 结构中使用,该结构用作 WsCreateWriter、WsSetOutput、WsSetOutputToBuffer和 WsWriteXmlBufferToBytes的参数。 它还直接用作参数来 WsGetWriterProperty。
语法
typedef enum {
WS_XML_WRITER_PROPERTY_MAX_DEPTH = 0,
WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT = 1,
WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES = 2,
WS_XML_WRITER_PROPERTY_WRITE_DECLARATION = 3,
WS_XML_WRITER_PROPERTY_INDENT = 4,
WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE = 5,
WS_XML_WRITER_PROPERTY_CHARSET = 6,
WS_XML_WRITER_PROPERTY_BUFFERS = 7,
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE = 8,
WS_XML_WRITER_PROPERTY_BYTES = 9,
WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE = 10,
WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE = 11,
WS_XML_WRITER_PROPERTY_INITIAL_BUFFER = 12,
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES = 13,
WS_XML_WRITER_PROPERTY_MAX_NAMESPACES = 14,
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN = 15,
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE = 16,
WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS = 17,
WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS = 18
} WS_XML_WRITER_PROPERTY_ID;
常数
WS_XML_WRITER_PROPERTY_MAX_DEPTH 值:0 一个 ULONG,指定编写器将允许的文档的最大深度。 深度由嵌套起始元素的数量在任何时间点测量。 深度为 0 可防止写入任何起始元素。 此属性默认为 32。 |
WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT 值:1 一个 WS_XML_WRITER_MTOM_ENCODING 结构,指定编写器是否允许文档顶层的多个元素和非空白。 此属性 不能设置为具有 此属性默认为 FALSE。 |
WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES 值:2 指定 ULONG 编写器将允许对元素的最大属性数。 此属性默认为 128。 |
WS_XML_WRITER_PROPERTY_WRITE_DECLARATION 值:3 一个 BOOL,指定编写器是否应在文档开头发出适当的 xml 声明。 此属性默认为 FALSE。 |
WS_XML_WRITER_PROPERTY_INDENT 值:4 一个 ULONG,指定应使用多少空格来设置 xml 格式。 如果缩进为零,则不会发生任何格式设置。 此属性默认为 0。 |
WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE 值:5 指定以下项之一的 ULONG。 如果编写器正在使用 WS_XML_WRITER_BUFFER_OUTPUT,则此属性是最大字节数 编写器将保留对 WsSetOutput 的调用,以便缓冲输出。 如果编写器正在使用 WS_XML_WRITER_STREAM_OUTPUT,则此属性是最大字节数 编写器将保留对 WsSetOutput 和 WsFlushWriter 的调用 缓冲输出的用途。 使用 WsSetOutputToBuffer指定此属性时,此属性不起作用。 此属性默认为 4096。 |
WS_XML_WRITER_PROPERTY_CHARSET 值:6 WS_CHARSET 值 返回编写器用于对文档进行编码的字符集。 此值仅适用于 文本文档。 |
WS_XML_WRITER_PROPERTY_BUFFERS 值:7 WS_BUFFERS 结构 返回一组包含生成的 xml 字节的缓冲区。 如果编写器正在使用 WS_XML_WRITER_BUFFER_OUTPUT,则返回所有生成的字节,并且 缓冲区在 WsSetOutput 或 调用 WsFreeWriter 之前有效。 如果编写器正在使用 WS_XML_WRITER_MTOM_ENCODING,则不能有打开的元素。 支持 MIME 部件将生成并包含在返回的缓冲区中。 完成此操作后 发生此情况时,尝试进一步写入 xml 文档的任何 API 都将返回 WS_E_INVALID_OPERATION。 (请参阅 Windows Web Services 返回值。) 使用 WS_XML_WRITER_STREAM_OUTPUT时此属性不可用。 此属性在设置为 WS_XML_BUFFER的编写器上不可用。 这可能比使用 WS_XML_WRITER_PROPERTY_BYTES 更方便,但效率更高,因为 编写器不必将构成文档的缓冲区连接到单个缓冲区中。 |
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE 值:8 ULONG 指定编写器将缓冲的最大字节数。 如果编写器正在使用 WS_XML_WRITER_BUFFER_OUTPUT,则这是最大数目 将缓冲整个文档的字节。 调用 WsFlushWriter 不起作用。 如果编写器正在使用 WS_XML_WRITER_STREAM_OUTPUT,则这是最大值 将在 WsFlushWriter 调用之间缓冲的数据。 使用 WsSetOutputToBuffer指定此属性时,此属性不起作用。 |
WS_XML_WRITER_PROPERTY_BYTES 值:9 WS_BUFFERS 结构 返回包含生成的 xml 字节的单个缓冲区。 如果编写器正在使用 WS_XML_WRITER_BUFFER_OUTPUT,则返回所有生成的字节,并返回 缓冲区在 调用 WsSetOutput 或 WsFreeWriter 之前有效。 如果编写器正在使用 WS_XML_WRITER_MTOM_ENCODING,则不能有打开的元素。 支持 MIME 部件将生成并包含在返回的缓冲区中。 完成此操作后 发生此情况时,尝试进一步写入 xml 文档的任何 API 都将返回 WS_E_INVALID_OPERATION。 使用 WS_XML_WRITER_STREAM_OUTPUT时此属性不可用。 此属性在设置为 WS_XML_BUFFER的编写器上不可用。 这可能比使用 WS_XML_WRITER_PROPERTY_BUFFERS 更方便,但效率更低,因为 编写器可能需要将构成文档的缓冲区连接到单个缓冲区中。 |
WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE 值:10 BOOL 指示已调用 WsWriteStartAttribute 并且编写器为 定位在属性内容上。 |
WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE 值:11 与 WS_XML_WRITER_MTOM_ENCODING一起使用的 ULONG。 这指定最大数据量 将出于编写 MIME 部件的目的缓冲。 WsWriteBytes 和 WsPullBytes 需要缓冲数据才能以单独的 MIME 部分的形式发出数据 遵循文档,可用于限制缓冲的量。 此属性默认为 65536。 |
WS_XML_WRITER_PROPERTY_INITIAL_BUFFER 值:12 包含编写器可用于编码 xml 文档的缓冲区的 WS_BYTES 结构。 这是 当已知生成的 xml 数据大小的上限或调用方想要拥有时,很有用 放置字节的缓冲区。 如果指定的大小大于或等于 WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE,则 编写器不会从其内部缓冲区进行分配。 此缓冲区可能显示为属性 WS_XML_WRITER_PROPERTY_BUFFERS 或 WS_XML_WRITER_PROPERTY_BYTES返回的缓冲区之一。 调用方必须确保指定的缓冲区在编写器的生存期内有效。 |
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES 值:13 与 WS_XML_WRITER_TEXT_ENCODING一起使用的 BOOL。 将此项设置为 true 允许字符引用 XML 1.0 被视为无效的字符的字符。 将此属性设置为 TRUE 可能会影响互操作性。 此属性默认为 FALSE。 |
WS_XML_WRITER_PROPERTY_MAX_NAMESPACES 值:14 一个 ULONG,指定可能在任何点出现在范围内的最大 xmlns 唯一声明数 编写文档时。 此属性默认为 32。 |
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN 值:15 指定以下项之一的 ULONG。 如果编写器正在使用 WS_XML_WRITER_BUFFER_OUTPUT,则此属性 返回已写入编写器中的字节数。 如果编写器正在使用 WS_XML_WRITER_STREAM_OUTPUT,则此属性 返回自上次调用以来写入器中的字节数 WsFlushWriter。 如果编写器当前正在编写元素开始标记,则起始标记的大小不包括在 返回的值。 此属性不适用于使用 WsSetOutputToBuffer设置的编写器。 |
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE 值:16 ULONG,返回关闭任何打开的元素所需的最大字节数。 应用程序可以使用 WS_XML_WRITER_PROPERTY_BYTES_WRITTEN 和 WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE 大致了解额外多少 数据可以写入文档。 执行此操作时,应用程序应考虑 正在写入的文档的编码。 此属性不适用于使用 WsSetOutputToBuffer设置的编写器。 |
WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS 值:17 一个 BOOL,用于控制 WsCopyNode 如何 复制不含内容的元素。 当此属性设置为 FALSE时,WsCopyNode 保留是否表示每个元素 作为开始/结束标记对,或作为空元素。 如果此属性设置为 true 将不含内容的元素转换为空元素。 二进制编码不支持空元素。 使用 WsCopyNode 时 使用二进制编码的编写器,此属性无论哪种方式都不起作用。 所有空元素均为 转换为不含内容的元素。 默认情况下,此属性 FALSE。 对于输入 XML 字符串,例如:
如果此属性 FALSE,WsCopyNode 将生成以下 xml:
如果此属性 TRUE,WsCopyNode 将生成以下 xml:
|
WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS 值:18 Windows 8 或更高版本:用于控制如何发出空元素的 BOOL。 如果设置为 FALSE,则仅通过调用 WsWriteStartElement 和 WsWriteEndElement 创建的元素将发出如下操作:
如果设置为 true ,则会发出该元素,如下所示: xml 默认值为 false |
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
标头 | webservices.h |