Descriptions des dictionnaires XML de l'état des exemples techniques. Constructions XML de base - éléments XML, balises, attributs, instructions de traitement, sections CDATA, commentaires. Noms et détails

Description de la structure des documents XML.

Chaque document XML contient des informations sur les données et leur structure (description des métadonnées).

Les documents XML peuvent être de deux types :

1. documents créés en tenant compte des règles logiques et structurelles ;

2. les documents qui n'utilisent aucune règle autre que les règles syntaxiques pour le formatage des documents XML.

La conformité des documents du premier type aux règles spécifiées est vérifiée par un processeur XML. Le deuxième type de document est vérifié par le développeur.

Lors de la création d'un document du premier type, une description de sa structure peut être effectuée à l'aide de langages tels que Document Type Definitions (DTD), XML Schema, RELAX NG, XML Data-Reduced, etc. Les langages les plus utilisés sont les schémas DTD et XML.

Ensuite, les points forts et faiblesses les langages les plus courants pour décrire la structure et est donné résumé leurs fondations. Depuis ce manuel de formation dédié aux problèmes d'intégration systèmes d'informations, lors de l'examen des langages de description de structure, l'attention principale sera portée aux questions de modularité et réutilisation schémas

Langage de définition de schéma XML (XSD).

Le langage XSD (XML Schema Definition) est basé sur XML et possède plus de larges possibilités des descriptions de la structure du document plutôt que des DTD. Il prend en charge le typage de données, les espaces de noms et les expressions régulières.

Le schéma XML contient une description des éléments et des attributs d'un document XML, des règles d'héritage des éléments, y compris l'ordre et le nombre d'enfants, le type de contenu des éléments, les types de données des éléments et des attributs, les valeurs des éléments et des attributs, et des restrictions supplémentaires sur les valeurs. En plus, en utilisant XML Le schéma permet la transformation d'un document XML en une hiérarchie d'objets certains types, accessible par programmation via l'interface (fonctionnalité PSV1).

Le principal avantage de XML Schema est sa prise en charge des données fortement typées. Lors de l'échange de données entre différentes applications et bases de données, la tâche de mise en correspondance des types de données reste toujours pertinente, car dans différents systèmes Les définitions des types de données peuvent varier. Ces différences incluent : les valeurs maximales et minimales possibles, plus grande longueur, soutien nombres fractionnaires, encodage interne et format externe (par exemple, pour la date et l'heure). Ainsi, malgré la possible coïncidence des noms des types de données, leur implémentation dans divers produits peut varier. L'utilisation de types de données dans les schémas permet la vérification nécessaire des données du document lors de l'échange ou partage données provenant de plusieurs systèmes.

Cet avantage n'est pas instructions détaillées selon le langage XML Schema, nous nous limiterons donc ici uniquement à informations de base sur le langage XSD, nécessaires à la compréhension du matériel suivant.

Le schéma XML est toujours créé dans fichier séparé, qui porte l'extension xsd. Le fichier XML est associé au schéma correspondant à l'aide de l'attribut schemaLocation de l'espace de noms du schéma. Pour utiliser l'attribut schemaLocation, vous devez définir un espace de noms de schéma. Toutes ces définitions sont spécifiées dans l'élément racine du document XML.

Examinons les principaux éléments de la structure du schéma XML.

L'élément racine est toujours l'élément . Description des attributs des éléments est donné dans le tableau. 2.10.

Élément racine peut contenir les éléments suivants éléments enfants:

1. - utilisé pour définir les éléments d'un document XML ;

2. - utilisé pour définir les attributs d'un document XML ;

3. - nécessaire de définir un groupe d'éléments destinés à être réutilisés au sein du schéma par référence au nom du groupe ;

4. - utilisé pour définir les attributs d'un groupe d'éléments ;

5. - vous permet d'inclure de la documentation dans un document XML ;

6. - permet l'utilisation de composants du circuit externe spécifié dans le circuit principal (assure la modularité du circuit) ;

7. - ajoute tous les composants du circuit externe spécifié au circuit principal (assure la modularité du circuit) ;

8. - contient une définition de la notation qui décrit le format des données non XML dans un document XML ;

9. - remplace les composants d'un schéma externe qui a le même espace de noms que le schéma principal ;

10. - déclare le type de contenu simple de l'élément. Les éléments avec un type de données simple ne peuvent contenir que des données de caractère et ne peuvent pas inclure d'attributs ou d'éléments enfants ;

11. - déclare un type de contenu d'élément complexe, qui peut inclure des attributs et d'autres éléments.

XML Schema prend en charge trois catégories principales de types de données :

1. types primitifs prédéfinis - types de données fondamentaux qui peuvent être référencés et appliqués aux éléments et aux attributs. Des exemples de types de données primitifs sont String, Float, Double, Time, Date, Decimal, AnyURI ;

2. types dérivés prédéfinis - types intégrés dérivés de types primitifs. Des exemples de types de données dérivés sont Integer, Long, Byte, Short, nonPositiveInteger, nonNegativeInteger, ID, etc. ;

