4D v16.3

Présentation des commandes XML DOM

Accueil

 
4D v16.3
Présentation des commandes XML DOM

Présentation des commandes XML DOM  


 

 

4D inclut un ensemble de commandes permettant d'écrire et d’analyser des objets contenant des données XML (eXtensible Markup Language).

Note à propos du mode préemptif : Les références XML créées par un process préemptif peuvent être utilisées dans ce process uniquement. A l'inverse, les références XML créées par des process coopératifs peuvent être utilisées par tout autre process coopératif, mais ne peuvent pas être utilisées par un process préemptif.

Le langage XML est une norme d’échange de données. Il est basé sur l’emploi de balises permettant de décrire de manière précise les données échangées ainsi que leur structure. Les fichiers XML sont des fichiers au format Texte, leur contenu est analysé (parsing) par les applications qui importent les données. Aujourd’hui, de nombreuses applications prennent en charge ce format.
Pour plus d’informations sur le XML, reportez-vous, par exemple, au site http://xmlfr.org.

Pour la prise en charge du XML, 4D utilise une librairie nommée Xerces.dll développée par la société Apache Foundation. 4D prend en charge XML version 1.0.

Note : 4D permet également d’importer et d’exporter directement des données au format XML à l’aide de l’éditeur d’import/export standard.

Les commandes de ce thème sont préfixées DOM. En effet, 4D propose deux ensembles distincts de commandes XML: les commandes DOM (Document Object Model) et SAX (Simple API XML), qui constituent deux modes d’analyse différents des documents XML.

  • Le mode DOM effectue l’analyse d’une source XML et construit sa structure (son “arbre”) en mémoire. De ce fait, l’accès à chaque élément de la source est extrêmement rapide. Cependant, la totalité de l’arbre étant contenu dans la mémoire, le traitement de gros documents XML peut dépasser la capacité de la mémoire et provoquer des erreurs.
  • Le mode SAX ne construit pas d’arbre en mémoire. Dans ce mode, des “événements” (tels que le début et la fin d’un élément) sont générés lors de l’analyse de la source. Ce mode autorise l’analyse de documents XML de toute taille, quelle que soit la quantité de mémoire disponible. Les commandes SAX sont regroupées dans le thème "XML SAX". Pour plus d'informations, reportez-vous à la section Présentation des commandes XML SAX.
Pour plus d’informations sur les standards XML, vous pouvez consulter les sites http://www.saxproject.org/?selected=event et http://www.w3schools.com/xml/.

Les objets créés, modifiés ou analysés par les commandes DOM de 4D peuvent être des textes, des URLs, des documents ou des BLOBs. Les commandes DOM utilisées pour l'ouverture des objets XML dans 4D sont DOM Parse XML source et DOM Parse XML variable.
De nombreuses commandes permettent ensuite de lire, d'analyser et d'écrire les éléments et les attributs. La récupération des erreurs s'effectue via la commande DOM Parse XML variable (commune aux deux standards XML).
La commande XML GET ERROR permet de finalement refermer la source.

Note sur l'usage de paramètres BLOBs XML : Les structures XML sont basées sur des données de type texte, il est recommandé de les manipuler via des variables ou des champs de type Texte. Pour des raisons historiques, les commandes XML de 4D (par exemple DOM Parse XML variable) acceptent des paramètres de type BLOBs. En effet, dans les versions précédentes de 4D, la taille des variables de type Texte était limitée à 32 Ko. Depuis la version 11 de 4D, les variables et champs texte peuvent contenir jusqu’à 2 Go de données. La limitation d'origine étant supprimée, il est désormais fortement déconseillé de stocker des textes dans des BLOBs. L’usage de BLOBs est à réserver au traitement de données binaires. Par conformité aux spécifications du XML, à compter de 4D v12 les données binaires sont automatiquement encodées en Base64, même si le BLOB contient du texte.

Trois commandes XML DOM (DOM Create XML element, DOM Find XML element et DOM SET XML ELEMENT VALUE) acceptent la notation XPath pour l’accès aux éléments XML.
La notation XPath est issue du langage XPath, consacré à la navigation à l'intérieur des structures XML. Elle permet de désigner directement des éléments au sein d’une structure XML via une syntaxe du type "chemin d'accès", sans devoir nécessairement indiquer le chemin complet pour y parvenir. Soit par exemple la structure suivante :

    <RootElement>
      <Elem1>
         <Elem2>
            <Elem3 Font=Verdana Size=10> </Elem3>
         </Elem2>
      </Elem1>
   </RootElement>

