1 / 22

XML

XML. Introduction. XML: e X tensible M arkup L anguage Défini par le consortium W3C A l’origine, proposé comme langage d’annotation (en remplacement ou en complément à HTML, SGML, …) pas en tant que langage pour BD Les documents contiennent des tags qui décrivent le contenu <Cours>

tallis
Download Presentation

XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML

  2. Introduction • XML: eXtensible Markup Language • Défini par le consortium W3C • A l’origine, proposé comme langage d’annotation (en remplacement ou en complément à HTML, SGML, …) pas en tant que langage pour BD • Les documents contiennent des tags qui décrivent le contenu <Cours> <Titre_cours>XML</Titre_cours> <Section> <Titre>Introduction</Titre> <Texte> XML: eXtensible …</Texte> </Section> … </Cours>

  3. Introduction • Contrairement à HTML • On peut définir nous même les tags • On ne s"intéresse a priori qu’au contenu et non à la forme de la présentation du document • La présentation est définie en des endroits différents • Le but du W3C était (est ?) de remplacer HTML pour ajouter de la sémantique aux documents du WEB

  4. Introduction • Actuellement, XML est plutôt utilisé comme langage d’échange de données entre applications • Plusieurs communautés ont défini des standards de représentation de données basés sur XML • ChemML, BSML (BioSequenceML), GraphML, … • Chaque standard définit des restrictions pour valider les documents en utilisant • Des outils de spécification de type • Les DTD (Document Type Description) • XML schemas • Une description textuelle de la sémantique • XML autorise l’ajout de nouveaux tags, mais ceux-ci sont contraints par les DTD • Plusieurs outils pour valider, interroger et afficher les documents XML

  5. Structure d’un document XML(1) • Tag: c’est le label ou l’étiquette d’une partie des données • Élément : c’est une partie de données commençant par un <nom_de_tag> et se terminant par </nom_de_tag> • Les éléments peuvent être imbriqués • Les éléments doivent être correctement imbriqués <personne> <nom> Dupont <prénom> Jean </prénom></nom> </personne> • Chaque document doit obligatoirement n’avoir qu’un seul élément au niveau le plus haut

  6. L’imbrication d’éléments(1) • L’imbrication est utile lors du transfert de données <commandes> <commande> <num_cde> 112 </num_cde> <client> ABCD </client> <produit> <num_prod> 123_132</num_prod> <prix> 200 </prix> <qté> 40 </qté> </produit> <produit> … </produit> </commande> <commande> … </commande> </commandes>

  7. L’imbrication d’éléments (2) L’imbrication est prohibée ou découragée dans les bases de données relationnelles • La théorie de la normalisation nous incite à ne pas créer la table Cde(NumC, DateC, NumProduit, num_cl, nom_cli, Prix, Quantité) • En BD relationnelle, l’imbrication est remplacée par le concept de clé étrangère Cde(NumC, DateC, num_cl), Cli(num_cl, nom_cli), CP(NumC, numP, quantité), Prod(NumProduit, Prix) • L’imbrication est appropriée quand il faut transférer les données car les application externes n’ont pas un accès direct aux données référencées par les clés étrangères

  8. Structure d’un document XML (2) • Le mixage de texte avec les sous-éléments est autorisé dans XML <lettre> Bonjour <destinataire> M. Dupont </destinataire> … </lettre> • Ceci est utile pour les documents du type texte auxquels on veut ajouter des « repères » mais déconseillé lorsqu’il s’agit de transférer des données • Tout le contenu doit être décrit !!

  9. Les attributs • Les éléments peuvent avoir des attributs <compte type="chèque"> <numC>150</numC> <solde>100</solde> … </compte> • Les attributs sont spécifiés par nom_att=valeur dans le tag de début de de l’élément • Un élément peut avoir plusieurs attributs <compte type="chèque" numC="150"> <solde>100</solde> </compte>

  10. Un peu plus sur la structure • Les éléments sans sous-éléments ou sans texte peuvent être abrégés <compte num="150" type="chèque" solde="100"/>

  11. Document bien formé • Un document est bien formé si • Il a une seule racine • Chaque tag ouvrant a un tag fermant qui lui correspond • Chaque attribut n’apparaît qu’une seule fois dans un tag ouvrant, sa valeur doit être spécifiée et entre "

  12. Les espaces de noms : Namspaces • Les données XML doivent être échangées entre organisations • Le même tag risque d’être utilisé avec différents sens causant des confusions • La spécification d’un nom unique pour un élément permet de résoudre le problème • Meilleur solution, utiliser Namespace:nom_local • Namespace: désigne une URI où les tags sont définis, ou bien un alias à une URL

  13. Espace de nom : (exemple) <société xmlns="http://abcd.com/societes" xmlns:per="http://abcd.com/personnes"> <nom> abcde </nom> <employés> <employé> <per:nom> Jean Dupont</nom> </employé> </employés> </société> • Le tag<nom> est utilisé avec deux sens, une première fois pour désigner le nom d’une société et une deuxième fois pour désigner le nom d’une personne. • Le Namespace par défaut est http://abcd.com/societes. L’autre a un alias " per "

  14. Définition du schéma • Le schéma d’une BD fixe l’organisation logique des données qu’on peut stocker ainsi que leurs types • Les documents XML ne sont pas obligés d’avoir un schéma • Cependant, quand il s’agit d’échanger des données, il devient nécessaire de fixer la structure pour pouvoir ensuite écrire les applications qui les exploitent • Il existe deux mécanismes • Les DTD (Document type definition) • Très utilisées • Les XML schemas • Plus récents, plus riches et bien plus compliquées donc moins utilisés

  15. Les DTD • Elles spécifient • Quels éléments peuvent apparaître dans le document • Quels attributs peuvent/doivent apparaître dans le document • Quels sous-éléments peuvent/doivent apparaître dans le document • Les DTD ne contraignent pas le type de données • Tout est chaîne de caractères • Syntaxe • <!ELEMENT élément (spécification_des-sous-éléments)> • <!ATTLIST élément(attributs)>

  16. Spécification des éléments dans une DTD • Les sous-éléments peuvent être spécifiés comme • Noms d’éléments • #PCDATA (chaînes de caractère) • EMPTY (pas de sous-éléments) • ANY (n’importe quoi) • Exemple <!ELEMENT livre(titre, année, auteur+, mot_clé*)> <!ELEMENT titre (#PCDATA)> <!ELEMENT année (#PCDATA)> <!ELEMENT auteur(nom, prénom)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prénom (#PCADATA)> <!ELEMENT mot_clé (#PCDATA)>

  17. Spécification des attributs dans une DTD • Pour chaque attribut • Son nom • Son type • CDATA (chaîne) • ID (identificateur ~clé) • IDREF (fait référence à un ID ~ clé étrangère) • IDREFS (ensemble de références) • Si • Il est obligatoire (#REQUIRED) • Il a une valeur par défaut (valeur) • Sinon (#IMPLIED) • Exemple: <!ATTLIST compte( type CDATA "chèque" Num ID #REQUIRED)> <!ATTLIST client( idCli ID #REQUIRED comptes IDREFS #REQUIRED)>

  18. XML Schema • C’est un outil plus sophistiqué que les DTD. Permet de spécifier • Les types • Contraintes sur les valeurs min/max • De nouveaux types utilisateur • XML schema est lui même défini en XML • Intégré aux Namespaces (contrairement aux DTD) • Permet de définir des clés et des clés étrangères • … • MAIS: BIEN PLUS COMPLQUE QUE LES DTD

  19. XML Schema: Exemple <xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema> <xsd element Name="banque" type ="banque_type"/> <xsd:element Name="compte"> <xsd:complexType> <xsd:sequence> <xsd:element Name="no_cte" type "xsd:string"/> <xsd:element Name="agence" type "xsd:string"/> <xsd:element Name="solde" type "xsd:decimal"/> </xsd:sequence> </xsd:complexType> </xsd:element> … définition du client … <xsd:complexType Name="banque_type"> <xsd:sequence> <xsd:element ref="compte" minOcuurs="0" maxOccurs="unbounded"/> <xsd:element ref="client" minOcuurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:schema>

  20. Modèle arborescent (1) <?xml version="1.0" encoding="ISO-8859-1"?> <CINEMA No = "125"> <NOM> Epée de Bois </NOM> <Adresse> 100 rue neuve </Adresse> <Bus> Ligne F </Bus> </CINEMA>

  21. Modèle arborescent (2) No 125 CINEMA NOM ADRESSE BUS 100 rue neuve Epée de Bois Ligne F Les nœuds sont des éléments, des attributs ou des chaînes (nœuds terminaux)

  22. Modèle arborescent • Les nœuds éléments ont des éléments fils qui peuvent être soit des éléments, soit des attributs soit des chaînes • Les fils d’un élément sont triés dans l’ordre de leur apparition dans le document XML • Tous les nœuds ont un et un seul parent sauf la racine • Les nœuds attributs ont obligatoirement un fils de type chaîne mais pas de petit-fils

More Related