3. types non standard- les types de données définis par l'utilisateur qui sont créés à partir de types primitifs ou dérivés en introduisant des restrictions supplémentaires. La prise en charge des types de données non standard est extrêmement utile pour la vérification des données en tenant compte de la logique métier.

Pour décrire les éléments et les attributs qui ont des types de données prédéfinis (primitifs et dérivés), XML Schema utilise les constructions syntaxiques suivantes.

De plus, pour les éléments et les attributs, vous pouvez spécifier des attributs fixes ou par défaut pour spécifier des valeurs fixes d'éléments/attributs ou des valeurs par défaut.

Si vous devez décrire un type de données non standard pour un élément ou un attribut, cela doit être fait à l'aide de la balise , décrivant un nouveau type de données.

De nouveaux types de données simples non standard sont obtenus par :

1. rétrécissement (restriction) d'un type simple intégré ou préalablement défini en spécifiant des restrictions supplémentaires ;

2. union de types simples ;

3. en utilisant une liste de types simples.

Un exemple d'utilisation d'un nouveau type de données simple obtenu en rétrécissant un type prédéfini (le type de base String est soumis à des restrictions sur la longueur de chaîne maximale et minimale autorisée) :

Un exemple d'utilisation d'un nouveau type de données simple obtenu en combinant des types de base (un élément ou un attribut peut prendre des valeurs entières non négatives ou non positives) :

Un exemple d'utilisation d'une liste de types simples (l'attribut shoeSizes est déclaré comme une liste contenant les valeurs décimales 10,5, 9, 8 et 11) :

Le langage XML Schema utilise différents types de restrictions de données (voir Tableau 2.8) :

1. restrictions de longueur (nombre de caractères) ;

2. limites de valeurs (les valeurs les plus grandes et les plus petites sous forme de plage ou de seuil) ;

3. restrictions sur le nombre de chiffres d'un nombre décimal (nombre total de chiffres ou nombre de chiffres après la virgule) ;

4. liste des valeurs acceptables ;

5. modèles ;

6. Traitement des caractères d'espace.

Des exemples d'utilisation de diverses restrictions sont donnés dans le tableau. 2.11.

Les éléments qui ont un type simple ou des types standard prédéfinis ne peuvent contenir que des données (ne peuvent pas contenir d'attributs ou d'éléments enfants).

Tout type de données simple peut contenir un ensemble arbitraire de restrictions, déterminées par la logique métier de l'application travaillant avec les données.

Si un type de données simple reçoit un nom, une référence à un nouveau type de données non standard peut être utilisée à plusieurs reprises dans un schéma donné (similaire à une référence à des types de données prédéfinis).

Dans cet exemple, un type de données non standard portant le nom « Code » est défini, basé sur le type « string » : il est utilisé comme type de données pour les éléments « Code1 » et « Code2 ».

Pour décrire les éléments d'un document XML contenant des éléments et des attributs enfants, le schéma utilise un type de données complexe spécifié à l'aide de la balise .

Lors de la description d'un type complexe, l'ordre d'apparition des éléments enfants est indiqué (à l'aide de balises spéciales - indicateurs d'ordre, voir Tableau 2.11), ainsi que le degré de cardinalité des éléments répétitifs (à l'aide des attributs minOccurs et maxOccurs).

Attribut minOccurs définit le degré minimum de cardinalité, c'est-à-dire le plus petit nombre possible de répétitions d'un élément enfant. Une valeur minOccurs de zéro indique que l’élément est facultatif.

Attribut maxOccurs définit le degré maximum de cardinalité, ou le plus grand nombre de répétitions d'un élément. Les degrés de cardinalité maximum et minimum sont spécifiés par certaines valeurs. maxOccurs peut être défini sur illimité (l'élément apparaît un nombre illimité de fois).

Cet exemple décrit un type de données complexe pour l'élément « Livre », qui contient les éléments enfants « Titre », « Auteur », « Code », « Prix ». Étiqueter est un indicateur de l'ordre d'apparition des éléments enfants (Tableau 2.12), et l'attribut maxOccurs montre le nombre maximum autorisé de répétitions de l'élément « Auteur ».

L'indicateur d'ordre de choix indique qu'un élément de ce type Prix peut contenir soit un élément Roubles, soit un élément Dollars, mais pas les deux.


Informations connexes.


Nous poursuivons à nouveau notre étude de XML et dans cet article, nous nous familiariserons avec des constructions XML telles que des instructions de traitement, des commentaires, des attributs et d'autres éléments XML. Ces éléments sont basiques et vous permettent de baliser de manière flexible, dans le strict respect de la norme, des documents de toute complexité.

Nous avons déjà partiellement abordé certains points, comme les balises XML, dans l'article précédent « ». Nous allons maintenant aborder à nouveau ce sujet et l'examiner plus en détail. Ceci est fait spécifiquement pour vous permettre d'obtenir plus facilement une image complète des constructions XML.

