Partager via


énumération WS_XML_WRITER_PROPERTY_ID (webservices.h)

Chaque propriété d’enregistreur xml est identifiée par un ID et a une valeur associée. Cette énumération est utilisée dans la structure WS_XML_WRITER_PROPERTY, qui est utilisée comme paramètre pour WsCreateWriter, WsSetOutput, WsSetOutputToBufferet WsWriteXmlBufferToBytes. Il est également utilisé directement comme paramètre pour WsGetWriterProperty.

Syntaxe

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
Valeur : 0
Une ULONG qui spécifie la profondeur maximale du document que l’enregistreur autorise.

La profondeur est mesurée à n’importe quel point par le nombre d’éléments de début imbriqués.

Une profondeur de 0 empêche l’écriture d’éléments de début.

Cette propriété est par défaut 32.
WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT
Valeur : 1
Structure WS_XML_WRITER_MTOM_ENCODING qui spécifie si l’enregistreur autorise plusieurs éléments et espaces non blancs au niveau supérieur du document. Cette propriété
peut ne pas être défini sur TRUE avec WS_XML_WRITER_MTOM_ENCODING.

Cette propriété a la valeur par défaut FALSE.
WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES
Valeur : 2
Un ULONG qui spécifie
le nombre maximal d’attributs que l’enregistreur autorise sur un élément.

Cette propriété est par défaut 128.
WS_XML_WRITER_PROPERTY_WRITE_DECLARATION
Valeur : 3
Un BOOL qui spécifie si l’enregistreur doit émettre une déclaration xml appropriée au début du document.

Cette propriété a la valeur par défaut FALSE.
WS_XML_WRITER_PROPERTY_INDENT
Valeur : 4
Un ULONG qui spécifie le nombre d’espaces de retrait à utiliser pour mettre en forme le xml. Si le retrait est égal à zéro, aucune mise en forme ne se produit.

Cette propriété a la valeur 0 par défaut.
WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE
Valeur : 5
Une ULONG qui spécifie l’une des options suivantes.

Si l’enregistreur utilise WS_XML_WRITER_BUFFER_OUTPUT, cette propriété est le nombre maximal d’octets
l’enregistreur conserve les appels à WsSetOutput à des fins de mise en mémoire tampon de sortie.

Si l’enregistreur utilise WS_XML_WRITER_STREAM_OUTPUT, cette propriété est le nombre maximal d’octets
l’enregistreur conserve les appels à WsSetOutput et WsFlushWriter pour
objectifs de la sortie de mise en mémoire tampon.

Cette propriété n’a aucun effet lorsqu’elle est spécifiée avec WsSetOutputToBuffer.

Cette propriété est par défaut 4096.
WS_XML_WRITER_PROPERTY_CHARSET
Valeur : 6
Valeur WS_CHARSET qui
retourne le jeu de caractères que l’enregistreur utilise pour encoder le document. Cette valeur est disponible uniquement pour
documents texte.
WS_XML_WRITER_PROPERTY_BUFFERS
Valeur : 7
Structure de WS_BUFFERS
qui retourne un ensemble de mémoires tampons contenant les octets xml générés.

Si l’enregistreur utilise WS_XML_WRITER_BUFFER_OUTPUT, tous les octets générés sont retournés et
les mémoires tampons sont valides jusqu’à ce que WsSetOutput ou WsFreeWriter soit appelée.

Si l’enregistreur utilise WS_XML_WRITER_MTOM_ENCODING, il ne doit pas y avoir d’éléments ouverts.
Les parties MIME de prise en charge seront générées et incluses dans les mémoires tampons retournées. Une fois cela
se produit, toute API qui tente d’écrire plus loin dans le document xml retourne WS_E_INVALID_OPERATION.
(Consultez valeurs de retour des services web Windows.)

Cette propriété n’est pas disponible lors de l’utilisation de WS_XML_WRITER_STREAM_OUTPUT.

Cette propriété n’est pas disponible sur un enregistreur défini sur un WS_XML_BUFFER.

Cela peut être moins pratique mais plus efficace que l’utilisation de WS_XML_WRITER_PROPERTY_BYTES, car le
writer n’a pas besoin de concaténer les mémoires tampons qui composent le document en une seule mémoire tampon.
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE
Valeur : 8
Un ULONG
spécifie le nombre maximal d’octets que l’enregistreur met en mémoire tampon.

Si l’enregistreur utilise WS_XML_WRITER_BUFFER_OUTPUT, il s’agit du nombre maximal de
Octets qui seront mis en mémoire tampon pour l’ensemble du document. Les appels à WsFlushWriter n’ont aucun effet.

Si l’enregistreur utilise WS_XML_WRITER_STREAM_OUTPUT, il s’agit de la quantité maxmimum de
données qui seront mises en mémoire tampon entre appels WsFlushWriter.

Cette propriété n’a aucun effet lorsqu’elle est spécifiée avec WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES
Valeur : 9
Structure de WS_BUFFERS
qui retourne une mémoire tampon unique contenant les octets xml générés.

Si l’enregistreur utilise WS_XML_WRITER_BUFFER_OUTPUT, tous les octets générés sont retournés et
la mémoire tampon est valide jusqu’à ce que WsSetOutput ou WsFreeWriter soit appelée.

Si l’enregistreur utilise WS_XML_WRITER_MTOM_ENCODING, il ne doit pas y avoir d’éléments ouverts.
Les parties MIME de prise en charge seront générées et incluses dans les mémoires tampons retournées. Une fois cela
se produit, toute API qui tente d’écrire plus loin dans le document xml retourne WS_E_INVALID_OPERATION.