La notation XPath permet d’accéder à l’élément 3 via la syntaxe /RootElement/Elem1/Elem2/Elem3.

4D accepte également les éléments XPath indexés, avec la syntaxe Elément[NumElément]. Soit par exemple la structure suivante :

   <RootElement>
      <Elem1>
         <Elem2>aaa</Elem2>
         <Elem2>bbb</Elem2>
         <Elem2>ccc</Elem2>
      </Elem1>
   </RootElement>

La notation XPath permet d’accéder à la valeur “ccc” via la syntaxe /RootElement/Elem1/Elem2[3].

Pour une illustration de la notation XPath, reportez-vous aux exemples des commandes DOM Create XML element et DOM Find XML element.

Les jeux de caractères suivants sont pris en charge par les commandes XML DOM et XML SAX de 4D :

  • ASCII
  • UTF-8
  • UTF-16 (Big/Small Endian)
  • UCS4 (Big/Small Endian)
  • EBCDIC code pages IBM037, IBM1047 and IBM1140 encodings,
  • ISO-8859-1 (ou Latin1)
  • Windows-1252.

Le langage XML utilise de nombreux termes et acronymes spécifiques. Cette liste non exhaustive explicite les principales notions XML utilisées par les commandes et fonctions de 4D.

Attribut : Sous-balise XML associée à un élément. Un attribut comporte toujours un nom et une valeur (cf. schéma ci-dessous).

Bien formé : Un document XML est déclaré “bien formé” par l’analyseur XML lorsqu’il est conforme aux spécifications XML génériques. Voir aussi Validation.

DTD : Document Type Declaration (Déclaration de type de document). La DTD recense l’ensemble des règles et des propriétés spécifiques que doit suivre un document XML. Ces règles définissent notamment le nom et le contenu de chaque balise ainsi que leur contexte. Cette formalisation des éléments permet de vérifier qu’un document XML est conforme (dans ce cas il est déclaré “valide”).
La DTD peut être incluse dans le document XML (DTD interne) ou dans un document tiers (DTD externe). A noter que la DTD n’est pas obligatoire.

Elément : Balise XML. Un élément comporte toujours un nom et une valeur. Facultativement, un élément peut contenir des attributs (cf. schéma).

Enfant : Dans une structure XML, élément d’un niveau directement inférieur à un autre.

Frère : Dans une structure XML, élément du même niveau qu'un autre.

Parent : Dans une structure XML, élément d’un niveau directement supérieur à un autre.

Parsing, parser (Analyser, analyseur) : Action d’analyser le contenu d’un objet structuré afin d’en extraire les informations utiles. Les commandes du thème “XML” permettent d’analyser le contenu de tout objet XML.

Racine (Root) : Elément situé au premier niveau d’une structure XML.

RefElément : Référence XML utilisée par les commandes XML de 4D pour désigner une structure XML (documents ou élément). Cette référence est constituée de 8 caractères codés sous forme hexadécimale, ce qui signifie que sa longueur est de 16 ou 32 caractères selon que vous utilisez un système 32 ou 64 bits. Il est conseillé de déclarer les références XML à l'aide de la directive C_TEXT.

Structure XML : objet XML structuré. Cet objet peut être un document, une variable, un élément.

Validation : Un document XML est “validé” par l’analyseur XML lorsqu’il est “bien formé” et conforme aux spécifications de la DTD. Voir aussi Bien formé.

XML : eXtensible Markup Language (Langage balisé évolutif). Norme d’échange de données informatisées permettant de transférer des données ainsi que leur structure. Le langage XML est basé sur l’emploi de balises et d’une syntaxe spécifiques, à l’instar du langage HTML. Toutefois, à la différence de ce dernier, le langage XML permet de définir des balises personnalisées.

XSL : eXtensible Stylesheet Language (Langage des feuilles de style évolutif). Langage permettant de définir des feuilles de style utilisables pour traiter et afficher le contenu d’un document XSL.

De nombreuses fonctions de ce thème retournent une référence d'élément XML. Si une erreur se produit durant l'exécution d'une fonction (par exemple si la référence de l’élément racine est invalide), la variable OK prend la valeur 0 et une erreur est générée.

De plus, la référence retournée dans ce cas est une suite de caractères "0" (16 caractères en 32 bits, ou 32 caractères en 64 bits).



Voir aussi  

BASE64 DECODE
BASE64 ENCODE

 
PROPRIÉTÉS 

Produit : 4D
Thème : XML DOM

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)