enumeración WS_XML_WRITER_PROPERTY_ID (webservices.h)

Cada propiedad de escritura 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, WsSetOutputToBuffery WsWriteXmlBufferToBytes. También se usa directamente como parámetro para WsGetWriterProperty.

Sintaxis

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
Un ULONG de 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
Un 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
Un 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 uno de los siguientes.

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

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

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 usa el escritor 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 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 de 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, se trata de la cantidad maxmimum de
datos que se almacenarán en búfer entre llamadas 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 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 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 de 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 de ULONG de usado con WS_XML_WRITER_MTOM_ENCODING. Esto especifica la cantidad máxima de datos que
se almacenará en búfer para la escritura de las partes MIME. WsWriteBytes y
WsPullBytes necesitan almacenar en búfer los datos para emitir los datos como un elemento MIME independiente que
sigue el 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. Esto es
útil cuando se conoce un límite superior en el tamaño de los datos xml generados, o el autor de la llamada quiere poseer
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,
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 escritor.
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES
Valor: 13
Un BOOL usado con WS_XML_WRITER_TEXT_ENCODING. Establecer esto en TRUE permite referencias de caracteres
de caracteres considerados no válidos por XML 1.0 que se aceptarán.

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 punto
al escribir el documento.

Esta propiedad tiene como valor predeterminado 32.
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN
Valor: 15
ULONG que especifica uno de los siguientes.

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
Un 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 aproximadamente 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 se representa cada elemento.
como un par de etiquetas de inicio y finalización, o como un elemento vacío. Cuando esta propiedad se establece en TRUE, WsCopyNode
convertir elementos sin contenido en elementos vacíos.

La codificación binaria no admite elementos vacíos. Al usar WsCopyNode de con
Un escritor 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:









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









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







WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS
Valor: 18
Windows 8 o posterior: un 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:





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

XML



El valor predeterminado es FALSE

Requisitos

Requisito Valor
cliente mínimo admitido Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
encabezado de webservices.h