Éléments XML. Éléments XML vides et non vides

Comme mentionné dans l'article précédent, les balises XML ne se contentent pas de baliser le texte, comme c'est le cas en HTML, mais mettent en évidence des éléments individuels (objets). À leur tour, les éléments organisent hiérarchiquement les informations dans un document, ce qui en fait les principales unités structurelles du langage XML.

En XML, les éléments peuvent être de deux types : vides et non vides. Les éléments vides ne contiennent aucune donnée, telle que du texte ou d'autres constructions. Contrairement aux éléments vides, les éléments non vides peuvent contenir n'importe quelle donnée, telle que du texte ou d'autres éléments et constructions XML. Pour comprendre l'intérêt de ce qui précède, regardons des exemples d'éléments XML vides et non vides.

Élément XML vide

Élément XML non vide

Contenu de l'élément...

Comme nous pouvons le voir dans l'exemple ci-dessus, la principale différence entre les éléments vides et les éléments non vides est qu'ils sont constitués d'une seule balise. En outre, il convient également de noter qu'en XML, tous les noms sont sensibles à la casse. Cela signifie que les noms myElement, MyElement, MYELEMENT, etc. diffèrent les uns des autres, ce moment doit donc être rappelé immédiatement afin d'éviter des erreurs à l'avenir.
Nous avons donc compris les éléments. Passons maintenant au point suivant, qui est l'organisation logique des documents XML.

Organisation logique des documents XML. Structure arborescente des données XML

Comme vous vous en souvenez, la construction principale du langage XML est constituée d'éléments qui peuvent contenir d'autres constructions imbriquées et former ainsi une structure hiérarchique sous la forme d'un arbre. Dans ce cas, l'élément parent sera la racine et tous les autres éléments enfants seront les branches et les feuilles de l'arborescence XML.

Pour faciliter la compréhension de ce qui précède, regardons l'image suivante avec un exemple.

Comme on peut le constater, organiser un document XML sous forme d’arborescence est une structure assez simple à traiter. Dans le même temps, la complexité expressive de l’arbre lui-même est assez grande. La représentation arborescente est la manière la plus optimale de décrire des objets en XML.

Attributs XML. Règles d'écriture des attributs en XML

En XML, les éléments peuvent également contenir des attributs auxquels sont attribuées des valeurs, qui sont placées entre guillemets simples ou doubles. L'attribut d'un élément est défini comme suit :

Dans ce cas, un attribut portant le nom « attribut » et la valeur « valeur » a été utilisé. Il convient de noter tout de suite que l'attribut XML doit contenir une certaine valeur et ne peut pas être vide. Sinon, le code sera incorrect d'un point de vue XML.

Il convient également de prêter attention à l’utilisation des guillemets. Les valeurs d'attribut peuvent être placées entre guillemets simples ou doubles. De plus, il est également possible d’utiliser certaines citations dans d’autres. Pour le démontrer, considérons les exemples suivants.

Avant d'examiner d'autres constructions XML, il convient également de noter que lors de la création d'attributs, les caractères spéciaux tels que l'esperluette "&" ou les crochets angulaires " ne peuvent pas être utilisés comme valeurs.<>" Ces caractères sont réservés comme caractères de contrôle (« & » est une entité, et «<» и «>» ouvrir et fermer la balise element) et ne peut pas être utilisé sous sa « forme pure ». Pour les utiliser, vous devez recourir au remplacement de caractères spéciaux.

Instructions de traitement XML (instructions de traitement). Déclaration XML

XML a la capacité d'inclure des instructions dans un document contenant des informations spécifiques pour les applications qui traiteront un document particulier. Les instructions de traitement en XML sont créées comme suit.

Comme vous pouvez le voir dans l'exemple ci-dessus, en XML, les instructions de traitement sont placées entre guillemets avec un point d'interrogation. C'est un peu celui habituel que nous avons vu dans les premières leçons PHP. La première partie de l'instruction de traitement précise l'application ou le système auquel est destinée la deuxième partie de cette instruction ou son contenu. Toutefois, les instructions de traitement ne valent que pour les demandes auxquelles elles sont adressées. Un exemple d'instruction de traitement pourrait être l'instruction suivante.

Il convient de noter que XML a une construction spéciale qui est très similaire à une instruction de traitement, mais elle n’en est pas une. Nous parlons d'une déclaration XML qui transmet au logiciel de traitement certaines informations sur les propriétés du document XML, telles que l'encodage, la version de la langue dans laquelle le document est écrit, etc.

Comme vous pouvez le voir dans l'exemple ci-dessus, la déclaration XML contient ce qu'on appelle des pseudo-attributs, qui sont très similaires aux attributs réguliers dont nous avons parlé juste au-dessus. Le fait est que, par définition, une déclaration XML et des instructions de traitement ne peuvent pas contenir d'attributs, ces déclarations sont donc appelées pseudo-attributs. Il convient de s’en souvenir pour l’avenir afin d’éviter diverses erreurs.

