enumerazione WS_XML_WRITER_PROPERTY_ID (webservices.h)

Ogni proprietà del writer xml è identificata da un ID e ha un valore associato. Questa enumerazione viene utilizzata all'interno della struttura WS_XML_WRITER_PROPERTY , usata come parametro per WsCreateWriter, WsSetOutput, WsSetOutputToBuffer e WsWriteXmlBufferToBytes. Viene anche usato direttamente come parametro per WsGetWriterProperty.

Sintassi

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;

Costanti

 
WS_XML_WRITER_PROPERTY_MAX_DEPTH
Valore: 0
Oggetto ULONG che specifica la profondità massima consentita dal writer.


La profondità viene misurata in qualsiasi punto in base al numero di elementi iniziali annidati.


Una profondità pari a 0 impedisce la scrittura di elementi iniziali.


Per impostazione predefinita, questa proprietà è 32.
WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT
Valore: 1
Struttura WS_XML_WRITER_MTOM_ENCODING che specifica se il writer consentirà più elementi e spazi non vuoti al livello superiore del documento. Questa proprietà
potrebbe non essere impostato su TRUE con WS_XML_WRITER_MTOM_ENCODING.


Per impostazione predefinita, questa proprietà è FALSE.
WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES
Valore: 2
ULONG che specifica
il numero massimo di attributi consentiti dal writer per un elemento.


Per impostazione predefinita, questa proprietà è 128.
WS_XML_WRITER_PROPERTY_WRITE_DECLARATION
Valore: 3
Valore BOOL che specifica se il writer deve generare una dichiarazione XML appropriata all'inizio del documento.


Per impostazione predefinita, questa proprietà è FALSE.
WS_XML_WRITER_PROPERTY_INDENT
Valore: 4
ULONG che specifica il numero di spazi di rientro da utilizzare per formattare il codice xml. Se il rientro è zero, non viene eseguita alcuna formattazione.


Per impostazione predefinita, questa proprietà è 0.
WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE
Valore: 5
ULONG che specifica una delle opzioni seguenti.

Se il writer usa WS_XML_WRITER_BUFFER_OUTPUT, questa proprietà è il numero massimo di byte
il writer manterrà tra le chiamate a WsSetOutput ai fini del buffering dell'output.


Se il writer usa WS_XML_WRITER_STREAM_OUTPUT, questa proprietà corrisponde al numero massimo di byte
il writer manterrà tra le chiamate a WsSetOutput e WsFlushWriter per
scopi del buffering dell'output.


Questa proprietà non ha alcun effetto se specificata con WsSetOutputToBuffer.


Per impostazione predefinita, questa proprietà è 4096.
WS_XML_WRITER_PROPERTY_CHARSET
Valore: 6
Valore WS_CHARSET che
restituisce il set di caratteri utilizzato dal writer per codificare il documento. Questo valore è disponibile solo per
documenti di testo.
WS_XML_WRITER_PROPERTY_BUFFERS
Valore: 7
Struttura WS_BUFFERS
che restituisce un set di buffer contenenti i byte xml generati.


Se il writer usa WS_XML_WRITER_BUFFER_OUTPUT, vengono restituiti tutti i byte generati e
i buffer sono validi fino a quando non viene chiamato WsSetOutput o WsFreeWriter .


Se il writer usa WS_XML_WRITER_MTOM_ENCODING, non deve essere presente alcun elemento aperto.
Le parti MIME di supporto verranno generate e incluse nei buffer restituiti. Una volta questo
si verifica, qualsiasi API che tenta di scrivere ulteriormente nel documento xml restituirà WS_E_INVALID_OPERATION.
Vedere Valori restituiti di Servizi Web Windows.

Questa proprietà non è disponibile quando si utilizza WS_XML_WRITER_STREAM_OUTPUT.


Questa proprietà non è disponibile in un writer impostato su un WS_XML_BUFFER.


Questo può essere meno conveniente ma più efficiente rispetto all'uso di WS_XML_WRITER_PROPERTY_BYTES perché
Writer non deve concatenare i buffer che costituiscono il documento in un unico buffer.
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE
Valore: 8
ULONG che
specifica il numero massimo di byte memorizzati nel buffer del writer.


Se il writer usa WS_XML_WRITER_BUFFER_OUTPUT, questo è il numero massimo di
byte che verranno memorizzati nel buffer per l'intero documento. Le chiamate a WsFlushWriter non hanno alcun effetto.


Se il writer usa WS_XML_WRITER_STREAM_OUTPUT, si tratta della quantità massima di
dati che verranno memorizzati nel buffer tra le chiamate WsFlushWriter .


Questa proprietà non ha alcun effetto se specificata con WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES
Valore: 9
Struttura WS_BUFFERS
che restituisce un singolo buffer contenente i byte xml generati.


Se il writer usa WS_XML_WRITER_BUFFER_OUTPUT, vengono restituiti tutti i byte generati e
il buffer è valido fino a quando non viene chiamato WsSetOutput o WsFreeWriter .


Se il writer usa WS_XML_WRITER_MTOM_ENCODING, non deve essere presente alcun elemento aperto.
Le parti MIME di supporto verranno generate e incluse nei buffer restituiti. Una volta questo
si verifica, qualsiasi API che tenta di scrivere ulteriormente nel documento xml restituirà WS_E_INVALID_OPERATION.


Questa proprietà non è disponibile quando si utilizza WS_XML_WRITER_STREAM_OUTPUT.


Questa proprietà non è disponibile in un writer impostato su un WS_XML_BUFFER.


Questo può essere più conveniente ma meno efficiente rispetto all'uso di WS_XML_WRITER_PROPERTY_BUFFERS perché
Il writer potrebbe dover concatenare i buffer che costituiscono il documento in un singolo buffer.
WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE
Valore: 10
Valore BOOL che
indica che WsWriteStartAttribute è stato chiamato e che il writer è
posizionato sul contenuto dell'attributo.
WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE
Valore: 11
ULONG utilizzato con WS_XML_WRITER_MTOM_ENCODING. Specifica la quantità massima di dati che
verrà memorizzato nel buffer ai fini della scrittura delle parti MIME. WsWriteBytes e
WsPullBytes deve memorizzare nel buffer i dati per generare i dati come parte MIME separata
segue il documento e può essere usato per limitare la quantità di buffer.


Per impostazione predefinita, questa proprietà è 65536.
WS_XML_WRITER_PROPERTY_INITIAL_BUFFER
Valore: 12
Struttura WS_BYTES che contiene un buffer che il writer può usare per codificare il documento xml. This is
utile quando è noto un limite superiore sulle dimensioni dei dati XML generati o il chiamante vuole essere proprietario
buffer in cui vengono inseriti i byte.


Se la dimensione specificata è maggiore o uguale a WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE, la
writer non alloca dai buffer interni.


Questo buffer può essere visualizzato come uno dei buffer restituiti dalla proprietà WS_XML_WRITER_PROPERTY_BUFFERS o WS_XML_WRITER_PROPERTY_BYTES.


Il chiamante deve assicurarsi che il buffer specificato sia valido per la durata del writer.
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES
Valore: 13
Valore BOOL utilizzato con WS_XML_WRITER_TEXT_ENCODING. L'impostazione di questa opzione su TRUE consente riferimenti a caratteri
di caratteri considerati non validi da XML 1.0 da accettare.


L'impostazione di questa proprietà su TRUE può influire sull'interoperabilità.


Per impostazione predefinita, questa proprietà è FALSE.
WS_XML_WRITER_PROPERTY_MAX_NAMESPACES
Valore: 14
ULONG che specifica il numero massimo di dichiarazioni univoche xmlns che possono essere visualizzate nell'ambito in qualsiasi momento
durante la scrittura del documento.


Per impostazione predefinita, questa proprietà è 32.
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN
Valore: 15
ULONG che specifica una delle opzioni seguenti.

Se il writer usa WS_XML_WRITER_BUFFER_OUTPUT, questa proprietà
restituisce il numero di byte scritti nel writer.


Se il writer usa WS_XML_WRITER_STREAM_OUTPUT, questa proprietà
restituisce il numero di byte scritti nel writer dall'ultima chiamata a
WsFlushWriter.


Se il writer sta attualmente scrivendo un tag iniziale dell'elemento, le dimensioni del tag iniziale non sono incluse in
valore restituito.


Questa proprietà non è disponibile in un writer impostato usando WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE
Valore: 16
ULONG che restituisce il numero massimo di byte necessari per chiudere tutti gli elementi aperti.


Un'applicazione può usare WS_XML_WRITER_PROPERTY_BYTES_WRITTEN e
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE per approssimare quanto aggiuntivo
i dati possono essere scritti nel documento. In questo caso, l'applicazione deve tenere conto
codifica del documento scritto.


Questa proprietà non è disponibile in un writer impostato usando WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS
Valore: 17
Valore BOOL che controlla il modo in cui WsCopyNode copia gli elementi senza contenuto.


Quando questa proprietà è impostata su FALSE, WsCopyNode mantiene se ogni elemento è rappresentato
come coppia di tag iniziale/finale o come elemento vuoto. Quando questa proprietà è impostata su TRUE, WsCopyNode
convertire gli elementi senza contenuto in elementi vuoti.


La codifica binaria non supporta elementi vuoti. Quando si usa WsCopyNode con
un writer che usa la codifica binaria di questa proprietà non ha alcun effetto. Tutti gli elementi vuoti sono
convertito in elementi senza contenuto.


Per impostazione predefinita, questa proprietà è FALSE.


Per una stringa XML di input come:



syntax<br><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;container&gt;<br> &lt;emptyElement /&gt;<br> &lt;emptyElementWithEndTag&gt;&lt;/emptyElementWithEndTag&gt;<br>&lt;/container&gt;<br>

Se questa proprietà è FALSE, WsCopyNode genererà il codice XML seguente:




syntax<br><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;container&gt;<br> &lt;emptyElement /&gt;<br> &lt;emptyElementWithEndTag&gt;&lt;/emptyElementWithEndTag&gt;<br>&lt;/container&gt;<br>

Se questa proprietà è TRUE, WsCopyNode genererà il codice XML seguente:



syntax<br><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;container&gt;<br> &lt;emptyElement /&gt;<br> &lt;emptyElementWithEndTag /&gt;<br>&lt;/container&gt;<br>
WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS
Valore: 18
Windows 8 o versione successiva: valore BOOL che controlla la modalità di emissione degli elementi vuoti.

Se impostato su FALSE, verrà generato un elemento creato solo da chiamate a WsWriteStartElement e WsWriteEndElement come indicato di seguito:


syntax<br>&lt;emptyElement /&gt;<br>

Se impostato su TRUE, l'elemento verrà generato nel modo seguente:


xml<br><emptyElement></emptyElement><br><br>


Il valore predefinito è FALSE

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Intestazione webservices.h