[[j2ee:xml]]

TD0

Version originale

Objectifs

Introduction à XML

Liens

Intro

Historique, Intérêts et principes

Composition d’un fichier XML

Exemple

<?xml version="1.0" encoding="UTF-8"?>
<biblio>
  <livre>
    <!-- Élément enfant titre -->
    <titre>Guerre et Paix</titre>
    <auteur>Léon Tolstoï</auteur>
    <nb_tomes>4</nb_tomes>
  </livre>
  <livre>
    <titre>Le curé de Tours</titre>
    <auteur>Honoré de Balzac</auteur>
    <couverture couleur="Noir" />
  </livre>
  <livre lang="en">
    <titre>David Copperfield</titre>
    <auteur>Charles Dickens</auteur>
    <nb_tomes>3</nb_tomes>
  </livre>
</biblio>

Prologue

Le prologue <?xmlversion=“1.0”encoding=“UTF-8”?> définit la version XML et l’encodage du fichier.

Eléments

L’élément racine <biblio> est unique et contient tous les autres éléments.

Un élément peut contenir du texte :<titre>Guerre et Paix</titre>

Ou parfois, des éléments enfants :

  <livre lang="en">
    <titre>David Copperfield</titre>
    <auteur>Charles Dickens</auteur>
    <nb_tomes>3</nb_tomes>
  </livre>

Certains éléments sont vides :<couverture couleur=“Noir”/>

Attributs

Un élément peut contenir des attributs.

Elément avec un attribut :

<langage ancetre=“sgml”>xml</langage>

Elément avec plusieurs attributs

<img src=“photo.png”alt=“C'est moi sur la photo”width=“56”height=“100”/>

L’ordre des attributs n’a aucune importance.

Attention, un fichier XML est sensible à la casse.

Certains caractères ayant un sensétablien XML, il est nécessaire de leur trouver un remplaçant lorsqu’ils doivent être insérésdans un document. Onutilise dans ce casles entités prédéfinies :

CaractèreEntité
&&amp;
<&lt;
>&gt;
&quot;
'&aquot;

Les sections CDATA

Une section CDATA est une section pouvant contenir toutes sortes de chaînesde caractères.Elle permet de définir un bloc de caractères ne devant pas être analysés par le processeur XML, afinde garder dans un bloc de texte un exemple de code à afficher tel quel.

Exemplede CDATA

<![CDATA[Une balise commence par un < et se termine par un >.]]>

Règles de composition

Certaines règles doivent être respectées dans la composition d’un document XML :

  1. Un nom d'élément ne peut commencer par un chiffre. Si le nom n'est composé que d'un seul caractère, ce doit être une lettre comprise entre « a » et « z » pour les minuscules, « A » et « Z » pour les majuscules. S'il est composé d'au moins deux caractères, le premier peut être « _ » ou « : ». Le nom peut ensuite être composé de lettres, chiffres, tirets, tirets bas et deux points. La syntaxe XML est sensible à la casse (le format distingue majuscules et minuscules).
  2. Toutes les balises portant un contenu non vide doivent être fermées. La balise de début, la balise de terminaison et le contenu entre les deux sont globalement appelés élément ;
  3. Les balises n'ayant pas de contenu doivent se terminer par /> (voir la balise <img …/> ci-dessus) ;
  4. Les valeurs d'attributs doivent être entre guillemets ;

Un document respectant ces critères est dit bien formé (well formed).

Il est aussi possible de définir des règles plus strictes définissant la structure que doit avoir le document, par l’intermédiaire d'une DTD ou d'un Schéma. On peut alors tester la validité des documents faisant référence à une DTD pour s'assurer qu'ils respectent bien les règles qui y sont mentionnées.Un document bien formé dont la syntaxe est conforme aux règles stipulées dans une DTD ou un Schema XML est dit valide.

DTD : Document Type Definition

Une DTD peut être interne (définie dans le doc XML lui-même), ou externe (dans un fichier externe). Les DTD externes peuvent être publiques (disponibles grâce à un URI) ou privées (dispos sur machine locale).

La DTD est définie juste après le prologue dans le fichier XML.

Exemple de DTD externe privée :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE biblio SYSTEM "bibliographie.dtd">

Fichier associé : bibliographie.dtd

<!ELEMENT biblio (livre*)>
<!ELEMENT livre (titre, auteur, nb_pages)>
  <!ATTLIST livre
    type (roman | nouvelles | poemes | théâtre) #IMPLIED
    lang CDATA "fr"
  >
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT nb_pages (#PCDATA)>

Exemple de DTD externe publique :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Limites DTD :

  1. Pas XML
  2. Pas d’espaces de noms
  3. Typage limité

Schema XML

Liaison d’un fichier XML à un schema :

Le lien se fait juste après le prologue (comme pour la DTD), mais sur l’élément racine du fichier.

Schema externe privé :

<biblio xmlns:xsi=//"http://www.w3.org/2001/XMLSchema-instance"//xsi:noNamespaceSchemaLocation=//"biblio.xsd"//>

Schema externe public :

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

Notion d’espace de noms :

Un espace de noms permet à un document XML d’utiliser toutes les balises définies dans un Schema XML donné.

Schema XML : définition

Comme tout fichier XML, un schema doit contenir un prologue, et une référence à un Schema.

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001//XMLSchema">   
<!-- déclarations d'éléments, d'attributs et de types ici -->
</xsd:schema>

Déclaration d’éléments :

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="contacts" type="typeContacts" />
  	<xsd:element name="remarque" type="xsd:string" />
<!-- déclarations de types ici -->
</xsd:schema>

Type complexe :

<xsd:complexType name="typeContacts">
  <xsd:sequence>
    <xsd:element name="nom" type="xsd:string" />
    <xsd:element name="prénom" type="xsd:string" />
    <xsd:element name="dateDeNaissance" type="xsd:date" />
    <xsd:element name="adresse" type="xsd:string" />
    <xsd:element name="adresseElectronique" type="xsd:string" />
    <xsd:element name="téléphone" type="numéroDeTéléphone" />
  </xsd:sequence>
</xsd:complexType>

Déclaration d’attributs :

<xsd:complexType name="typeContacts">
  <xsd:sequence>
    <xsd:element name="dateDeNaissance" type="xsd:date" />
    <xsd:element name="adresse" type="xsd:string" />
    <xsd:element name="adresseElectronique" type="xsd:string" />
    <xsd:element name="téléphone" type="numéroDeTéléphone" />
  </xsd:sequence>
  <xsd:attribute name="nom" />
  <xsd:attribute name="prénom" />
</xsd:complexType>

Types de données simples :

http://www.w3.org/TR/xmlschema-0/#CreatDt

j2ee/xml.txt · Dernière modification: 2017/08/09 16:34 (modification externe)
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0