每个 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结构,指定编写器是否允许文档顶层的多个元素和非空白。 此属性 在WS_XML_WRITER_MTOM_ENCODING中可能未设置为 TRUE。 此属性默认为 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 将 将不含内容的元素转换为空元素。 二进制编码不支持空元素。 将 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 <emptyElement></emptyElement> 默认值为 FALSE |
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
| Header | webservices.h |