Puisque nous avons traité des pseudo-attributs, regardons ce qu'ils signifient.

  • Encodage – est responsable de l’encodage du document XML. Le codage UTF8 est généralement utilisé.
  • Version – la version du langage XML dans lequel ce document est écrit. Il s'agit généralement de XML version 1.0.

Eh bien, passons maintenant à la dernière partie de l'article et considérons les constructions XML telles que les commentaires et les sections CDATA.

XML (Extensible Markup Language) est un nouveau langage de balisage de documents dérivé de SGML qui vous permet de structurer des informations de différents types à l'aide d'un ensemble arbitraire d'instructions. Les développeurs d'applications Internet essayant d'utiliser les nouvelles technologies dans la pratique peuvent être intéressés par des questions spécifiques liées aux problèmes de création, de traitement de documents XML et de leur affichage côté client. Cet article donne une brève idée de ce qu'est un document XML et pourquoi il est nécessaire, et illustre avec des exemples pratiques quelques mécanismes simples, mais jusqu'à présent, malheureusement peu décrits, pour son traitement.

Qu'est-ce que XML

Aujourd'hui, XML peut être utilisé dans toutes les applications nécessitant des informations structurées - depuis les systèmes d'informations géographiques complexes avec des volumes gigantesques d'informations transmises jusqu'aux programmes ordinaires « sur ordinateur unique » qui utilisent ce langage pour décrire les informations de service. En examinant de plus près le monde de l'information qui nous entoure, nous pouvons identifier de nombreuses tâches liées à la création et au traitement d'informations structurées, pour lesquelles XML peut être utilisé :

  • Tout d'abord, cette technologie peut être utile aux développeurs de systèmes d'information complexes, avec un grand nombre d'applications reliées par des flux d'informations de structures diverses. Dans ce cas, les documents XML servent de format universel pour échanger des informations entre les composants individuels d'un grand programme.
  • XML est la norme de base d'un nouveau langage de description de ressources, RDF, qui simplifie de nombreux problèmes sur le Web associés à la recherche de la bonne information, au contrôle du contenu des ressources du réseau, à la création de bibliothèques numériques, etc.
  • Le langage XML permet de décrire des données de tout type et est utilisé pour représenter des informations spécialisées, telles que des formules chimiques, mathématiques, physiques, des prescriptions médicales, des notations musicales, etc.
  • Cela signifie que XML peut constituer un complément puissant au HTML pour diffuser des informations « non standard » sur le Web. Peut-être que dans un avenir très proche, XML remplacera complètement HTML, du moins les premières tentatives d'intégration de ces deux langages sont déjà en cours (spécification).
  • Les documents XML peuvent être utilisés comme format de données intermédiaire dans les systèmes à trois niveaux. En règle générale, le modèle d'interaction entre les serveurs d'applications et de bases de données dépend du SGBD spécifique et du dialecte SQL utilisé pour accéder aux données. Si les résultats de la requête sont présentés dans un format de texte universel, alors le lien SGBD, en tant que tel, deviendra « transparent » pour l'application. De plus, le W3C a proposé aujourd'hui une spécification pour un nouveau langage de requête de base de données, XQL, qui pourrait à l'avenir devenir une alternative à SQL.
  • Les informations contenues dans les documents XML peuvent être modifiées, transmises à la machine client et mises à jour au coup par coup. Les spécifications XLink et Xpointer en cours de développement permettront de faire référence à des éléments individuels d'un document, en tenant compte de leurs valeurs d'imbrication et d'attribut.
  • L'utilisation de feuilles de style (XSL) vous permet de fournir un affichage de documents XML indépendant du périphérique de sortie.

XML peut être utilisé dans des applications courantes pour stocker et traiter des données structurées dans un format unique.

Un document XML est un fichier texte ordinaire dans lequel, à l'aide de marqueurs spéciaux, des éléments de données sont créés, dont la séquence et l'imbrication déterminent la structure du document et son contenu. Le principal avantage des documents XML est qu'avec une méthode de création et de traitement relativement simple (le texte brut peut être édité par n'importe quel processeur de test et traité par des analyseurs XML standard), ils vous permettent de créer des informations structurées qui sont bien « comprises » par les ordinateurs. .

Comment créer un document XML ?

Pour créer un document XML dans le cas le plus simple, vous n'aurez besoin de rien d'autre qu'un éditeur de texte classique (selon de nombreux concepteurs Web, le meilleur outil pour créer des pages Web). Voici un exemple de petit document XML utilisé à la place d'un bloc-notes classique : Réunion d'affaires importante Nous devons rencontrer après l'avoir appelé au téléphone 123-12-12 ... Appeler à la maison 124-13-13

