Langage de balisage extensible
| Langage de balisage extensible (XML) | ||
|---|---|---|
|
| ||
|
| ||
| développeur | ||
| World Wide Web Consortium | ||
| http://www.w3.org/XML | ||
| Informations générales | ||
| extension de fichier |
.xml | |
| type mime |
application/xml, text/xml | |
| Première version | 1999 | |
| type de format | langage de balisage | |
| prolongée de | SGML et Unicode | |
| Normes) |
1.0 (quatrième édition) 1.1 (deuxième édition) | |
| format ouvert |
| |
XML , acronyme en anglais pour eXtensible Markup Language , traduit par 'Extensible Markup Language' ou 'Extensible Markup Language', est un métalangage qui permet de définir des langages de balisage développés par le World Wide Web Consortium (W3C) utilisés pour stocker des données en format lisible. formulaire. Il est issu du langage SGML et permet de définir la grammaire de langages spécifiques (de la même manière que HTML est lui-même un langage défini par SGML) pour structurer des documents volumineux. Contrairement à d'autres langages, XML prend en charge les bases de données, ce qui le rend utile lorsque plusieurs applications doivent communiquer entre elles ou intégrer des informations. [ 1 ]
XML n'a pas été créé uniquement pour son application sur Internet , mais est plutôt proposé comme un standard pour l'échange d'informations structurées entre différentes plateformes. Il peut être utilisé dans des bases de données, des éditeurs de texte, des feuilles de calcul et à peu près tout ce qui est imaginable.
XML est une technologie simple qui en a d'autres qui la complètent et la rendent beaucoup plus grande, avec des possibilités beaucoup plus grandes. Il joue aujourd'hui un rôle très important car il permet la compatibilité entre les systèmes pour partager des informations de manière sûre, fiable et simple.
Historique
XML provient d'un langage inventé par IBM dans les années 1970 , appelé GML ( Generalized Markup Language ), né du besoin de l'entreprise de stocker de grandes quantités d'informations et de les partager avec d'autres systèmes d'exploitation et plates-formes. L' ISO a aimé ce langage , alors en 1986, ils ont travaillé à le normaliser, créant SGML ( Standard Generalized Markup Language ), capable de s'adapter à un large éventail de problèmes. À partir de là, d'autres systèmes ont été créés pour stocker des informations. [ 2 ]
En 1989 , Tim Berners Lee a créé le Web et, avec lui, le langage HTML. Ce langage a été défini dans le cadre de SGML et était de loin l'application la plus connue de cette norme. Cependant, les navigateurs Web ont toujours placé peu d'exigences sur le code HTML qu'ils interprètent et les pages Web sont donc chaotiques et non conformes à la syntaxe . Ces pages Web s'appuient fortement sur une manière spécifique de traiter les erreurs et les ambiguïtés, ce qui rend les pages plus fragiles et les navigateurs plus complexes.
Une autre limitation du HTML est que chaque document appartient à un vocabulaire fixe, établi par la DTD . Les éléments de vocabulaires différents ne peuvent pas être combinés. De même, il est impossible pour un interpréteur (par exemple un navigateur) d'analyser le document sans connaître sa grammaire (de la DTD). Par exemple, le navigateur sait qu'avant une balise <div>, tout <p> précédemment ouvert doit avoir été fermé. Les navigateurs ont résolu ce problème en incluant une logique ad hoc pour le HTML, plutôt qu'en incluant un analyseur générique . Les deux options, cependant, sont très complexes pour les navigateurs.
On a alors cherché à définir un sous-ensemble de SGML qui permette :
- Mélangez des éléments de différentes langues. Autrement dit, les langues sont extensibles.
- La création d'analyseurs simples, sans logique particulière pour chaque langage.
- Partez de zéro et insistez sur le fait qu'un document contenant des erreurs de syntaxe n'est jamais accepté.
Pour ce faire, XML laisse de côté de nombreuses fonctionnalités de SGML qui étaient destinées à faciliter l'écriture manuelle de documents. XML, d'autre part, vise à faciliter les choses pour les programmes automatiques qui doivent interpréter le document.
Critique
XML et ses extensions ont été régulièrement critiqués pour leur niveau de détail et de complexité. [ 3 ] Mapper le modèle d'arborescence de base de XML aux systèmes de type des langages de programmation ou des bases de données peut être difficile, en particulier lors de l'utilisation de XML pour l'échange de données hautement structuré entre les applications, ce qui n'était pas l'objectif de conception principal. D'autres critiques tentent de réfuter l'affirmation selon laquelle XML est un langage auto-descriptif [ 4 ] (bien que la spécification XML ne fasse pas une telle affirmation). JSON et YAML sont fréquemment proposés comme alternatives, tous deux se concentrant sur la représentation de données structurées plutôt que sur des documents narratifs.
Avantages de XML
- Il est extensible : après avoir été conçu et mis en production, XML peut être étendu en ajoutant de nouvelles balises afin qu'il puisse continuer à être utilisé sans aucun problème.
- L'analyseur est un composant standard, il n'est pas nécessaire de créer un analyseur spécifique pour chaque version du langage XML. Cela permet d'utiliser n'importe lequel des analyseurs disponibles. De cette manière, les bugs sont évités et le développement des applications est accéléré.
- Si un tiers décide d'utiliser un document créé en XML, il est facile de comprendre sa structure et de le traiter. Améliore la compatibilité entre les applications. Nous pouvons communiquer des applications de différentes plates-formes, quelle que soit l'origine des données, c'est-à-dire que nous pourrions avoir une application Linux avec une base de données Postgres et communiquer avec une autre application Windows et une base de données MS-SQL Server.
- Nous transformons les données en informations, puisqu'une signification spécifique leur est ajoutée et nous les associons à un contexte, avec lequel nous avons la flexibilité de structurer les documents.
Structure d'un document XML
La technologie XML cherche à résoudre le problème de l'expression d'informations structurées de la manière la plus abstraite et la plus réutilisable possible. Que l'information soit structurée signifie qu'elle est composée de parties bien définies, et que ces parties sont composées d'autres parties. Ensuite, vous avez un arbre d'informations. Des exemples sont un thème musical, composé de mesures, elles-mêmes composées de notes. Ces parties sont appelées éléments et elles sont marquées par des étiquettes .
Une balise consiste en une marque apposée sur le document, qui en désigne une partie comme élément. Une information avec une signification claire et définie. Les balises ont la forme <name> , où name est le nom de l'élément pointé.
Ci-dessous un exemple pour comprendre la structure d'un document XML :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Edit_Message SYSTEM "Edit_Message.dtd">
<Edit_Message>
<Message>
<Sender>
<Name> Nom de l'expéditeur </Name>
<Mail> Email de l'expéditeur </Mail>
</Sender>
<Recipient>
<Name> Nom du destinataire </Name>
<Mail> Email du destinataire < /Mail>
</Recipient>
<Texte>
<Objet>
Ceci est mon document avec une structure très simple
ne contient aucun attribut ou entité...
</Sujet>
<Paragraphe>
Ceci est mon document avec une structure très simple
ne contient aucun attribut ou entité...
</Paragraph>
</Text>
</Message>
</Edit_Message>
Voici l'exemple de code de la DTD du document « Edit_Message.dtd » :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Ceci est la DTD Edit_Message -->
<!ELEMENT Message (Expéditeur, Destinataire, Texte)*>
<!ELEMENT Expéditeur (Nom, E-mail)>
<!ELEMENT Nom (#PCDATA)>
<!ELEMENT Message (#PCDATA)>
<!ELEMENT Destinataire (Nom, E-mail) >
<!ELEMENT Nom (#PCDATA)>
<!ELEMENT Courrier (#PCDATA)>
<!ELEMENT Texte (Objet, Paragraphe)>
<!ELEMENT Objet (#PCDATA)>
<!ELEMENT Paragraphe (#PCDATA)>
Documents XML bien formés et gestion des erreurs
Les documents dits "bien formés" sont ceux qui répondent à toutes les définitions de format de base et peuvent donc être correctement analysés par n'importe quel analyseur conforme à la norme . Ceci est séparé du concept de validité qui est expliqué plus loin.
- Les documents doivent suivre une structure strictement hiérarchique en ce qui concerne les étiquettes qui délimitent leurs éléments. Une balise doit être correctement incluse dans une autre, c'est-à-dire que les balises doivent être correctement imbriquées. Les éléments de contenu doivent être correctement fermés.
- Les documents XML n'autorisent qu'un seul élément racine dont tous les autres font partie, c'est-à-dire qu'ils ne peuvent avoir qu'un seul élément initial.
- Les valeurs d'attribut en XML doivent toujours être entourées de guillemets simples ou doubles.
- Le XML est sensible à la casse. Il existe un ensemble de caractères appelés espaces blancs (espaces, tabulations, retours chariot, sauts de ligne) qui sont traités différemment par les processeurs XML dans le balisage XML.
- Il est nécessaire d'attribuer des noms aux structures, types d'éléments, entités, éléments particuliers, etc. En XML, les noms ont certaines caractéristiques en commun.
- Les constructions telles que les balises, les références d'entité et les déclarations sont appelées marques ; ce sont des parties du document que le processeur XML s'attend à comprendre. Le reste du document entre les marques est la donnée "compréhensible" par les gens.
Parties d'un document XML
Un document XML est composé du prologue et du corps du document ainsi que du texte de la balise qui contient une grande variété d'effets positifs ou négatifs sur la référence facultative à laquelle le document se réfère, vous devez faire très attention à cette partie de grammaire lexicale pour qu'elle soit composée uniformément.
Prologue
Bien que cela ne soit pas obligatoire, les documents XML peuvent commencer par quelques lignes décrivant la version XML, le type de document et d'autres éléments.
Le prologue d'un document XML contient :
- Une déclaration XML. C'est l'instruction qui déclare le document en tant que document XML.
- Une déclaration de type de document. Il lie le document à sa DTD (définition de type de document), ou la DTD peut être incluse dans la déclaration elle-même, ou les deux en même temps.
- Un ou plusieurs commentaires et instructions de traitement.
Exemple:
<?xml version="1.0" encoding="UTF-8" ?>
Corps
Contrairement au prologue, le corps n'est pas facultatif dans un document XML, le corps ne doit contenir qu'un seul élément racine, une caractéristique essentielle également pour un document bien formé. Cependant, l'acquisition de données est nécessaire à son bon fonctionnement.
Exemple:
<Modifier_Message>
(...)
</Edit_Message>
Éléments
Les éléments XML peuvent avoir un contenu (plus d'éléments, de caractères ou les deux), ou ils peuvent être des éléments vides.
Attributs
Les éléments peuvent avoir des attributs, qui permettent d'ajouter des caractéristiques ou des propriétés aux éléments d'un document. Ils doivent être entre guillemets.
Par exemple, un élément "étudiant" peut avoir un attribut "Mario" et un attribut "type", avec respectivement les valeurs "mange des croquettes" et "taleno".
<Etudiant Mario="eat croquettes" type="taleno">C'est un jour que Mario va se promener…</Etudiant>
Entités prédéfinies
Entités pour représenter des caractères spéciaux afin qu'ils ne soient pas interprétés comme du balisage dans le processeur XML.
Exemple : entité prédéfinie : & caractère : &.
Rubriques CDATA
Il s'agit d'une construction XML permettant de spécifier des données à l'aide de n'importe quel caractère sans qu'il soit interprété comme un balisage XML. A ne pas confondre avec 2(#PCDATA) qui est pour les éléments. Permet aux caractères spéciaux de ne pas casser la structure. Exemple:
<![CDATA[contenu spécial : \n áéíóúñ&]]>
Commentaires
Commentaires à but informatif pour le programmeur qui doivent être ignorés par le processeur. Les commentaires en XML ont le format suivant :
<!--- Ceci est un commentaire --->
<!-- Un autre commentaire -->
Validité
Qu'un document soit "bien formé" se réfère uniquement à sa structure syntaxique de base, c'est-à-dire qu'il est composé d'éléments, d'attributs et de commentaires tels que XML les spécifie pour être écrits. Or, chaque application de XML, c'est-à-dire chaque langage défini avec cette technologie, devra préciser quelle est exactement la relation qui doit être vérifiée entre les différents éléments présents dans le document.
Cette relation entre les éléments est spécifiée dans un document ou une définition externe (exprimée sous forme de DTD ou de XSchema ). Créer une définition équivaut à créer un nouveau langage de balisage, pour une application spécifique.
Définition du type de document
La définition de type de document ou DTD (en espagnol "définition de type de document") définit les types d'éléments, d'attributs et d'entités autorisés, et peut exprimer certaines limitations pour les combiner. Les documents XML conformes à leur DTD sont appelés valides.
Déclarations de type d'élément
Les éléments doivent être conformes à un type de document déclaré dans une DTD pour que le document soit considéré comme valide.
Modèles de contenu
Un modèle de contenu est un modèle qui établit les sous-éléments acceptés et l'ordre dans lequel ils sont acceptés.
Déclarations de liste d'attributs
Les attributs sont utilisés pour ajouter des informations supplémentaires aux éléments d'un document.
Types d'attributs
Déclaration d'entité
XML fait référence à des objets qui ne doivent pas être analysés selon les règles XML, via l'utilisation d'entités. Les entités peuvent être :
- interne ou externe
- Analysé ou non analysé
- Général ou paramétré
Espaces de noms
Les espaces de noms XML vous permettent de séparer sémantiquement les éléments qui composent un document XML.
Schémas XML (XSD)
Un schéma est un peu similaire à une DTD. Il définit quels éléments un document XML peut contenir, comment ils sont organisés, et quels attributs et quel type ses éléments peuvent avoir.
Avantages des schémas par rapport aux DTD
- Ils utilisent la syntaxe XML, contrairement aux DTD.
- Ils vous permettent de spécifier les types de données.
- Ils sont extensibles.
Outils pour travailler avec des documents XML
Tout traitement de texte capable de produire des fichiers .txt est capable de générer du XML ; les environnements de développement comme Eclipse ou Visual Studio simplifient la tâche. En reconnaissant les formats, ils aident à générer du XML bien formé. Ils peuvent être divisés en deux groupes :
- Outils de création.
- Outils de gestion de contenu.
Langages créés à l'aide de XML
Langage de feuille de style extensible (XSL)
L'Extensible Style Sheet Language ( e X tensible Stylesheet L anguage , XSL ) est une famille de langages qui permettent de décrire comment les fichiers encodés en XML seront formatés (pour l'affichage) ou transformés. Il existe trois langages dans cette famille : les transformations XSL ( XSLT ), les objets de formatage XSL (XSL-FO) et le langage de chemin XML.
Langage de lien XML (XLINK)
XLink est une application XML qui tente de surmonter les limitations des liens hypertextes en HTML. XLink 1.1 est déjà une recommandation du W3C.
Autres technologies
- Feuilles de style
- XD XD
- XSL-FO
- XSLT
- XLink
- XPointerName
- XSL
- Feuilles de style en cascade (CSS)
- XLT ( Représentation XML des Lexiques et Terminologies )
- Programmation
- requête de données
- Sécurité
- Xades (signatures électroniques avancées XML)
Certaines personnes pensent que XML est trop lourd pour certaines applications et difficile à éditer avec un simple éditeur de texte . Par conséquent, il convient de mentionner certaines alternatives plus légères et plus simples. Les langages de balisage légers :
- Simple Outline XML – Il s'agit d'un XML simplifié qui peut être facilement converti en XML complet .
- YAML et OGDL . Ces deux sont des fichiers texte uniquement qui ne sont pas liés à XML comme le SOX, discuté ci-dessus.
- BBCode . Cela a une utilisation très restreinte pour formater rien d'autre.
Il existe également au moins un langage basé sur XML au format binaire , appelé EBML .
Voir aussi
Portail : informatique . Contenu lié à l'informatique .- XML-RPC — Protocole d'appel de procédure distante ( RPC ) qui utilise XML pour coder les données.
- SOAP — protocole pour les appels de méthode à distance et l'échange de messages XML utilisant la technologie objet.
- HL7 v3 — norme d' interopérabilité des données de santé , qui utilise des messages et des documents électroniques XML.
- Modèle d'objet de document
- DTD
- Éditeur XML
- Schéma XML
- OuvrirDocument
- RELAX NG
- coloration syntaxique
- Schématron
- API simple pour XML
- service Web
- XSD
- XSL
- WSDLName
Références
- ↑ Silberschatz, Abraham. McGraw-Hill, éd. Bases de la base de données .
- ↑ "Qu'est-ce que XML et à quoi sert-il" . IR5 . Consulté le 2 novembre 2012 .
- ↑ Jeff Atwood (2009) : XML : L'impôt sur la tranche d'angle
- ↑ Eric Brown (2003). Le mythe du XML auto-descriptif . (en anglais)
Liens externes
- Ensemble d'informations XML (deuxième édition) . Traduction de la recommandation du W3C sur les ensembles d'informations XML (deuxième édition).
- Espaces de noms dans XML 1.1 . Traduction de la recommandation du W3C sur les espaces de noms en XML 1.1.
- Liaisons XML Key Management Specification (XKMS 2.0) . Traduction de la recommandation du W3C sur les liaisons de protocole avec des fonctionnalités de sécurité pour la spécification XML Key Management (XKMS).
- XML inclut . Traduction des inclusions XML (XInclude) Version 1.0.
- xml:id Version 1.0 . Traduction de la recommandation W3C sur xml:id 1.0.
- Page Web officielle du W3C sur XML (en anglais) .
- Introduction à XML (en espagnol).
- Introduction à XML — introduction conceptuelle à XML.
- programmation.com — cours, tutoriels, astuces, etc.
- La norme XML (en anglais) .
- La famille des langages de feuille de style extensible (XSL ) .
- Théorie du didacticiel XML , exemples et exercices résolus avec Creative Commons License.
- XML.org (en anglais) .
- Guide du logiciel XML Archivé le 11/07/2006 sur la Wayback Machine (en anglais) .
- Page Web XML de Microsoft .
- Outils de création de documents XML .
- Modules XML Perl sur CPAN . _
- XML.Awardspace — introduction de base à XML.
- SoaAgenda — Exemple de relais XML vers DOM.
- XML : Introduction , vidéo d'introduction à XML.
- XML : Exemples d'utilisation , vidéo qui explique différents exemples d'utilisation de XML, tels que CML, MathML ou SVG.
- XML : HTML et XHTML , vidéo qui explique les différences entre XML, HTML et XHTML.
- Formateur XML Formateur XML .