• Aucun résultat trouvé

XML pour eXtensible Markup Language est un standard promulgué par le W3C, le 10 février  1998.  Comme  l’indique  le  W3C  en  introduction 

(cf. bibliographie W5), XML est la synthèse des idées contenues  alors  dans  HTML  et  plus  généralement  SGML  (Standard  Deneralized  Markup  Language).  Là  ou  HyperText  Markup 

Language (HTML) utilise les balises pour définir la représentation graphique d’une page, XML  permet  d’associer  tout  type  d’information  en  séparant  la  description  des  données  de  leur  représentation graphique. XML est donc un format pratique de sauvegarde et d’échange de  données  permettant  la  conception  de  documents  complexes  tout  en  s’appuyant  sur  des  principes simples :   Lisibilité des données à la fois par l’homme et les programmes ;   Définition sans ambiguïté du contenu et de la structure d’un document ;   Séparation entre documents et relations d’un document ;   Séparation entre structure et présentation du document ;  Daniel KOCH, Olivier KÜRTEN, Florian HARMS dans leur livre « HTML 4, XML, XHTML » (cf.  bibliographie L4) décrivent la construction des données XML. Elle se compose de 2 parties :  Le Document Type Definition (DTD) qui a pour but de définir l’ensemble des balises utilisées  ainsi que leurs relations, et le XML qui décrit les données grâce aux définitions décrites dans  le DTD.  Dans l’exemple ci contre on peut voir la définition des données nécessaires pour décrire un  livre, puis les données elles mêmes. 

Dans  cet  exemple,  il  apparaît  bien  que  ces  fichiers  ne  donnent  aucune  indication  sur  la  représentation  graphique  de  ces  données.  La  mise  en  forme  peut  alors  être  confiée  à  une  feuille  de  style  inspirée  des  CSS  (Cascading  Style  Sheet)  que  l’on  appelle  XSL.  La  norme 

W3C : Organisme chargé de la 

standardisation des évolutions  du web. 

définissant le vocabulaire nécessaire à la transformation des données XML est appelé XSLT  (XSL Tranformation). 

  Cet exemple montre aussi que si dans un document XML simple il n’y a pas d’ambiguïté sur  les  définitions,  dans  des  documents  plus  complexes,  certaines  balises  peuvent  prêter  à  confusion.  Par  exemple  ici,  la  date  qui  représente  la  date  de  parution  pourrait  être  confondue avec la date de naissance de l’auteur. 

XML Namespaces 

Le  livre  de  Jean‐Marie  CHAUVET,  «  Services  Web  avec  SOAP,  WSDL,  UDDI,  ebXML…  »  (cf. bibliographie L5)  apporte  un  complément  sur  la  variété  des  domaines  d’application  d’XML  qui  à  rapidement  conduit  la  W3C  à  adopter  des  normes  complémentaires  comme  XML Namespaces. Cette recommandation a pour objectif de lever les ambiguïtés du type de  celle exposée dans l’exemple précédent par la définition de deux espaces de nom : livre et  auteur dans lesquels la balise date aura respectivement la signification de date de parution  et date de naissance.  Exemple.xml < ?xml version="1.0" encoding="UTF-8" ?> < !DOCTYPE xq PUBLIC "." "Exemple.dtd"> <livre> <titre>Zend Framework</titre> <auteur> <nom>Pauli</nom> <prenom>Julien</prenom> </auteur> <auteur> <nom>Ponçon</nom> <prenom>Guillaume</prenom> </auteur> <date>2009</date> </livre> Figure 19 – Exemple de représentation XML d'un livre  Exemple.dtd

< !ELEMENT livre (titre, auteur*, date)> < !ELEMENT titre (#PCDATA)>

< !ELEMENT auteur (nom, prenom)> < !ELEMENT date (#PCDATA)> < !ELEMENT nom (#PCDATA)> < !ELEMENT prenom (#PCDATA)>

Le caractère * permet de  spécifier la répétition  éventuelle de l’élément 

XML Schema 

Autre norme adoptée cette fois après de longues discussions, XML Schema représente tant  une innovation importante dans l’utilisation d’XML qu’une rupture avec son usage initial. En  effet,  XML  Schema  permet  de  décrire  la  structure  des  données  en  général  depuis  les  modèles  relationnels  des  bases  de  données  aux  modèles  objets  des  langages  de  programmation.  Un  schéma  XML  reprend  à  la  façon  d’une  DTD  l’imbrication  des  éléments  entre eux mais le complète par le type de ces éléments et leurs attributs. 

Si l’on reprend notre exemple, le schéma serait alors : 

<xsd:element name="livre"> <xsd:complexType> <xsd:sequence>

<xsd:element ref="titre" minOccurs="1" maxOccurs="1" /> <xsd:element ref="auteur" minOccurs="1" maxOccurs="5" /> <xsd:element ref="date" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="auteur"> <xsd:complexType> <xsd:sequence>

<xsd:element ref="nom" minOccurs="1" maxOccurs="1" /> <xsd:element ref="prenom" minOccurs="1" maxOccurs="1" /> </xsd:sequence>

</xsd:complexType> </xsd:element>

<xsd:element name="titre" type="xsd:string" /> <xsd:element name="date" type="xsd:date" /> <xsd:element name="nom" type="xsd:string" /> <xsd:element name="prenom" type="xsd:string" />

XML  Schema  est  aujourd’hui  adopté  par  les  fournisseurs  de  base  de  données  en  tant  que  format  de  fichier  pour  importer  et  exporter  les  métadonnées  (description  des  tables,  des  colonnes et leurs types…) mais aussi dans le monde java par les éditeurs de serveurs pour  décrire la structure voir même pour la définition de classes. 

XML  Schema  couplé  à  XML  Namespaces  sont  les  briques  de  base  des  mécanismes  des  services  Web.  Ils  sont  utilisés  pour  exprimer  les  structures  de  données  complexes  figurant  dans les messages échangés : requêtes, résultats et erreurs éventuelles.  

Documents relatifs