Lors de la création de votre propre langage de balisage, vous pouvez proposer n'importe quel nom pour les éléments (presque n'importe lequel, puisque la liste des caractères valides est limitée et est donnée dans ), correspondant au contexte de leur utilisation. Notre exemple ne montre qu’une des nombreuses façons de créer une structure de journal. C'est la flexibilité et l'extensibilité des langages dérivés de XML - ils sont créés par le développeur « à la volée », selon ses idées sur la structure du document, et peuvent ensuite être utilisés par des visualiseurs universels avec tout autre XML. -langues dérivées, car toutes les informations nécessaires à l’analyse sont contenues dans le document.

Lors de la création d'un nouveau format, il faut tenir compte du fait qu'il ne peut en principe pas y avoir de documents « écrits en XML » - de toute façon, les auteurs du document pour son balisage utilisent un langage basé sur le standard XML (le langage dit dérivé du XML), mais pas le XML lui-même. Par conséquent, lors de l'enregistrement du fichier créé, vous pouvez sélectionner une extension adaptée au nom (par exemple, noteML).

XML peut être utilisé par vous pour créer des documents d'un type et d'une structure spécifiques nécessaires à une application spécifique. Cependant, si le champ d'application du langage s'avère suffisamment large et qu'il commence à intéresser un grand nombre de développeurs, alors sa spécification pourrait bien être soumise pour examen au W3C et, après accord de toutes les parties intéressées, approuvée par le consortium en tant que recommandation officielle.

Il convient de noter que le processus de création d’une nouvelle spécification est très long et complexe. Tout document proposé par le W3C passe par plusieurs étapes avant de devenir un standard. Dans un premier temps, les souhaits et recommandations émanant des différentes entreprises participant à son élaboration sont formalisés sous la forme d'une note de prise en compte, sorte de protocole d'intention. Les informations contenues dans ces documents sont destinées à être discutées uniquement par les membres du consortium et aucune garantie n'est donnée que ces commentaires deviendront par la suite des recommandations.

La prochaine étape de la promotion du document est une version de travail de la spécification, qui est compilée puis modifiée par un groupe de travail spécialement créé (groupe de travail), qui comprend des représentants des entreprises intéressées par l'idée. Toutes les modifications apportées à ce document sont nécessairement publiées sur le serveur du consortium www.w3.org et jusqu'à ce que la version de travail devienne une recommandation, elle ne peut servir que de « guide » pour les développeurs, avec lequel l'entreprise peut vérifier ses plans, mais ne doit pas être utilisé dans le développement de logiciels.

Si les parties s'accordent sur toutes les questions principales et que des modifications plus importantes sont apportées au document, la version de travail devient une proposition de recommandation et, après vote des membres du groupe de travail, peut devenir une recommandation officielle du W3C, dont le statut correspond à celui de la recommandation officielle du W3C. norme sur le WWW.

Générateurs XML

Les documents XML peuvent servir de format intermédiaire pour transférer des informations d'une application à une autre (par exemple, à la suite d'une requête dans une base de données), de sorte que leur contenu est parfois généré et traité automatiquement par des programmes. Il n'est pas toujours nécessaire de créer un document XML manuellement.

Supposons, par exemple, que notre tâche soit de créer un format pour stocker les données d'enregistrement de certains événements survenant dans le système (fichier journal). Dans le cas le plus simple, nous pouvons nous limiter à enregistrer les demandes réussies et échouées vers nos ressources - un tel document doit contenir des informations sur l'heure de l'événement, son résultat (succès/erreur), l'adresse IP de la source de la demande, l'URI de la ressource et code résultat.

Notre document XML pourrait ressembler à ceci :

195.151.62.18 OBTENIR /divers/ 200 195.209.248.12 OBTENIR /soft.htm 200

La structure du document est assez simple - l'élément racine dans ce cas est l'élément journal, chaque événement qui se produit est enregistré dans l'élément événement et est décrit à l'aide de ses attributs (date - heure et résultat - type d'événement) et des éléments internes ( méthode - méthode d'accès, ip-from - adresse source, url-to - ressource demandée, réponse - code de réponse). Ce document peut être généré, par exemple, par un module d'authentification de requête système, et utilisé par un programme de traitement de données d'enregistrement (log viewer).

Qu’est-ce que la DTD ?

Nous avons donc créé un document XML et nous sommes assurés que l'ensemble des balises utilisées nous permettait d'effectuer toute manipulation de nos informations. Dans ce cas, afin d'établir les règles de notre nouveau langage, c'est-à-dire une liste d'éléments valides, leurs contenus et attributs possibles, nous devons créer des définitions de DTD (au moment de la rédaction, la spécification des documents XML n'a pas encore été approuvée et jusqu'à présent, les DTD sont le seul moyen standard de décrire la grammaire).

Un petit exemple pour notre document XML :

Enregistrez ce fichier sous log.dtd et incluez une nouvelle ligne dans le document XML :

Désormais, lors du traitement d'un document, l'analyseur XML vérificateur vérifiera l'ordre dans lequel les éléments et leurs attributs sont définis avec la manière dont il est spécifié dans nos notations DTD, et si la structure interne (qui détermine la « sémantique » du document) est violé, il émettra un message d'erreur.

