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结构,用于指定编写器是否允许在文档的顶层使用多个元素和非空格。 此属性 对于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 结构。 This is 当已知生成的 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 控制 WsCopyNode 如何复制不带内容的元素的 BOOL。 当此属性设置为 FALSE 时, WsCopyNode 将保留是否表示每个元素 作为开始/结束标记对,或作为空元素。 当此属性设置为 TRUE 时, WsCopyNode 将 将不带内容的元素转换为空元素。 二进制编码不支持空元素。 将 WsCopyNode 与 配合使用时 使用二进制编码此属性的编写器无论哪种方式都不起作用。 所有空元素都是 转换为不带内容的元素。 默认情况下,此属性为 FALSE。 对于输入 XML 字符串,如下所示: syntax<br><br><?xml version="1.0" encoding="utf-8"?><br><container><br> <emptyElement /><br> <emptyElementWithEndTag></emptyElementWithEndTag><br></container><br> 如果此属性为 FALSE, 则 WsCopyNode 将生成以下 xml: syntax<br><br><?xml version="1.0" encoding="utf-8"?><br><container><br> <emptyElement /><br> <emptyElementWithEndTag></emptyElementWithEndTag><br></container><br> 如果此属性为 TRUE, 则 WsCopyNode 将生成以下 xml: syntax<br><br><?xml version="1.0" encoding="utf-8"?><br><container><br> <emptyElement /><br> <emptyElementWithEndTag /><br></container><br> |
WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS 值: 18 Windows 8或更高版本:控制如何发出空元素的 BOOL。 如果设置为 FALSE,将发出仅通过调用 WsWriteStartElement 和 WsWriteEndElement 创建的元素,如下所示: syntax<br><emptyElement /><br> 如果设置为 TRUE,则会发出该元素,如下所示: xml<br><emptyElement></emptyElement><br><br> 默认值为 FALSE |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
标头 | webservices.h |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