Mod - PowerPoint PPT Presentation

About This Presentation
Title:

Mod

Description:

ANY : L' l ment peut contenir tout type de donn e. EMPTY : L' l ment ne contient pas de ... PCDATA : L' l ment doit contenir une cha ne de caract re ... – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 44
Provided by: george558
Category:
Tags: contenir | mod

less

Transcript and Presenter's Notes

Title: Mod


1
Modélisation des documents DTD et Schéma
  • 1. Introduction
  • 2. DTD
  • 3. Schémas

2
1. Introduction
  • Un document XML peut être associé à
  • une DTD ou un schéma pour décrire les balises
  • Une feuille de style pour présenter les données
  • DTD ou/et schéma permettent de définir son propre
    langage basé sur XML
  • Vocabulaire (balises)
  • Grammaire (imbrications)
  • ? Dialecte ou Jargon

Introduction
3
Validité des documents
  • Document bien formé (Well Formed document)
  • balises correctement imbriquées
  • Analysable (parsable) et manipulable
  • pas nécessairement valide par rapport à la DTD
  • Document valide (Valid document)
  • bien formé conforme à la DTD ou au schéma

Introduction
4
2. DTD
  • Permet de définir le vocabulaire et la
    structure qui seront utilisés dans le document
    XML
  • Grammaire du langage dont les phrases sont des
    documents XML (instances)
  • Peut être mise dans un fichier (DTD externe) et
    être appelée dans le document XML

DTD
5
Déclaration d'élément simple
  • lt! ELEMENT balise (définition) gt
  • Le paramètre définition représente soit un type
    de donnée prédéfini, soit un élément de données
    composé, constitué lui même d'éléments
  • Types prédéfinis
  • ANY L'élément peut contenir tout type de
    donnée
  • EMPTY L'élément ne contient pas de données
    spécifiques
  • PCDATA L'élément doit contenir une chaîne de
    caractère
  • Exemple
  • lt! ELEMENT Nom (PCDATA)gt
  • ltNomgtVictor Hugolt/Nomgt

DTD
6
Déclaration d'élément composé
  • Définit une séquence ou un choix d'éléments
  • Syntaxe spécifique avec opérateurs de composition
    d'éléments
  • lt! ELEMENT balise (composition) gt

DTD
7
Exemple d'élément composé
  •  lt!ELEMENT personne (nom, prenom, tel?, adresse)
    gt 
  • lt!ELEMENT nom (PCDATA) gt 
  • lt!ELEMENT prenom (PCDATA) gt 
  • lt!ELEMENT tel(PCDATA) gt 
  • lt!ELEMENT email (PCDATA) gt
  • lt!ELEMENT adresse (ANY) gt
  • ltpersonnegt 
  • ltnomgtHugolt/nomgt 
  • ltprenomgtVictorlt/prenomgt 
  • ltprenomgtCharleslt/prenomgt
  • lttelgt01120243lt/telgt 
  • ltadressegtltruegtlt/ruegtltvillegtParislt/villegtlt/adressegt
  •   lt/personnegt

DTD
8
Déclaration d'attributs
  • lt! ATTLIST balise Attribut Type Mode gt
  • balise spécifie l'élément auquel est attaché
    l'attribut
  • Attribut est le nom de l'attribut déclaré
  • Type définit le type de donnée de l'attribut
    choisi parmi
  • CDATA
  • Chaînes de caractères entre guillemets ("aa") non
    analysées
  • Enumération
  • Liste de valeurs séparées par
  • lt! ATTLIST balise Attribut (Valeur1 Valeur2
    ... ) gt
  • ID et IDREF
  • Clé et référence à clé
  • Mode précise le caractère obligatoire ou non de
    l'attribut
  • REQUIRED, IMPLIED ou FIXED

DTD
9
Exemple d'attributs
  • lt! ATTLIST personne
  • num ID,
  • age CDATA,
  • genre (Masculin Feminin ) gt
  • lt!ELEMENT auteur (PCDATA) gt 
  • lt!ELEMENT editeur (PCDATA) gt 
  • lt!ATTLIST auteur genre (Masculin
    Feminin ) REQUIRED ville CDATA
    IMPLIEDgt
  • lt!ATTLIST editeur ville CDATA
    FIXED "Paris"gt

DTD
10
Exemple de DTD
  • lt!ELEMENT doc (livre article) gt
  • lt!ELEMENT livre (titre, auteur) gt
  • lt!ELEMENT article (titre, auteur) gt
  • lt!ELEMENT titre(PCDATA) gt
  • lt!ELEMENT auteur(nom, adresse) gt
  • lt!ATTLIST auteur id ID REQUIRED gt
  • lt!ELEMENT nom(prenom?, nomfamille) gt
  • lt!ELEMENT prenom (PCDATA) gt
  • lt!ELEMENT nomfamille (PCDATA) gt
  • lt!ELEMENT adresse (ANY) gt

DTD
11
Exemple de DTD interne
  • lt?XML version"1.0" standalone"yes"?gt
  • lt!DOCTYPE CATALOGUE
  • lt!ELEMENT CATALOGUE (VINS)gt
  • lt!ELEMENT VINS (SPECIFICATION, ANNEE, PRIX)gt
  • lt!ATTLIST VINS NOM CDATA REQUIREDgt
  • lt!ELEMENT SPECIFICATION EMPTYgt
  • lt!ATTLIST SPECIFICATION PROVENANCE CDATA
    REQUIRED COULEUR CDATA REQUIREDgt
  • lt!ELEMENT ANNEE (PCDATA)gt
  • lt!ELEMENT PRIX (PCDATA)gt gt
  • ltCATALOGUEgt
  • ltVINS NOM"Saint-Emilion"gt
  • ltSPECIFICATION PROVENANCE"Bordeaux"
    COULEUR"Rouge"/gt
  • ltANNEEgt1999lt/ANNEEgt
  • ltPRIXgt25 lt/PRIXgt
  • lt/VINSgt...
  • lt/CATALOGUEgt

DTD
12
Exemple de ID et IDREF
  • lt?xml version"1.0" standalone"yes"?gt
  • lt!DOCTYPE DOCUMENT
  • lt!ELEMENT DOCUMENT(PERSONNE)gt
  • lt!ELEMENT PERSONNE (PCDATA)gt
  • lt!ATTLIST PERSONNE PNUM ID REQUIREDgt
  • lt!ATTLIST PERSONNE MERE IDREF IMPLIEDgt
  • lt!ATTLIST PERSONNE PERE IDREF IMPLIEDgt
  • gt
  • ltDOCUMENTgt
  • ltPERSONNE PNUM "P1"gtMarielt/PERSONNEgt
  • ltPERSONNE PNUM "P2"gtJeanlt/PERSONNEgt
  • ltPERSONNE PNUM "P3" MERE"P1"
    PERE"P2"gtPierrelt/PERSONNEgt
  • ltPERSONNE PNUM "P4" MERE"P1"
    PERE"P2"gtJulielt/PERSONNEgt
  • lt/DOCUMENTgt

DTD
13
DTD externe
  • Modèle pour plusieurs documents
  • partage des balises, attributs et structures
  • Définition locale ou externe
  • lt!DOCTYPE doc SYSTEM "doc.dtd"gt
  • lt!DOCTYPE doc PUBLIC
  • "www.myweb.com/doc.dtd"gt
  • Exemple de document
  • lt?xml version"1.0" standalone"no"?gt
  • lt!DOCTYPE VINS SYSTEM "vins.dtd"gt
  • ...

DTD
14
DTD Entité paramètre
  • Permet la définition d'un groupe d'éléments sous
    un nom (macro)
  • lt!ENTITY nom "definition"gt
  • Réutilisable dans une DTD par simple appel
  • nom
  • Exemple
  • lt!ENTITY genres "(homme femme)"gtlt!ATTLIST
    auteur genre genres REQUIREDgt
  • Peuvent être externes
  • lt!ENTITY mpeg SYSTEM "http//www.myweb.fr"gt

DTD
15
DTD Entité générale
  • Permet la définition d'un texte sous un nom
  • lt!ENTITY nom "texte"gt
  • Réutilisable dans un document par simple appel
  • nom
  • lt?xml version"1.0"?gt
  • lt!DOCTYPE exemple
  • lt!ELEMENT exemple (PCDATA, important)gt
  • lt!ELEMENT important (PCDATA)gt
  • lt!ENTITY cie "Les Vignerons Réunis"gt
  • lt!ENTITY imp "ltimportantgtAttention!lt/importan
    tgt"gt gt
  • ltexemplegt cie imp lt/exemplegt

DTD
16
Quelques règles d'écriture
  • Modularité
  • définir dans des entités séparées les parties
    réutilisables
  • Précédence
  • Regrouper les déclarations d'entités en tête
  • Abstraction
  • Utiliser des entités pour les modèles de contenus
  • Spécificité
  • Éviter les DTD trop générales
  • Simplicité
  • Découper les DTD trop complexes

DTD
17
Comment concevoir une DTD ?
  • Méthode UML-XML
  • décrire données avec UML
  • utiliser les concepts UML
  • classe
  • attribut
  • agrégation
  • association
  • généralisation
  • fixer les cardinalités
  • associations 0.. ou 1.. (,)
  • attributs 0 ou 1 (?)
  • traduire de manière semi-automatique en XML
  • (DTD ou schéma)

Classe3
Classe1
1..
Attribut1 Attribut2
exclusif
SClasse2
SClasse1

Classe4
DTD
18
Exercice
  • Définir les DTD pour publier une BD

Clients
Commandes
1..
1..
passer
code int
num int
nom text
statut char
type CCC
total float
0..
livrer
gérer
0..
0..
1..
1..
Magasins
Lignes
numero int
quantite int
rue text
article CCNNN
complement text
statut char
code_postal int
total FRF
ville text
Schéma UML
DTD
19
De UML à XML les choix
  • Choix des messages (documents)
  • agrégation d'éléments
  • classes fortement liées
  • N instances
  • Choix des identifiants et liens
  • références pour associations
  • Attributs versus éléments
  • les attributs jouent un rôle descriptif ("méta")
  • Choix des cardinalités
  • obligatoire ou optionnel (?)
  • 0.. () ou 1.. ()

DTD
20
Définition des types et classes
  • lt!-- Types de base--gt
  • lt!ENTITY int "(PCDATA)"gt
  • lt!ENTITY float "(PCDATA)"gt
  • lt!ENTITY char "(PCDATA)"gt
  • lt!ENTITY string "(PCDATA)"gt
  • lt!-- Classe Commande --gt
  • lt!ELEMENT Commande (cstatut, ctotal, Ligne)gt
  • lt!ATTLIST Commande NUM ID REQUIREDgt
  • lt!ELEMENT cstatut chargt
  • lt!ELEMENT ctotal floatgt
  • lt!-- Classe Ligne --gt
  • lt!ELEMENT Ligne (article, quantite, statut?,
    total?)gt
  • lt!ELEMENT article stringgt
  • lt!ELEMENT quantite intgt
  • lt!ELEMENT lstatut chargt
  • lt!ELEMENT ltotal floatgt

DTD
21
Définition DTD MESSAGE
  • lt?xml version"1.0" standalone"yes"?gt
  • lt!DOCTYPE MESSAGE
  • lt!ELEMENT MESSAGE (Commande)gt
  • lt!ENTITY Type SYSTEM "Type.dtd"gt
  • Type
  • gt
  • ltMESSAGEgt
  • ltCommande NUM"1"gt
  • ltcstatutgt A lt/cstatutgt
  • ltctotalgt1000lt/ctotalgt
  • ltLignegt
  • ltarticlegt212lt/articlegt
  • ltquantitegt100lt/quantitegt
  • lt/Lignegt
  • lt/Commandegt
  • ltCommande NUM"2"gt
  • ltcstatutgt B lt/cstatutgt
  • ltctotalgt1000lt/ctotalgt
  • ltLignegt
  • ltarticlegt212lt/articlegt
  • ltquantitegt300lt/quantitegt
  • lt/Lignegt
  • ltLignegt
  • ltarticlegt412lt/articlegt

DTD
22
Insuffisance des DTD
  • Pas de types de données
  • difficile à interpréter (coercition nécessaire)
  • difficile à traduire en schéma objets
  • Pas en XML
  • langage spécifique
  • Propositions de compléments
  • XML-data de Microsoft (BizTalk)
  • XML-schema du W3C
  • Questions ?

DTD
23
3. XML Schéma
  • Un schéma d'un document définit
  • les éléments possibles dans le document
  • les attributs associés à ces éléments
  • la structure du document et les types de données
  • Le schéma est spécifié en XML
  • pas de nouveau langage
  • balisage de déclaration
  • domaine spécifique xsd
  • Présente de nombreux avantages
  • structures de données avec types de données
  • extensibilité par héritage et ouverture
  • analysable par un parseur XML standard