Que sont les espaces de noms ?

Comme mentionné précédemment, la beauté de l'utilisation de XML réside dans la possibilité de créer vos propres balises, dont les noms correspondraient le mieux à leur objectif. Mais l'imagination et le vocabulaire des gens ne sont pas illimités, il n'y a donc absolument aucune garantie que les noms d'éléments que vous donnez ne seront pas utilisés par quelqu'un d'autre. Tant que votre application ne traite que des documents XML natifs, il n'y aura aucun problème. Mais il est fort possible qu'un même document contienne des informations destinées à plusieurs processeurs à la fois. Dans ce cas, les noms de certains éléments ou leurs attributs peuvent être les mêmes, provoquant soit une erreur dans l'analyseur XML, soit une présentation incorrecte du document. Par exemple, dans notre cas, l’élément event pourrait facilement être utilisé pour enregistrer d’autres événements et être traité par une autre application.

Pour corriger cette situation, nous devons définir des noms uniques pour les éléments et leurs attributs en « ajoutant » un préfixe universel et non répétitif à leurs noms habituels. Pour cela, le mécanisme Namespaces est utilisé (les Namespaces ont été officiellement approuvés par le W3C en janvier 1999 et font désormais partie du standard XML). Selon cette spécification, définir la « portée » d'une balise (en fait, ce terme, largement utilisé dans les langages de programmation classiques, n'est pas applicable en XML, car il n'existe pas d'ensemble en tant que tel sur lequel la « portée » pourrait être construite dans le document XML structuré), il est nécessaire de définir un attribut unique qui décrit le nom de l'élément, par lequel l'analyseur de document peut déterminer à quel groupe de noms il appartient (les identifiants d'espace de noms peuvent être utilisés pour décrire les noms uniques des deux éléments et leurs attributs). Dans notre dernier exemple, cela pourrait être fait comme ceci :

195.151.62.18

OBTENIR

/divers/

200

195.209.248.12

OBTENIR

/soft.htm

200

L'unicité de l'attribut name est assurée par l'utilisation de certains identifiants de ressources universels (par exemple, URI ou ISBN) comme valeur.

Des informations complètes sur l’utilisation de Namespace peuvent être trouvées dans cette norme. À l'avenir, pour simplifier les exemples, nous ignorerons les descriptions des espaces de noms.

Outils

Traitement des documents XML

Le principal facteur limitant dans la promotion de la technologie XML sur le Web aujourd'hui est le manque de prise en charge complète de ce format par tous les fabricants de navigateurs - programmes le plus souvent utilisés côté client. Un moyen de sortir de cette situation peut être une option dans laquelle le côté serveur gère le traitement des documents XML. À l'aide de n'importe quel analyseur XML existant, vous pouvez générer les informations nécessaires sur le serveur et envoyer un document HTML normal au client. Cependant, cette méthode est bien entendu moins flexible et permet d'utiliser la technologie XML uniquement pour stocker des informations structurées, mais pas pour les modifier dynamiquement côté client.

En août 1997, la RFC 2376 a approuvé les types MIME pour les ressources XML : text/xml et application/xml. Par conséquent, les documents XML peuvent être transmis via HTTP et affichés par le spectateur de la même manière que les pages HTML classiques. Pour ce faire, vous devez modifier légèrement la configuration du serveur Web (dans Apache - ajouter la ligne "text/xml xml ddt" au fichier mime.types), et côté client disposer d'un navigateur prenant en charge les feuilles de style ou JavaScript. Aujourd'hui, ces navigateurs incluent Microsoft Internet Explorer 5, le premier navigateur à prendre en charge la spécification XML 1.0 et les feuilles de style XSL ; Navigateur Amaya, proposé par le consortium spécifiquement à des fins de test () et prend en charge presque toutes les normes développées par le W3C. Le support XML est également prévu pour les futures versions de Netscape Navigator.

Modèle d'objet de document DOM

L'une des interfaces les plus puissantes pour accéder au contenu des documents XML est le DOM.

Le modèle objet des documents XML est une représentation de sa structure interne sous la forme d'un ensemble d'objets spécifiques. Pour plus de commodité, ces objets sont organisés dans une sorte de structure de données arborescente - chaque élément du document peut être attribué à une branche distincte, ainsi que tout son contenu, sous la forme d'un ensemble d'éléments imbriqués, de commentaires, de sections CDATA, etc. est représenté dans cette structure par des sous-arbres. Parce que Puisque tout document XML bien formé doit avoir un élément principal défini, tout le contenu peut être considéré comme des sous-arbres de cet élément principal, alors appelé racine de l'arborescence du document. Pour le fragment de document XML suivant :

texte texte

La représentation objet de la structure du document n’est pas quelque chose de nouveau pour les développeurs. Les scripts utilisent depuis longtemps une approche orientée objet pour accéder au contenu d'une page HTML ; les éléments d'un document HTML accessibles à Java Script ou VBScript peuvent être créés, modifiés et affichés à l'aide d'objets appropriés. Mais leur liste et leur ensemble de méthodes changent constamment et dépendent du type de navigateur et de la version linguistique. Afin de fournir une interface permettant d'accéder au contenu d'un document structuré, indépendamment d'un langage de programmation spécifique et d'un type de document, la spécification du modèle objet DOM niveau 1 a été développée et officiellement approuvée au sein du consortium W3.

DOM est une spécification pour un accès universel indépendant de la plate-forme et du logiciel au contenu des documents et constitue simplement une sorte d'API pour leurs gestionnaires. DOM est un moyen standard de construire un modèle objet de n'importe quel document HTML ou XML, à l'aide duquel vous pouvez rechercher les fragments nécessaires, créer, supprimer et modifier ses éléments.

Pour décrire les interfaces d'accès au contenu des documents XML, la spécification DOM utilise le langage IDL indépendant de la plate-forme et pour les utiliser, elles doivent être « traduites » dans un langage de programmation spécifique. Cependant, cela est fait par les créateurs des analyseurs eux-mêmes ; nous ne savons peut-être rien de la façon dont les interfaces sont implémentées - du point de vue des développeurs d'applications, le DOM ressemble à un ensemble d'objets avec certaines méthodes et propriétés. Dans la section suivante, nous examinerons rapidement le modèle objet de Microsoft Internet Explorer 5, accessible à partir des scripts Java Script et VBScript.



Cet article détaillera la syntaxe de base du désormais populaire langage de balisage XML. Les aspects essentiels du document XML sous-jacent seront également mentionnés ici.

Cet article ouvre une série d'articles consacrés aux bases de l'écriture de documents XML, aux principes de conception de ces documents et aux manières d'afficher des documents XML dans un navigateur.

Le langage de balisage XML décrit et structure également le contenu d'un fichier XML. La base d'un langage de balisage est une balise qui délimite les sections de contenu. Cette façon de décrire un document est très similaire au balisage HTML, mais il existe de grandes différences entre ces langages.

Voici un petit exemple écrit en HTML et XML.

Disons que nous avons un petit tableau avec du texte dans l'une de ses cellules.

HTML

XML

< Bordure du tableau = 0 >

< tr >

< td >

< Alignement H1 = « centre » > Ce texte est en HTML h1 >

< taille des heures = 1 >

td >

tr >

tableau >

< bordure du tableau =" 0 " >

< tr >

< td >

< h1 aligner = « centre » > Ce texte est dans XML h1 >

< taille des heures = "1" />

td >

tr >

tableau >

Maintenant, en regardant ces exemples, vous pouvez voir les différences entre le balisage XML et le HTML auquel nous sommes habitués. La principale différence est que XML est sensible à la casse, y compris les noms de balises et les valeurs d'attribut. C'est

.

Une autre différence significative entre XML et HTML réside dans le fait que chaque valeur d'attribut doit être placée entre guillemets. Chaque élément doit avoir une balise fermante (exemple :


- en HTML cette écriture est acceptable, en XML l'élément line doit avoir une balise fermante :
).

