Conception et manipulations des documents
Download
1 / 48

Conception et Manipulations des Documents - PowerPoint PPT Presentation


  • 189 Views
  • Uploaded on

Conception et Manipulations des Documents . 1. Introduction 2. DTD 3. Schéma 4. Outils. 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Conception et Manipulations des Documents' - lotus


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Conception et manipulations des documents l.jpg

Conception et Manipulations des Documents

1. Introduction

2. DTD

3. Schéma

4. Outils


1 introduction l.jpg
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


Validit des documents l.jpg
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


2 dtd l.jpg
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


D claration d l ment simple l.jpg
Déclaration d'élément simple

  • <! ELEMENT balise (définition) >

    • 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

      • <! ELEMENT Nom (#PCDATA)>

      • <Nom>Victor Hugo</Nom>

DTD


D claration d l ment compos l.jpg
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 :

    <! ELEMENT balise (composition) >

DTD


Exemple d l ment compos l.jpg
Exemple d'élément composé

  •  <!ELEMENT personne (nom, prenom+, tel?, adresse) > 

    • <!ELEMENT nom (#PCDATA) > 

    • <!ELEMENT prenom (#PCDATA) > 

    • <!ELEMENT tel(#PCDATA) > 

    • <!ELEMENT email (#PCDATA) >

    • <!ELEMENT adresse (ANY) >

  • <personne> 

    <nom>Hugo</nom> 

    <prenom>Victor</prenom> 

    <prenom>Charles</prenom>

    <tel>01120243</tel> 

    <adresse><rue></rue><ville>Paris</ville></adresse>

      </personne>

DTD


D claration d attributs l.jpg
Déclaration d'attributs

  • <! ATTLIST balise Attribut Type Mode >

  • 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 |

      • <! ATTLIST balise Attribut (Valeur1 | Valeur2 | ... ) >

    • 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


Exemple d attributs l.jpg
Exemple d'attributs

<! ATTLIST personne

num ID,

age CDATA,

genre (Masculin | Feminin ) >

<!ELEMENT auteur (#PCDATA) > 

<!ELEMENT editeur (#PCDATA) > 

<!ATTLIST auteur genre (Masculin | Feminin ) #REQUIRED ville CDATA #IMPLIED>

<!ATTLIST editeur ville CDATA #FIXED "Paris">

DTD


Exemple de dtd l.jpg
Exemple de DTD

<!ELEMENT doc (livre* | article+) >

<!ELEMENT livre (titre, auteur+) >

<!ELEMENT article (titre, auteur*) >

<!ELEMENT titre(#PCDATA) >

<!ELEMENT auteur(nom, adresse) >

<!ATTLIST auteur id ID #REQUIRED >

<!ELEMENT nom(prenom?, nomfamille) >

<!ELEMENT prenom (#PCDATA) >

<!ELEMENT nomfamille (#PCDATA) >

<!ELEMENT adresse (ANY) >

DTD


Exemple de dtd interne l.jpg
Exemple de DTD interne

<?XML version="1.0" standalone="yes"?>

<!DOCTYPE CATALOGUE [

<!ELEMENT CATALOGUE (VINS+)>

<!ELEMENT VINS (SPECIFICATION+, ANNEE, PRIX)>

<!ATTLIST VINS NOM CDATA #REQUIRED>

<!ELEMENT SPECIFICATION EMPTY>

<!ATTLIST SPECIFICATION PROVENANCE CDATA #REQUIRED COULEUR CDATA #REQUIRED>

<!ELEMENT ANNEE (#PCDATA)>

<!ELEMENT PRIX (#PCDATA)> ]>

<CATALOGUE>

<VINS NOM="Saint-Emilion">

<SPECIFICATION PROVENANCE="Bordeaux" COULEUR="Rouge"/>

<ANNEE>1999</ANNEE>

<PRIX>25 €</PRIX>

</VINS>……...

</CATALOGUE>

DTD


Exemple de id et idref l.jpg
Exemple de ID et IDREF

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE DOCUMENT [

<!ELEMENT DOCUMENT(PERSONNE*)>

<!ELEMENT PERSONNE (#PCDATA)>

<!ATTLIST PERSONNE PNUM ID #REQUIRED>

<!ATTLIST PERSONNE MERE IDREF #IMPLIED>

<!ATTLIST PERSONNE PERE IDREF #IMPLIED>

]>

<DOCUMENT>

<PERSONNE PNUM = "P1">Marie</PERSONNE>

<PERSONNE PNUM = "P2">Jean</PERSONNE>

<PERSONNE PNUM = "P3" MERE="P1" PERE="P2">Pierre</PERSONNE>

<PERSONNE PNUM = "P4" MERE="P1" PERE="P2">Julie</PERSONNE>

</DOCUMENT>

DTD


Dtd externe l.jpg
DTD externe

  • Modèle pour plusieurs documents

    • partage des balises, attributs et structures

  • Définition locale ou externe

    • <!DOCTYPE doc SYSTEM "doc.dtd">

    • <!DOCTYPE doc PUBLIC

      "www.myweb.com/doc.dtd">

  • Exemple de document

    <?xml version="1.0" standalone="no"?>

    <!DOCTYPE VINS SYSTEM "vins.dtd">

    ...

DTD


Dtd entit param tre l.jpg
DTD : Entité paramètre

  • Permet la définition d'un groupe d'éléments sous un nom (macro)

    • <!ENTITY %nom "definition">

  • Réutilisable dans une DTD par simple appel :

    • %nom;

  • Exemple :

    • <!ENTITY %genres "(homme | femme)"><!ATTLIST auteur genre %genres; #REQUIRED>

  • Peuvent être externes :

    • <!ENTITY %mpeg PUBLIC "http://www.myweb.fr/fic.dtd">

DTD


Quelques r gles d criture l.jpg
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


Insuffisance des dtd l.jpg

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 (BizTalk)

XML-schema du W3C

Questions ?

Insuffisance des DTD

DTD


3 xml sch ma l.jpg
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


Objectifs des sch mas l.jpg
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


Le mod le des sch mas l.jpg
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


Les types simples 1 l.jpg

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

Les types simples (1)

Schema


Les types simples 2 l.jpg

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

13:20:00.000, 13:20:00.000-05:00

dateTime

1999-05-31T13:20:00.000-05:00

duration

P1Y2M3DT10H30M12.3S

date

1999-05-31

gMonth

--05--

gYear

1999

Les types simples (2)

Schema


Les types simples 3 l.jpg

gYearMonth

1999-02

gDay

---31

gMonthDay

--05-31

Name

shipTo

QName

po:USAddress

NCName

USAddress

anyURI

http://www.example.com/,

http://www.example.com/doc.html#ID5

language

en-GB, en-US, fr

ID

"A212" 

IDREF

"A212"

IDREFS

"A212" "B213"

ENTITY

ENTITIES

NOTATION

NMTOKEN, NMTOKENS

US

Brésil Canada Mexique

Les types simples (3)

Schema


Commandes de base xsd l.jpg
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


Les types complexes l.jpg
Les types complexes

  • Définition d'objets complexes

    • <sequence> : collection ordonnée d'éléments typés

    • <all> : collection non ordonnée d'éléments typés

    • <choice>: choix entre éléments typés

  • Exemple

    <xsd:complexType name="AddresseFR">

    <xsd:sequence>

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

    <xsd:element name="rue" type="xsd:string"/>

    <xsd:element name="ville" type="xsd:string"/>

    <xsd:element name="codep" type="xsd:decimal"/>

    </xsd:sequence>

    <xsd:attribute name="pays" type="xsd:NMTOKEN" fixed="FR"/>

    </xsd:complexType>

Schema


H ritage de types l.jpg

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 :

<complexType name="AdressePays">

<complexContent>

<extension base="Adresse">

<sequence>

<element name="pays" type="string"/>

</sequence>

</extension>

</complexContent>

</complexType>

Héritage de types

Schema


Les patterns l.jpg
Les patterns

  • Contraintes sur type simple prédéfini

  • Utilisation d'expression régulières

    • Similaires à celles de Perl

  • Exemple

    <xsd:simpleType name="NumItem">

    <xsd:restriction base="xsd:string">

    <xsd:pattern value="\d{3}-[A-Z]{2}"/>

    </xsd:restriction>

    </xsd:simpleType>

Schema


Xml schema exemple 1 l.jpg
XML Schema : exemple (1)

<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<xsd:element name="commande" type="CommandeType"/>

<xsd:element name="commentaire" type="xsd:string"/>

<xsd:complexType name="CommandeType">

<xsd:sequence>

<xsd:element name="livrer" type="Adresse"/>

<xsd:element name="facturer" type="Adresse"/>

<xsd:element ref="commentaire" minOccurs="0"/>

<xsd:element name="produits" type="ProduitType"/>

</xsd:sequence>

<xsd:attribute name="date_com" type="xsd:date"/>

</xsd:complexType>

Schema


Xml schema exemple 2 l.jpg
XML Schema : exemple (2)

<xsd:complexType name="ProduitType">

<xsd:sequence>

<xsd:element name="produit" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="nom_prod" type="xsd:string"/>

<xsd:element name="quantite">

<xsd:simpleType> <xsd:restriction base="xsd:positiveInteger">

<xsd:maxExclusive value="100"/> </xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="prix" type="xsd:decimal"/>

<xsd:element ref="commentaire" minOccurs="0"/>

<xsd:element name="date_livraison" type="xsd:date" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="num_prod" type="xsd:positiveInteger" use="required"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence> </xsd:complexType> </xsd:schema>

Schema



Diagramme de type xml spy l.jpg
Diagramme de type (XML Spy)

Choix

Tas

Séquence

Schema


R utilisation de d clarations l.jpg
Réutilisation de déclarations

  • Possibilité de référencer un élément plus global

    • <element ref="Nom" /> (ci-dessus)

    • Importe l'élément et son type

  • Possibilité d'inclure les types associés à un espace de noms

    • <import nameSpace = "http:// ..."

    • schemaLocation = "http:// ..." />

  • Possibilité d'étendre un schéma

    • <redefine schemaLocation="http:// ..."/>

    • .... Extensions ...

    • </redefine>

Schema


Autres possibilit s l.jpg

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

Autres possibilités ...

Schema


Comment concevoir dtd schema l.jpg
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 données avec UML

    • générer un modèle logique hiérarchique

Schema


Rappels uml l.jpg

Modélisation de données et traitements

Concepts pour les données

paquetage (package)

classe

attribut

association

agrégation

généralisation

Contraintes

associations 0..* ou 1..* (*,+)

attributs avec nul possible (?)

généralisation exclusive

Diagramme de classes

Rappels UML

Classe3

Classe1

1..*

Attribut1

Attribut2

{exclusif}

SClasse2

SClasse1

*

Classe4

Schema


Conception uml de sch mas l.jpg
Conception UML de schémas

  • Possible à partir d'une modélisation UML

    • Définir des paquetages de classes et associations

    • Orienter les associations  arbre

    • Préciser les types de données

    • Possibilité d'hériter de stéréotypes XML

  • Voir "Modeling XML Applications with UML"

    • David Carlson, A. Wesley

  • Intégrer aux produits

    • Rose, Objecteering, Designer, HyperModel ...

Schema


De uml xml les choix l.jpg
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..* (+)

Schema


Exemple publier une bd l.jpg
Exemple: Publier une BD

Package Client

Package Commandes

Commande

Client

1..*

1..*

passer

num int

code : int

statut : char

nom : text

total : float

type : CCC

0..*

livrer

gérer

0..*

0..*

1..*

1..*

Magasin

Ligne

numero : int

quantite : int

rue : text

article : CCNNN

complement : text

statut : char

code_postal : int

total : FRF

ville : text

Schéma UML

Schema


Vue hi rarchique l.jpg

Orientation des associations

obtenir un arbre

éviter les duplicats

Génération des liens

attributs IDREF externes

ou hyperliens

Vue hiérarchique

Package Commandes

Commande

num int

Client refID

statut : char

Magasin refID

total : float

1..*

1..*

Ligne

quantite : int

article : CCNNN

statut : char

total : FRF

Schema


D finition des types complexes l.jpg
Définition des types complexes

  • <!-- Types de base-->

  • <!ENTITY % int "(#PCDATA)">

  • <!ENTITY % float "(#PCDATA)">

  • <!ENTITY % char "(#PCDATA)">

  • <!ENTITY % string "(#PCDATA)">

  • <!-- Classe Commande -->

  • <!ELEMENT Commande (cstatut, ctotal, Ligne+)>

  • <!ATTLIST Commande NUM ID #REQUIRED>

  • <!ELEMENT cstatut %char;>

  • <!ELEMENT ctotal %float;>

  • <!-- Classe Ligne -->

  • <!ELEMENT Ligne (article, quantite, statut?, total?)>

  • <!ELEMENT article %string;>

  • <!ELEMENT quantite %int;>

  • <!ELEMENT lstatut %char;>

  • <!ELEMENT ltotal %float;>

Schema


Composition du message l.jpg

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE MESSAGE [

<!ELEMENT MESSAGE (Commande*)>

<!ENTITY %Type SYSTEM "Type.dtd">

%Type;

]>

<MESSAGE>

<Commande NUM="1">

<cstatut> A </cstatut>

<ctotal>1000</ctotal>

<Ligne>

<article>212</article>

<quantite>100</quantite>

</Ligne>

</Commande>

<Commande NUM="2">

<cstatut> B </cstatut>

<ctotal>1000</ctotal>

<Ligne>

<article>212</article>

<quantite>300</quantite>

</Ligne>

<Ligne>

<article>412</article>

<quantite>400</quantite>

</Ligne>

</Commande>

</MESSAGE>

Composition du message

Schema


Produits hypermodel l.jpg

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

Produits: HyperModel

Schema



4 les outils de d veloppement l.jpg
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.)



Stylus studio l.jpg
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 d’appel de Web service


Oxygen l.jpg
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.


Principaux poduits de altova l.jpg
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, XSL:FO, 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.


Bilan dtd sch ma ide l.jpg

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 ?

Bilan DTD, Schéma, IDE

Schema