Cette propriété n’est pas disponible lors de l’utilisation de WS_XML_WRITER_STREAM_OUTPUT.

Cette propriété n’est pas disponible sur un enregistreur défini sur un WS_XML_BUFFER.

Cela peut être plus pratique mais moins efficace que d’utiliser WS_XML_WRITER_PROPERTY_BUFFERS parce que
l’enregistreur peut avoir besoin de concaténer les mémoires tampons qui composent le document en une seule mémoire tampon.
WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE
Valeur : 10
Un BOOL
indique que WsWriteStartAttribute a été appelée et que l’enregistreur est
positionné sur le contenu d’attribut.
WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE
Valeur : 11
Une ULONG utilisée avec WS_XML_WRITER_MTOM_ENCODING. Cela spécifie la quantité maximale de données qui
sera mis en mémoire tampon à des fins d’écriture des parties MIME. WsWriteBytes et
WsPullBytes devez mettre en mémoire tampon les données afin d’émettre les données en tant que partie MIME distincte qui
suit le document, et cela peut être utilisé pour limiter la quantité de mémoires tampons.

Cette propriété est par défaut 65536.
WS_XML_WRITER_PROPERTY_INITIAL_BUFFER
Valeur : 12
Structure WS_BYTES qui contient une mémoire tampon que l’enregistreur peut utiliser pour encoder le document xml. C’est
utile lorsqu’une limite supérieure sur la taille des données xml générées est connue ou que l’appelant souhaite posséder
mémoire tampon dans laquelle les octets sont placés.

Si la taille spécifiée est supérieure ou égale à WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE, la
l’enregistreur n’alloue pas à partir de ses mémoires tampons internes.

Cette mémoire tampon peut apparaître comme l’une des mémoires tampons retournées par la propriété WS_XML_WRITER_PROPERTY_BUFFERS ou WS_XML_WRITER_PROPERTY_BYTES.

L’appelant doit s’assurer que la mémoire tampon spécifiée est valide pour la durée de vie de l’enregistreur.
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES
Valeur : 13
Un BOOL utilisé avec WS_XML_WRITER_TEXT_ENCODING. Définir cette valeur sur TRUE autorise les références de caractères
des caractères considérés comme non valides par XML 1.0 à accepter.

La définition de cette propriété sur VRAI peut affecter l’interopérabilité.

Cette propriété a la valeur par défaut FALSE.
WS_XML_WRITER_PROPERTY_MAX_NAMESPACES
Valeur : 14
Une ULONG qui spécifie le nombre maximal de déclarations uniques xmlns qui peuvent apparaître dans l’étendue à tout moment
lors de l’écriture du document.

Cette propriété est par défaut 32.
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN
Valeur : 15
Une ULONG qui spécifie l’une des options suivantes.

Si l’enregistreur utilise WS_XML_WRITER_BUFFER_OUTPUT, cette propriété
retourne le nombre d’octets qui ont été écrits dans l’enregistreur.

Si l’enregistreur utilise WS_XML_WRITER_STREAM_OUTPUT, cette propriété
retourne le nombre d’octets qui ont été écrits dans l’enregistreur depuis le dernier appel à
WsFlushWriter.

Si l’enregistreur écrit actuellement une balise de début d’élément, la taille de la balise de début n’est pas incluse dans
valeur retournée.

Cette propriété n’est pas disponible sur un enregistreur défini à l’aide de WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE
Valeur : 16
Un ULONG qui retourne le nombre maximal d’octets nécessaires pour fermer les éléments ouverts.

Une application peut utiliser WS_XML_WRITER_PROPERTY_BYTES_WRITTEN et
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE pour estimer la quantité d’éléments supplémentaires
les données peuvent être écrites dans le document. Dans ce cas, l’application doit prendre en compte
encodage du document en cours d’écriture.

Cette propriété n’est pas disponible sur un enregistreur défini à l’aide de WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS
Valeur : 17
Un BOOL qui contrôle la façon dont WsCopyNode copie des éléments sans contenu.

Lorsque cette propriété est définie sur FALSE, WsCopyNode conserve si chaque élément est représenté
en tant que paire d’étiquettes de début/fin, ou en tant qu’élément vide. Lorsque cette propriété est définie sur TRUE, WsCopyNode
convertissez des éléments sans contenu en éléments vides.

L’encodage binaire ne prend pas en charge les éléments vides. Lors de l’utilisation de WsCopyNode avec
un enregistreur utilisant l’encodage binaire de cette propriété n’a aucun effet d’une façon ou d’une autre. Tous les éléments vides sont
converti en éléments sans contenu.

Par défaut, cette propriété est FALSE.

Pour une chaîne XML d’entrée telle que :









Si cette propriété est FALSE, WsCopyNode génère le xml suivant :









Si cette propriété est TRUE, WsCopyNode génère le xml suivant :







WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS
Valeur : 18
Windows 8 ou version ultérieure : BOOL qui contrôle la façon dont les éléments vides sont émis.

Si la valeur est FALSE, un élément créé uniquement par des appels à WsWriteStartElement et WsWriteEndElement sera émis comme suit :





Si la valeur est TRUE, cet élément est émis comme suit :

xml



La valeur par défaut est FALSE

Exigences

Exigence Valeur
client minimum pris en charge Windows 7 [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
d’en-tête webservices.h