XML SET OPTIONS
XML SET OPTIONS ( refElément | document ; sélecteur ; valeur {; sélecteur2 ; valeur2 ; ... ; sélecteurN ; valeurN} )
Paramètre | Type | Description | |
---|---|---|---|
refElément | document | Texte | → | Référence d’élément XML racine ou Référence de document ouvert |
sélecteur | Integer | → | Option à définir |
valeur | Integer | → | Valeur de l'option |
Description
La commande XML SET OPTIONS permet de modifier la valeur d’une ou plusieurs option(s) XML pour la structure passée dans le premier paramètre.
Cette commande s’applique aux structures XML de type "arbre" (DOM) ou "document" (SAX). Vous pouvez passer en premier paramètre soit une référence d'élément racine (refElément), soit une référence de document SAX ouvert (document).
Passez dans sélecteur l’option à modifier et dans valeur la nouvelle valeur de l’option. Vous pouvez passer autant de couples sélecteur/valeur que vous souhaitez. Vous devez utiliser les constantes listées ci-dessous, placées dans le thème XML.
- Les options suivantes sont utilisées uniquement dans le sens 4D vers XML (elles n'ont pas d’effet sur la lecture de valeurs XML dans 4D) par ces commandes :
- DOM SET XML ATTRIBUTE
- DOM SET XML ELEMENT VALUE
- SAX ADD XML ELEMENT VALUE
| Constante | Type | Valeur | Comment |
| -------------------- | ----------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| XML binary encoding | Entier long | 5 | Définit la manière dont les données binaires seront converties.
Valeurs possibles :
XML Base64 (valeur par défaut) : les données binaires sont simplement converties en base64.XML data URI scheme : les données binaires sont converties en base64 et l’en-tête "data:;base64" est ajouté. Ce format permet principalement à un navigateur de décoder automatiquement une image, et est également requis pour l’insertion d’images . Pour plus d’informations, voir http://en.wikipedia.org/wiki/Data%5FURI%5Fscheme. |
| XML date encoding | Entier long | 2 | Définit la manière dont les dates 4D seront converties. Par exemple, le !01/01/2003! dans le fuseau horaire de Paris.
Valeurs possibles :
XML ISO (valeur par défaut) : utilisation du format xs:datetime sans indication de fuseau horaire. Résultat : "2003-01-01". La partie heure, si elle est présente dans la valeur 4D (via le SQL), est perdue. XML local : utilisation du format xs:date avec indication de fuseau horaire. Résultat : "2003-01-01 +01:00". La partie heure, si elle est présente dans la valeur 4D (via le SQL), est perdue. XML datetime local : utilisation du format xs:dateTime (ISO 8601). Indication de fuseau horaire. Ce format permet de conserver la partie heure, si elle est présente dans la valeur 4D (via le SQL). Résultat : "2003-01-01T00:00:00 +01:00 ". XML UTC : utilisation du format xs:date. Résultat : "2003-01-01Z". La partie heure, si elle est présente dans la valeur 4D (via le SQL), est perdue. XML datetime UTC : utilisation du format xs:dateTime (ISO 8601). Ce format permet de conserver la partie heure, si elle est présente dans la valeur 4D (via le SQL). Résultat : "2003-01-01T00:00:00Z ". |
| XML indentation | Entier long | 4 | Définit l’indentation du document XML.
Valeurs possibles :
XML with indentation (valeur par défaut) : le document est indenté.XML no indentation : le document n’est pas indenté, son contenu est placé sur une seule ligne. |
| XML picture encoding | Entier long | 6 | Définit la manière dont les images doivent converties (avant l’encodage en base64).
Valeurs possibles :
XML convert to PNG (valeur par défaut) : les images sont converties en PNG avant d’être encodées en base64.XML native codec : les images sont converties dans leur premier CODEC natif de stockage avant d’être encodées en base64. Vous devez utiliser ces options pour encoder des images SVG (voir exemple de la commande XML SET OPTIONS). |
| XML string encoding | Entier long | 1 | Définit la manière dont les chaînes 4D sont converties en valeurs d’éléments. Il ne concerne pas les conversions en attributs pour lesquelles le XML impose l’utilisation de caractères d’échappement.
Valeurs possibles :
XML with escaping (valeur par défaut) : conversion des chaînes 4D en valeurs d’éléments XML avec remplacement des caractères. Les données de type texte sont automatiquement analysées de manière à ce que les caractères interdits (<&>’) soient remplacés par des entités XML (&<> '").XML raw data : les chaînes 4D sont envoyées en tant que données brutes, 4D n’effectue ni encodage ni analyse. Les valeurs 4D seront converties si possible en fragments XML et insérées en tant qu’enfant de l’élément cible. Si une valeur ne peut pas être considérée comme fragment XML, elle est insérée sous forme de donnée brute dans un nouveau noeud CDATA |
| XML time encoding | Entier long | 3 | Définit la manière dont les heures 4D seront converties. Par exemple, ?02/00/46? (heure de Paris). L’encodage diffère suivant que vous souhaitez exprimer une heure ou une durée.
Valeurs possibles pour les heures :
XML datetime UTC : heure exprimée en UTC (Temps Universel Coordonné). A noter que la conversion en UTC est automatique. Résultat : "0000-00-00T01:00:46Z ". XML datetime local : heure exprimée avec le décalage horaire de la machine du moteur de 4D. Résultat : "0000-00-00T02:00:46+01:00 ". XML datetime local absolute (valeur par défaut) : heure exprimée sans indication de fuseau horaire. Pas de modification de la valeur. Résultat : "0000-00-00T02:00:46 ". Valeurs possibles pour les durées :
XML seconds : nombre de secondes depuis minuit, pas de modification de la valeur puisqu’elle exprime une durée. Résultat : "7246 ". XML duration : durée exprimée de manière conforme au XML Schema Part 2: Datatypes Second Edition. Pas de modification de la valeur puisqu’elle exprime une durée. Résultat : "PT02H00M46S ". |
Notes : - Les valeurs XML local et XML datetime local ne fournissent pas de dates exprimées en UTC (Temps Universel Coordonné), elles sont converties sans modification mais indiquent le décalage horaire. Ces formats sont utiles dans le cas de conversions successives et réciproques (round tripping).
- Les valeurs XML UTC et XML datetime UTC sont équivalentes aux précédentes du point de vue du formatage, mais sont exprimées en UTC. Ces formats sont à privilégier pour assurer l’interopérabilité. Les valeurs ne sont pas modifiées.
- Les options suivantes vous permettent de modifier certains fonctionnements par défaut de l'analyseur XML :
| Constante | Type | Valeur | Comment |
| ------------------------------ | ----------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| XML BOM | Entier long | 9 | Indique si les documents XML incluent les BOM. Valeurs p ossibles : XML valeur par défaut (par défaut) : utilise les paramètres de la base. Par défaut, BOM n'est pas inclus - sauf dans les bases/projets créés avec des versions de 4D jusqu'à la v19.x, où BOM est inclus. Voir aussi les paramètres de Compatibilité. XML activé : inclure BOM XML désactivé : ne pas inclure de BOM |
| XML DOM case sensitivity | Entier long | 8 | Spécifie la prise en compte de la casse des caractères pour les noms d'éléments par les commandes DOM Get XML element et DOM Count XML elements.
Valeurs possibles :
XML case sensitive (valeur par défaut) : les commandes tiennent compte de la casse.XML case insensitive : les commandes ne tiennent pas compte de la casse. |
| XML external entity resolution | Entier long | 7 | Permet de contrôler la résolution des entités externes dans les documents XML. Par défaut pour des raisons de sécurité, les parsers XML DOM et SAX de 4D n'autorisent pas la résolution d'entité externes. Notez que la portée de ce sélecteur est le process appelant (s'il est préemptif) ou tous les process coopératifs (s'il est appelé depuis un process coopératif). Il s'applique globalement à tous les documents XML (le premier paramètre est ignoré, vous pouvez passer une chaîne vide).
Valeurs possibles :
XML enabled : la résolution d'entités externes est autorisée dans les documents XMLXML disabled (valeur par défaut) : la résolution d'entités externes est interdite dans les documents XML (la déclaration d'une entité externe génère une erreur d'analyse) |
| XML line ending | Entier long | 10 | Caractères de fin de ligne dans les documents XML.
Valeurs p ossibles : XML valeur par défaut (par défaut) : utiliser les paramètres de la base. La valeur par défaut est LF sous macOS et CRLF sous Windows. Toutefois, sous macOS, dans les bases/projets créés avec des versions de 4D jusqu'à la v19.x, la valeur par défaut est CR pour DOM et CRLF pour SAX. Voir aussi les paramètres de Compatibilité. XML LF : Utilise LF (line feed) XML CR : Utilise CR (carriage return) XML CRLF : Utilise CR+LF |
Exemple
Insertion d’une image SVG :
XML SET OPTIONS($refImageElem;XML binary encoding;XML data URI scheme)
XML SET OPTIONS($refImageElem;XML picture encoding;XML native codec)
DOM SET XML ATTRIBUTE($refImageElem;"xlink:href";VarImage)
Voir aussi
DOM SET XML ATTRIBUTE
DOM SET XML DECLARATION
DOM SET XML ELEMENT VALUE
SAX ADD XML ELEMENT VALUE
XML GET OPTIONS