Noms et symboles

Les caractères XML sont des nombres définis dans le jeu de caractères 16 bits+ Unicode 2.1. Cette méthode de codage est conforme à la norme ISO/IEC 10646, décrite sur le site Internet : //www.iso.ch.

Noms

DANS Langage XML Tous les noms doivent commencer par une lettre, un trait de soulignement (_) ou deux points (:) et continuer uniquement avec des caractères de nom valides. Ces derniers comprennent tous les symboles ci-dessus, ainsi que des chiffres, des tirets (-) ou des points (.). Noms ne peut pas commencez par les lignes « xml », « XML », « xML », « xmL », « XML », « Xml », « XmL ».

Exemple. Ce noms corrects: Livre, LIVRE, monnom : Catalogue, Livre.

Ce ne sont pas des noms corrects : -BOOK, 101 Dalmatiens, XMLForever, Lena+Petya=Love.

Structure du document

Un document XML correctement formaté se compose de trois parties principales :

  • Facultatif prologue
  • Corps document, constitué d'un ou plusieurs éléments, sous la forme d'un arbre hiérarchique pouvant contenir des données de caractères.
  • Facultatif épilogue Avec Informations Complémentaires, composé de commentaires, de commandes de traitement et d'espace vide suivant l'arborescence des éléments.

Considérons exemple standard document simple XML.

Corps

Épilogue

Examinons de plus près la structure donnée ci-dessus.

Prologue

Chaque document XML commence par élément suivant: . Nous déclarons ici que le document est un document XML avec encodage Windows-1251. Cependant, l'encodage peut être quelconque en fonction de l'encodage du texte.

