共用方式為


WS_XML_WRITER_PROPERTY_ID列舉型別 (webservices.h)

每個 xml 寫入器屬性都是由標識碼識別,而且具有相關聯的值。 此列舉會在 WS_XML_WRITER_PROPERTY 結構內使用,其會做為 WsCreateWriterWsSetOutputWsSetOutputToBufferWsWriteXmlBufferToBytes 的參數。 它也會直接用作 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,則此屬性是位元組數目上限
寫入器會保留對 WsSetOutputWsFlushWriter 的呼叫
緩衝輸出的用途。

使用 WsSetOutputToBuffer 指定時,此屬性沒有任何作用。

此屬性預設為 4096。
WS_XML_WRITER_PROPERTY_CHARSET
值: 6
WS_CHARSET
會傳回寫入器用來編碼檔的字元集。 此值僅適用於
文字檔。
WS_XML_WRITER_PROPERTY_BUFFERS
值: 7
WS_BUFFERS結構
,傳回包含所產生 xml 位元組的一組緩衝區。

如果寫入器使用 WS_XML_WRITER_BUFFER_OUTPUT,則會傳回所有產生的位元組,以及
緩衝區在呼叫 WsSetOutputWsFreeWriter 之前有效。

如果寫入器使用 WS_XML_WRITER_MTOM_ENCODING,則不得有開啟元素。
支援的MIME元件將產生並包含在傳回的緩衝區中。 一旦這樣做
發生時,任何嘗試進一步寫入 xml 文件的 API 都會傳回 WS_E_INVALID_OPERATION
(請參閱 Windows Web 服務傳回值。

使用 WS_XML_WRITER_STREAM_OUTPUT時無法使用此屬性。

此屬性不適用於設定為 WS_XML_BUFFER的寫入器。

這可能比使用 WS_XML_WRITER_PROPERTY_BYTES 更方便但更有效率,因為
寫入器不需要將組成檔的緩衝區串連成單一緩衝區。
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE
值: 8
一個烏龍
會指定寫入器將緩衝的最大位元元組數目。

如果寫入器使用 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,則會傳回所有產生的位元組,以及
緩衝區在呼叫 WsSetOutputWsFreeWriter 之前有效。

如果寫入器使用 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
WS_BYTES結構,其中包含寫入器可用來編碼 xml 檔的緩衝區。 這是
當已知所產生 XML 數據的大小上限,或呼叫端想要擁有時,會很有用
放置位元組的緩衝區。

如果指定的大小大於或等於 WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE,則
寫入器不會從其內部緩衝區配置。

此緩衝區可能會顯示為屬性 WS_XML_WRITER_PROPERTY_BUFFERSWS_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
指定任何時間點可能出現在範圍內的 xmlns 唯一宣告數目上限的 ULONG
寫入檔時。

此屬性預設為 32。
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN
價值: 15
指定下列其中一項的 ULONG

如果寫入器使用 WS_XML_WRITER_BUFFER_OUTPUT,則此屬性
會傳回已寫入器中的位元元組數目。

如果寫入器使用 WS_XML_WRITER_STREAM_OUTPUT,則此屬性
會傳回自上次呼叫之後寫入器之位元組數
WsFlushWriter 的 FlushWriter 中。

如果寫入器目前正在寫入項目開始標記,則開始標籤的大小不會包含在中
傳回的值。

此屬性無法在使用 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 字串,例如:



<容器>
<空元素 />
<emptyElementWithEndTag></emptyElementWithEndTag>
</容器>


如果此屬性為 FALSE,WsCopyNode 會產生下列 xml:



<容器>
<空元素 />
<emptyElementWithEndTag></emptyElementWithEndTag>
</容器>


如果此屬性為 TRUE,WsCopyNode 會產生下列 xml:



<容器>
<空元素 />
<emptyElementWithEndTag />
</容器>
WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS
值: 18
Windows 8 或更新版本:控制空元素發出方式的 BOOL

如果設定為 FALSE,則只會發出呼叫 WsWriteStartElementWsWriteEndElement 所建立的元素,如下所示:


<空元素 />


如果設定為 TRUE,則該元素將發出如下:

xml
<emptyElement></空元素>


預設值為 FALSE

要求

要求 價值
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
Header webservices.h