Schema
24
Objectifs des schémas
  • Reprendre les acquis des DTD
  • Plus riche et complet que les DTD
  • Permettre de typer les données
  • Eléments simples et complexes
  • Attributs simples
  • Permettre de définir des contraintes
  • Existence, obligatoire, optionnel
  • Domaines, cardinalités, références
  • Patterns, ...
  • S'intégrer à la galaxie XML
  • Espace de noms
  • Infoset (structure d'arbre logique)

Schema
25
Le modèle des schémas
  • Déclaration des éléments et attributs
  • Nom
  • Typage similaire à l'objet
  • Spécification de types simples
  • Grande variété de types
  • Génération de types complexes
  • Séquence (Sequence)
  • Choix (Choice)
  • Tas (All)

Schema
26
Les types simples (1)
  • string
  • Confirm this is electric
  • normalizedString
  • Confirm this is electric
  • token
  • Confirm this is electric
  • byte
  • -1, 126
  • unsignedByte
  • 0, 126
  • base64Binary
  • GpM7
  • hexBinary
  • 0FB7
  • integer
  • -126789, -1, 0, 1, 126789
  • positiveInteger
  • 1, 126789
  • negativeInteger
  • -126789, -1
  • nonNegativeInteger
  • 0, 1, 126789
  • nonPositiveInteger
  • -126789, -1, 0
  • int
  • -1, 126789675
  • unsignedInt
  • 0, 1267896754

Schema
27
Les types simples (2)
  • long
  • -1, 12678967543233
  • unsignedLong
  • 0, 12678967543233
  • short
  • -1, 12678
  • unsignedShort
  • 0, 12678
  • decimal
  • -1.23, 0, 123.4, 1000.00
  • float
  • -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN
  • double
  • -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN
  • boolean
  • true, false 1, 0
  • time
  • 132000.000, 132000.000-0500
  • dateTime
  • 1999-05-31T132000.000-0500
  • duration
  • P1Y2M3DT10H30M12.3S
  • date
  • 1999-05-31
  • gMonth
  • --05--
  • gYear
  • 1999

Schema
28
Les types simples (3)
  • gYearMonth
  • 1999-02
  • gDay
  • ---31
  • gMonthDay
  • --05-31
  • Name
  • shipTo
  • QName
  • poUSAddress
  • NCName
  • USAddress
  • anyURI
  • http//www.example.com/,
  • http//www.example.com/doc.htmlID5
  •  
  • language
  • en-GB, en-US, fr
  • ID
  • "A212" 
  • IDREF
  • "A212"
  • IDREFS
  • "A212" "B213"
  • ENTITY
  • ENTITIES
  • NOTATION
  • NMTOKEN, NMTOKENS
  • US
  • Brésil Canada Mexique

Schema
29
Commandes de base xsd
  • element association d'un type à une balise
  • attributs name, type, ref, minOccurs, maxOccurs,
    ...
  • attribute association d'un type à un attribut
  • attributs name, type
  • type simple les multiples types de base
  • entier, réel, string, time, date, ID, IDREF, ,
  • extensibles par des contraintes
  • type complexe une composition de types
  • définit une agrégation d'éléments typés

Schema
30
Les types complexes
  • Définition d'objets complexes
  • ltsequencegt collection ordonnée d'éléments typés
  • ltallgt collection non ordonnée d'éléments typés
  • ltchoicegt choix entre éléments typés
  • Exemple
  • ltxsdcomplexType name"AddresseFR"gt
  • ltxsdsequencegt
  • ltxsdelement name"nom" type"xsdstring"/gt
  • ltxsdelement name"rue" type"xsdstring"/gt
  • ltxsdelement name"ville"
    type"xsdstring"/gt
  • ltxsdelement name"codep"
    type"xsddecimal"/gt
  • lt/xsdsequencegt
  • ltxsdattribute name"pays" type"xsdNMTOKEN"
    fixed"FR"/gt
  • lt/xsdcomplexTypegt

Schema
31
Héritage de types
  • Définition de sous-types par héritage
  • Par extension ajout d'informations
  • Par restriction ajout de contraintes
  • Possibilité de contraindre la dérivation
  • Exemple
  • ltcomplexType name"AdressePays"gt
  • ltcomplexContentgt
  • ltextension base"Adresse"gt
  • ltsequencegt
  • ltelement name"pays" type"string"/gt
  • lt/sequencegt
  • lt/extensiongt
  • lt/complexContentgt
  • lt/complexTypegt

Schema
32
Les patterns
  • Contraintes sur type simple prédéfini
  • Utilisation d'expression régulières
  • Similaires à celles de Perl
  • Exemple
  • ltxsdsimpleType name"NumItem"gt
  • ltxsdrestriction base"xsdstring"gt
  • ltxsdpattern value"\d3-A-Z2"/gt
  • lt/xsdrestrictiongt
  • lt/xsdsimpleTypegt

Schema
33
XML Schema exemple (1)
  • ltxsdschema xmlnsxsd"http//www.w3.org/1999/XMLS
    chema"gt
  • ltxsdelement name"commande" type"CommandeType"/gt
  • ltxsdelement name"commentaire"
    type"xsdstring"/gt
  • ltxsdcomplexType name"CommandeType"gt
  • ltxsdsequencegt
  • ltxsdelement name"livrer" type"Adresse"/gt
  • ltxsdelement name"facturer" type"Adresse"/gt
  • ltxsdelement ref"commentaire" minOccurs"0"/gt
  • ltxsdelement name"produits" type"ProduitType"/
    gt
  • lt/xsdsequencegt
  • ltxsdattribute name"date_com" type"xsddate"/gt
  • lt/xsdcomplexTypegt

Schema
34
XML Schema exemple (2)
  • ltxsdcomplexType name"ProduitType"gt
  • ltxsdsequencegt
  • ltxsdelement name"produit" minOccurs"0"
    maxOccurs"unbounded"gt
  • ltxsdcomplexTypegt
  • ltxsdsequencegt
  • ltxsdelement name"nom_prod"
    type"xsdstring"/gt
  • ltxsdelement name"quantite"gt
  • ltxsdsimpleTypegt ltxsdrestriction
    base"xsdpositiveInteger"gt
  • ltxsdmaxExclusive value"100"/gt
    lt/xsdrestrictiongt
  • lt/xsdsimpleTypegt
  • lt/xsdelementgt
  • ltxsdelement name"prix" type"xsddecimal"/gt
  • ltxsdelement ref"commentaire"
    minOccurs"0"/gt
  • ltxsdelement name"date_livraison"
    type"xsddate" minOccurs"0"/gt
  • lt/xsdsequencegt
  • ltxsdattribute name"num_prod"
    type"xsdpositiveInteger" use"required"/gt
  • lt/xsdcomplexTypegt
  • lt/xsdelementgt
  • lt/xsdsequencegt lt/xsdcomplexTypegt
    lt/xsdschemagt

Schema
35
Diagramme XML Spy
Schema
36
Diagramme de type (XML Spy)
Choix
Tas
Séquence
Schema
37
Réutilisation de déclarations
  • Possibilité de référencer un élément plus global
  • ltelement ref"Nom" /gt (ci-dessus)
  • Importe l'élément et son type
  • Peut être utilisé pour importer un groupe
  • Possibilité d'inclure les types associés à un
    espace de noms
  • ltimport nameSpace "http// ..."
  • schemaLocation "http// ..." /gt
  • Possibilité d'étendre un schéma
  • ltredefine schemaLocation"http// ..."/gt
  • .... Extensions ...
  • lt/redefinegt

Schema
38
Autres possibilités ...
  • Mixed Content
  • Empty Content
  • anyType
  • Annotations
  • Attribute Groups
  • Nil Values
  • Specifying Uniqueness
  • Defining Keys their References
  • Namespaces, Schemas Qualification
  • Target Namespaces Unqualified Locals
  • Qualified Locals
  • Global vs. Local Declarations
  • Undeclared Target Namespaces
  • Substitution Groups
  • Abstract Elements Types

Schema
39
Conception de schémas
  • Possible à partir d'une modélisation UML
  • Généralisation de l'approche DTD
  • Préciser les types de données
  • Introduction de stéréotypes en UML
  • Voir "Modeling XML Applications with UML"
  • David Carlson, A. Wesley
  • Intégrer aux produits
  • Rose, Objecteering, HyperModel ...

Schema
40
Exemple Produit HyperModel
  • De XML à UML
  • et vice-versa
  • Représentation XMI du modèle UML
  • XMI jargon XML de l'OMG pour modèle objet
  • Traduction en toute sorte de modèle logique
  • Ajoutable à Eclipse
  • http//xmlmodeling.com

Schema
41
HyperModel et Eclipse
Schema
42
Quelques outils de travail
Editeur Outil Support
Tibco Turbo XML DTD, XSL Schéma
Altova XML Spy 5 DTD, Schéma XSL, Xquery
SyncRO Ltd. Oxygen 5 DTD, Schéma XSL, Xquery
Data Junction XML Junction Schéma
Insight Soft. XMLMate DTD, Schéma, XSL, XPath
XML Mind XMLMind Editor DTD, Schéma, XSL, XPath
Schema
43
Bilan DTD et Schéma
  • Les DTD définissent la grammaire des documents
  • Elles sont de plus en plus souvent remplacées par
    des schémas
  • Le standard est un peu complexe (Relax)
  • Questions ?

DTD et Schema
Write a Comment
User Comments (0)
About PowerShow.com