Ainsi, le prologue se compose des attributs suivants :

  • versionattribut obligatoire, qui doit être défini sur 1.0 pour prendre en charge les versions futures ;
  • codage– un attribut facultatif indiquant le codage du document XML. Si l'attribut n'est pas spécifié, alors le codage par défaut est supposé être UTF-8 ou UTF-16, selon le format de la ligne initiale "
  • autonome– un attribut facultatif qui prend la valeur « oui » si le document contient toutes les déclarations de type de document requises, ou « non » si les déclarations sont dans un fichier séparé. Pour l'avenir, je dirai que les déclarations de type de document peuvent être situées à la fois dans le document XML lui-même et dans un fichier séparé, se complétant mutuellement.

Déclaration du type de document

Une déclaration de type de document ne doit pas être confondue avec une définition de type de document. On peut dire qu'une déclaration de type de document contient un sous-ensemble interne et/ou fait référence à un sous-ensemble externe de la définition du type de document.

Tous les documents valides doivent contenir de telles déclarations, ou des liens vers leur équivalent externe (un exemple d'un tel lien est donné ci-dessous).

.

Cet élément "dit" que la structure du document XML présenté est définie par la déclaration externe books.dtd, située sur //votreserveur.com/.

Corps

Le corps est constitué d'éléments. Les éléments sont les éléments de base du balisage XML. Les éléments peuvent contenir des sous-éléments, des données de caractères, des références de symboles, des références d'objets, des commandes PI (instructions de traitement), des commentaires, des sections CDATA. Toutes les données XML, à l'exception des commentaires, des commandes de traitement et des espaces, doivent être contenues dans des éléments.

Les éléments sont séparés les uns des autres à l'aide de balises, qui consistent en le nom du type d'élément entouré d'une paire de crochets angulaires. Chaque élément possède une balise d'ouverture et de fermeture, ou s'il s'agit d'un élément vide (par exemple, ), une sorte d'hybride de balise d'ouverture et de fermeture, comme le montre l'exemple.

Tous les éléments doivent être imbriqués les uns dans les autres. Cela ressemble à ceci :

< a >

< b >

…………………………………

< b>

…………………………………

Ainsi, nous obtenons une sorte d’arborescence hiérarchique avec un seul nœud racine, appelé racine du document. Il ne peut y avoir qu'une seule racine dans un document. Ce principe de rédaction d'un document peut être comparé au registre système Windows, c'est-à-dire avec une structure de base de données hiérarchique.

À titre de comparaison, voici deux exemples montrant comment ne pas composer de documents XML.

< a >

< b >

…………………………………….

< a >

……………………………………………

< b >

…………………………………………....

Tout est évident ici. Dans le premier exemple, on constate l'absence d'imbrication des balises, et dans le second, il y a deux racines dans le document.

Attributs

Il est souvent nécessaire d'associer certaines informations à un élément plutôt que de simplement les inclure dans le contenu de l'élément. Pour cela il y a attributs. Un attribut est une paire nom-valeur, écrite dans l'un des deux formats suivants :

nom_attribut = "valeur_attribut"

nom_attribut='valeur_attribut'

Les attributs suivent les mêmes règles que constantes de chaîne, c'est-à-dire les valeurs d'attribut doivent être entourées de doubles ou guillemets simples, ils peuvent contenir des références d'objets, des références de symboles et/ou des informations textuelles

Exemple: . DANS dans ce cas nous avons un élément « Livre » avec un attribut « catégorie » dont la valeur est le mot « Fantaisie ».

xml:attribut espace sert à demander à l’application de préserver les espaces vides. Cet attribut peut être comparé à une balise

En HTML, utilisé pour conserver le formatage du document.

xml: attribut lang introduit pour indiquer à l'application l'existence d'un texte avec un encodage spécifique, où il est nécessaire de prendre en compte l'ordre de tri des caractères, les méthodes de séparation des mots lors de indexation du texte intégral etc. En spécifiant cet attribut, nous indiquons à l'application quelle langue utilise l'élément avec cet attribut. La valeur de l'attribut xml:lang est un code spécial à deux lettres indiquant la langue correspondante : fr pour le français, ja pour le japonais. De plus, le code à deux lettres peut être accompagné de sous-codes : en-US - anglais américain, az-cyrillique - cyrillique azerbaïdjanais.

Épilogue

Cette partie du document XML peut utiliser des commentaires et des commandes de traitement et/ou des espaces. Cependant, il n'est pas clair si les commandes de traitement doivent être appliquées aux éléments précédents ou aux éléments suivants, le cas échéant.

C'est le problème principal de l'épilogue.

La plupart (sinon la totalité) des analyseurs XML déterminent la fin d'un document par la balise de fin. Par conséquent, toute la partie située après la balise de fin sera ignorée par l'analyseur.

Selon Tim Bray (l'un des auteurs de la recommandation XML 1.0), l'épilogue est un défaut de conception et ne doit être utilisé que si cela est nécessaire. Une autre chose à garder à l'esprit est que l'épilogue ne sera probablement pas traité par d'autres applications XML.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :