Share via


enumeración WS_XML_WRITER_PROPERTY_ID (webservices.h)

Cada propiedad del escritor xml se identifica mediante un identificador y tiene un valor asociado. Esta enumeración se usa en la estructura WS_XML_WRITER_PROPERTY , que se usa como parámetro para WsCreateWriter, WsSetOutput, WsSetOutputToBuffer y WsWriteXmlBufferToBytes. También se usa directamente como parámetro para WsGetWriterProperty.

Syntax

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;

Constantes

 
WS_XML_WRITER_PROPERTY_MAX_DEPTH
Valor: 0
ULONG que especifica la profundidad máxima del documento que permitirá el escritor.


La profundidad se mide en cualquier punto por el número de elementos iniciales anidados.


Una profundidad de 0 impide que se escriban elementos iniciales.


Esta propiedad tiene como valor predeterminado 32.
WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT
Valor: 1
Estructura WS_XML_WRITER_MTOM_ENCODING que especifica si el escritor permitirá varios elementos y espacios no en blanco en el nivel superior del documento. Esta propiedad
no se puede establecer en TRUE con WS_XML_WRITER_MTOM_ENCODING.


Esta propiedad tiene como valor predeterminado FALSE.
WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES
Valor: 2
ULONG que especifica
el número máximo de atributos que el escritor permitirá en un elemento.


Esta propiedad tiene como valor predeterminado 128.
WS_XML_WRITER_PROPERTY_WRITE_DECLARATION
Valor: 3
BoOL que especifica si el escritor debe emitir una declaración xml adecuada al principio del documento.


Esta propiedad tiene como valor predeterminado FALSE.
WS_XML_WRITER_PROPERTY_INDENT
Valor: 4
ULONG que especifica el número de espacios de sangría que se deben usar para dar formato al xml. Si la sangría es cero, no se produce ningún formato.


Esta propiedad tiene como valor predeterminado 0.
WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE
Valor: 5
ULONG que especifica una de las siguientes opciones.

Si el escritor usa WS_XML_WRITER_BUFFER_OUTPUT, esta propiedad es el número máximo de bytes.
el escritor se conservará entre las llamadas a WsSetOutput con fines de almacenamiento en búfer de salida.


Si el escritor usa WS_XML_WRITER_STREAM_OUTPUT, esta propiedad es el número máximo de bytes.
el escritor se conservará entre llamadas a WsSetOutput y WsFlushWriter para
propósitos de salida de almacenamiento en búfer.


Esta propiedad no tiene ningún efecto cuando se especifica con WsSetOutputToBuffer.


Esta propiedad tiene como valor predeterminado 4096.
WS_XML_WRITER_PROPERTY_CHARSET
Valor: 6
Valor de WS_CHARSET que
devuelve el juego de caracteres que el escritor usa para codificar el documento. Este valor solo está disponible para
documentos de texto.
WS_XML_WRITER_PROPERTY_BUFFERS
Valor: 7
Estructura de WS_BUFFERS
que devuelve un conjunto de búferes que contienen los bytes xml generados.


Si el escritor usa WS_XML_WRITER_BUFFER_OUTPUT, se devuelven todos los bytes generados y
los búferes son válidos hasta que se llama a WsSetOutput o WsFreeWriter .


Si el escritor usa WS_XML_WRITER_MTOM_ENCODING, no debe haber elementos abiertos.
Los elementos MIME auxiliares se generarán e incluirán en los búferes devueltos. Una vez esto
se produce, cualquier API que intente escribir más en el documento xml devolverá WS_E_INVALID_OPERATION.
(Consulte Valores devueltos de servicios web de Windows).

Esta propiedad no está disponible cuando se usa WS_XML_WRITER_STREAM_OUTPUT.


Esta propiedad no está disponible en un escritor que está establecido en un WS_XML_BUFFER.


Esto puede ser menos conveniente pero más eficaz que usar WS_XML_WRITER_PROPERTY_BYTES porque
Writer no tiene que concatenar los búferes que componen el documento en un solo búfer.
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE
Valor: 8
Un ULONG que
especifica el número máximo de bytes que el escritor almacenará en búfer.


Si el escritor usa WS_XML_WRITER_BUFFER_OUTPUT, este es el número máximo de
bytes que se almacenarán en búfer para todo el documento. Las llamadas a WsFlushWriter no tienen ningún efecto.


Si el escritor usa WS_XML_WRITER_STREAM_OUTPUT, esta es la cantidad maxmimum de
datos que se almacenarán en búfer entre las llamadas de WsFlushWriter .


Esta propiedad no tiene ningún efecto cuando se especifica con WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES
Valor: 9
Estructura de WS_BUFFERS
que devuelve un único búfer que contiene los bytes xml generados.


Si el escritor usa WS_XML_WRITER_BUFFER_OUTPUT, se devuelven todos los bytes generados y
el búfer es válido hasta que se llama a WsSetOutput o WsFreeWriter .


