II. Conception et Manipulation des Documents - PowerPoint PPT Presentation

About This Presentation
Title:

II. Conception et Manipulation des Documents

Description:

Une feuille de style pour pr senter les donn es. DTD ou/et sch ma ... INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN. double -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 39
Provided by: george558
Category:

less

Transcript and Presenter's Notes

Title: II. Conception et Manipulation des Documents


1
II. Conception et Manipulation des Documents
  • 1. Introduction
  • 2. DTD
  • 3. Schéma
  • 4. Outils

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 au jargon
  • 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!DOCTYPE Restaurant
  • lt!ELEMENT Restaurant (Nom, Adresse, (Telephone
    Manager), Menu?) gt
  • lt!ATTLIST Restaurant
  • categorie CDATA REQUIRED
  • type CDATA FIXED "francais" gt
  • lt!ELEMENT Nom (PCDATA)gt
  • lt!ELEMENT Adresse (No, Rue, Ville)gt
  • lt!ELEMENT No (PCDATA)gt
  • lt!ELEMENT Rue (PCDATA)gt
  • lt!ELEMENT Ville (PCDATA)gt
  • lt!ELEMENT Telephone (PCDATA)gt
  • lt!ELEMENT Manager (PCDATA)gt
  • lt!ELEMENT Menu EMPTYgt
  • lt!ATTLIST Menu
  • Nom CDATA REQUIREDgt

DTD
11
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 PUBLIC "http//www.myweb.fr/fic.dtd
    "gt

DTD
12
Insuffisance des DTD
  • Pas de types de données
  • difficile à interpréter par le récepteur
  • difficile à traduire en schéma objets
  • Pas en XML
  • langage spécifique
  • Propositions de compléments
  • XML-data de Microsoft
  • XML-schema du W3C
  • Questions ?

DTD
13
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
  • les types de données
  • Le schéma est spécifié en XML
  • pas de nouveau langage
  • balisage de déclaration
  • espace de nom spécifique xsd ou xs
  • Présente de nombreux avantages
  • structures de données avec types de données
  • extensibilité par héritage et ouverture
  • analysable à partir d'un parseur XML standard

Schema
14
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
15
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
16
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
17
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
18
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
19
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
20
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"Addresse"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"
    /gt
  • lt/xsdcomplexTypegt

Schema
21
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
  • ltxsdcomplexType name"AdresseC"gt
  • ltxsdcomplexContentgt
  • ltxsdextension base"Adresse"gt
  • ltxsdsequencegt
  • ltelement namecontinent
    typexsdstring/gt
  • lt/xsdsequencegt
  • lt/xsdextensiongt
  • lt/xsdcomplexContentgt
  • lt/xsdcomplexTypegt

Schema
22
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
23
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
24
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
25
Diagramme XML Spy
Schema
26
Diagramme de type (XML Spy)
Choix
Tas
Séquence
Schema
27
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
  • 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
28
Autres possibilités ...
  • Mixed Content
  • Empty Content
  • anyType
  • Annotations
  • Attribute Groups
  • Nil Values
  • Abstract Elements Types
  • Target Namespaces Unqualified Locals
  • Qualified Locals
  • Global vs. Local Declarations
  • Undeclared Target Namespaces
  • Substitution Groups

Schema
29
Comment concevoir DTD/Schema ?
  • A la main
  • syntaxe complexe, devient illisible
  • Interface graphique IDE
  • partir d'un fichier d'exemples
  • générer un premier schéma via l'outil
  • modifier le schéma graphiquement
  • A partir de UML
  • décrire les données avec UML (classes et
    relations)
  • complémenter le modèle (types, attributs ou
    éléments)
  • générer un modèle logique hiérarchique (messages)
  • transformer en schéma XML

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

Schema
31
Exemple de produits 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
32
HyperModel et Eclipse
Schema
33
4. Les outils de développement
  • IDE Integrated Developement Environment
  • Des éditeurs
  • De texte XML, parfois avec structure séparée
  • De schéma XML, avec interface graphique
  • De règles XSL, avec moteur de transformation
  • De requêtes XQuery, avec moteur sur document
  • De description WSDL, avec wrapper Web Service
  • Des interfaces XML
  • Aux fichiers
  • Aux bases de données
  • Aux applications
  • Le plus fameux XML Spy (voir démo.)

IDE
34
Quelques outils de travail
IDE
35
Stylus Studio
  • Editeur graphique de XML et schéma
  • XQuery requête, edition, debaugage et profilage
  • Interrogation et mise à jour de BD relationnelles
  • Support de XPath 2.0
  • Editeur et moteur XSLT
  • Composeur dappel de Web service

IDE
36
Oxygen
  • Editeur XML textuel et arborescent
  • Editeur XSLT 2.0, validation, transformation,
    debogage, moteurs variés (Xalan, Saxon, XSLTProc,
    MSXML,)
  • Editeur XQuery, débogueur, moteur doc.
  • Editeur et validateur XML Schema (diagramme),
    Relax NG (diagramme), NRL, DTD, Schematron.
  • Moteur de validation multiples Xerces, XSV,
    LIBXML, MSXML, MSXML.NET, Saxon, SQC
  • XML Diff et Merge.

IDE
37
Principaux poduits de Altova
  • Altova XMLSpy 2006 is the industry standard XML
    development environment for modeling, editing,
    debugging and transforming all XML technologies,
    then automatically generating runtime code in
    multiple programming languages.
  • Altova MapForce 2006 is the premier data mapping
    and Web services implementation tool with the
    power to integrate any combination of XML,
    database, text, and/or EDI files, and build Web
    services by mapping between WSDL operations.
  • Altova StyleVision 2005 is the ultimate
    electronic forms, database report, and stylesheet
    designer for transforming XML and database
    content into HTML, PDF and Word/RTF output.
    StyleVision supports XSLT 1.0/2.0, XSLFO, and
    all major database
  • Altova UModel 2006 is the starting point for
    successful software development. Visually design
    application models and generate Java or C code,
    or reverse engineer existing programs into UML
    2.1 diagrams. It is the simple, cost-effective
    way to draw on UML.
  • Altova DiffDog 2005 is the dedicated
    differencing utility for developers and power
    users. This easy, powerful synchronization tool
    quickly compares files and folders then
    highlights differences and merges content via an
    elegant GU
  • Altova Authentic 2005 is a FREE content editor
    that allows non-technical users to modify content
    in XML documents and databases. Just fill in
    electronic forms using the intuitive,
    word-processor style interface, and your data is
    instantly updated.

IDE
38
Bilan DTD, Schéma, IDE
  • 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) mais
    suivi
  • Un IDE est indispensable
  • Et de moins en moins gratuit
  • Questions ?

IDE
Write a Comment
User Comments (0)
About PowerShow.com