Si el escritor usa WS_XML_WRITER_MTOM_ENCODING, no debe haber elementos abiertos.
Los elementos MIME auxiliares se generarán e incluirán en los búferes devueltos. Una vez esto
se produce, cualquier API que intente escribir más en el documento xml devolverá WS_E_INVALID_OPERATION.


Esta propiedad no está disponible cuando se usa WS_XML_WRITER_STREAM_OUTPUT.


Esta propiedad no está disponible en un escritor que está establecido en un WS_XML_BUFFER.


Esto puede ser más conveniente pero menos eficaz que usar WS_XML_WRITER_PROPERTY_BUFFERS porque
es posible que el escritor tenga que concatenar los búferes que componen el documento en un solo búfer.
WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE
Valor: 10
Un BOOL que
indica que se ha llamado a WsWriteStartAttribute y que el escritor es
colocado en el contenido del atributo.
WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE
Valor: 11
Un ULONG usado con WS_XML_WRITER_MTOM_ENCODING. Especifica la cantidad máxima de datos que
se almacenará en búfer para escribir los elementos MIME. WsWriteBytes y
WsPullBytes debe almacenar en búfer los datos para emitir los datos como un elemento MIME independiente que
sigue al documento y se puede usar para limitar cuánto se almacena en búfer.


Esta propiedad tiene como valor predeterminado 65536.
WS_XML_WRITER_PROPERTY_INITIAL_BUFFER
Valor: 12
Estructura WS_BYTES que contiene un búfer que el escritor puede usar para codificar el documento xml. This is
útil cuando se conoce un límite superior en el tamaño de los datos xml generados, o el autor de la llamada quiere ser propietario.
el búfer en el que se colocan los bytes.


Si el tamaño especificado es mayor o igual que WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE, el
writer no asignará desde sus búferes internos.


Este búfer puede aparecer como uno de los búferes devueltos por la propiedad WS_XML_WRITER_PROPERTY_BUFFERS o WS_XML_WRITER_PROPERTY_BYTES.


El autor de la llamada debe asegurarse de que el búfer especificado es válido durante la vigencia del sistema de escritura.
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES
Valor: 13
Un BOOL utilizado con WS_XML_WRITER_TEXT_ENCODING. Si se establece en TRUE , se permiten referencias de caracteres
de caracteres considerados no válidos por XML 1.0 que se va a aceptar.


Establecer esta propiedad en TRUE puede afectar a la interoperabilidad.


Esta propiedad tiene como valor predeterminado FALSE.
WS_XML_WRITER_PROPERTY_MAX_NAMESPACES
Valor: 14
Un ULONG que especifica el número máximo de declaraciones únicas xmlns que pueden aparecer en el ámbito en cualquier momento
al escribir el documento.


Esta propiedad tiene como valor predeterminado 32.
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN
Valor: 15
ULONG que especifica una de las siguientes opciones.

Si el escritor usa WS_XML_WRITER_BUFFER_OUTPUT, esta propiedad
devuelve el número de bytes que se han escrito en el escritor.


Si el escritor usa WS_XML_WRITER_STREAM_OUTPUT, esta propiedad
devuelve el número de bytes que se han escrito en el escritor desde la última llamada a .
WsFlushWriter.


Si el escritor está escribiendo actualmente una etiqueta de inicio de elemento, el tamaño de la etiqueta de inicio no se incluye en
valor devuelto.


Esta propiedad no está disponible en un escritor que se estableció mediante WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE
Valor: 16
ULONG que devuelve el número máximo de bytes necesarios para cerrar los elementos abiertos.


Una aplicación puede usar WS_XML_WRITER_PROPERTY_BYTES_WRITTEN y
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE acerca de cuánto adicional
los datos se pueden escribir en el documento. Al hacerlo, la aplicación debe tener en cuenta
codificación del documento que se está escribiendo.


Esta propiedad no está disponible en un escritor que se estableció mediante WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS
Valor: 17
Un BOOL que controla cómo WsCopyNode copia elementos sin contenido.


Cuando esta propiedad se establece en FALSE, WsCopyNode conserva si cada elemento está representado.
como un par de etiquetas de inicio y finalización, o como un elemento vacío. Cuando esta propiedad se establece en TRUE, WsCopyNode se establecerá
convertir elementos sin contenido en elementos vacíos.


La codificación binaria no admite elementos vacíos. Al usar WsCopyNode con
Un sistema de escritura que usa la codificación binaria de esta propiedad no tiene ningún efecto. Todos los elementos vacíos son
convertido en elementos sin contenido.


De forma predeterminada, esta propiedad es FALSE.


Para una cadena XML de entrada como:



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>

Si esta propiedad es FALSE, WsCopyNode generará el siguiente xml:




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>

Si esta propiedad es TRUE, WsCopyNode generará el siguiente xml:



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
Valor: 18
Windows 8 o posterior: una BOOL que controla cómo se emiten los elementos vacíos.

Si se establece en FALSE, solo se emitirá un elemento creado por llamadas a WsWriteStartElement y WsWriteEndElement de la siguiente manera:


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

Si se establece en TRUE, ese elemento se emitirá de la siguiente manera:


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


El valor predeterminado es FALSE.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Encabezado webservices.h