Saisie dynamique de XML

Slides:



Advertisements
Présentations similaires
PRESAGE-CTE Programme MED
Advertisements

CENTRE RH Création des sessions depuis le planning
Données structurées et XML
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
Echanges de Données Informatisées LABOratoires-commanditaires
Manuel Qualité, Structure et Contenus – optionnel
IREMIA : Institut de REcherche en Mathématiques et Informatique Appliquées Université de la Réunion Uniformisation des mécanismes de conception de SMA.
Transformation de documents XML
DTD Sylvain Salvati
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Thème 3 : plate-forme de modélisation et de gestion de référentiels XML étapes modélisation des structures (UML) gestion du référentiel de modélisation.
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Données structurées et XML
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Programmation Orientée Objet (POO)
TP 3-4 BD21.
CERN – Organisation Européenne pour la Recherche Nucléaire Services dInformation Administrative Le projet DocLeg et léchange électronique de données personnelles.
Introduction aux CMS.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Démarche de résolution de problèmes
Algorithmique et Programmation
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Administration de bases de données spatiales avec SavGIS
Type de contenu. © Partouche David / 2007 version 0.1 Colonne de site Une colonne de site permet de définir un champs qui sera exploitable au sein de.
Algo-Prog en Ada TD1 2 IMACS Romaric GUILLERM
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Techniques de test Boulanger Jean-Louis.
Une chaîne éditoriale développée dans le cadre du CIRM François Dagorn Journées pédagogiques de lIFSIC.
Staf 2x Cours de bases de données
Rappel (très) succint d’éléments techniques (XML, DTD, XSL, PHP)
DOCUMENT VALIDE 4 Obéir à une structure type prédéfini 4 Document valide = bien formé + obéir à une structure type définie dans une DTD 16 novembre 1999.
OPTIMA, 6 novembre 2008, BnF 1 un outil daide à la transcription Thomas PALFRAY Stéphane NICOLAS Thierry PAQUET L aboratoire d I nformatique, T raitement.
Roger Castonguay (MRQ) avec la collaboration de Richard Parent (SCT) et Pierre Chantelois (MIC) Juin 2002 Le défi des formulaires dans un contexte de prestation.
Désignation Chef de projet/section/groupe Création de la Divisionnal Request Rédaction des documents MS Information à l'acheteur Comité de spécification.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI Jean-Jacques DUMÉRY -1-
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
XML Plan du cours Introduction au fichier XML
8 - XML Cours XML.
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
Programmation Web : Introduction à XML
Requêtes homme-agent sur le fonctionnement Etudiantes: Anne DARME & Céline GIRARD Encadrant: Nicolas SABOURET Rapporteur: Vincent CORRUBLE Responsable:
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Introduction au Génie Logiciel
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Les types composés Les enregistrements.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
FORMATION EVALUATION PAR COMPETENCES PREMIERES ET TERMINALES ST2S
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
Document Type Definition (DTD) Plan 2.1Introduction 2.2Déclaration de Document Type 2.3Déclaration d’élément Type 2.3.1Séquences, Choix, indicateurs d’Occurrence.
eXtensible Markup Language. Généralités sur le XML.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
XML Spy How To Karim Hadjar. XML SPY EDI (Environnement de développement intégré) Site officiel :
Projet XML Contrôle des véhicules Par R.Khounsamnane &J.Socié.
Le dictaphone  Permet d'enregistrer de courts fichiers vocaux sur le disque dur  Bien entendu, votre ordinateur doit posséder une carte son et un micro.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
Introduction à l’Informatique Licence SPI Mme Delmotte.
Le langage XML Documents bien formés Un document XML est dit bien formé lorsque le document est correct sans toutefois posséder une DTD. Le prologue du.
XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement.
INF2005– Programmation web– A. Obaid Variantes de HTML.
DTD - Y. Bekkers - IFSIC1 DTD Document Type Definition Yves Bekkers Mise à jour : 31 mai 2016.
Automates Programmables Industriels ( ITEEM 2004 ) I.T.E.E.M de BEAULIEU Enseignante : Mme RECHID CHAPITRE 9 Le langage Grafcet.
Transcription de la présentation:

Saisie dynamique de XML Geoffroy Vallée et Ani Sedrakian

Les langages de schéma de XML DTD XML Schema

Saisie dynamique de XML Objectifs: Le but de notre projet est de créer un programme permettant la saisie dynamique de XML, suivant un schéma précis. Pour le moment, nous n’utiliserons que des DTD pour décrire ces schémas (XML Schema n’étant pas encore finalisé). Notre programme devra donc permettre à l’utilisateur de choisir une DTD, qui sirvira de supporte pour créer un environnement de saisie convivial et simple, qui simplifira le travail de toute personne souhaitant manipuler du XML (y compris les débutants).

Les DTD

DOCUMENT VALIDE Obéir à une structure type prédéfini Document valide = bien formé + obéir à une structure type définie dans une DTD <?xml version=‘1.0‘standalone=‘no‘?> <!DOCTYPE achat.ordre SYSTEM “ao.dtd“> <achat.ordre> <date>16 novembre 1999</date> <adresse> <nom>Jean</nom> <numéro>8</numéro> <rue>Boulevard de St Germain</rue> <ville>Paris</ville> <pays>FR</pays> <cp>75005</cp> </adresse> <article> <numéro.produit>248</numéro.produit> <description>champagne,millésimé,1994</description> <quantité>3</quantité> <prix_unitaire>75</prix_unitaire> </article> <numéro.produit>163</numéro.produit> <description>fromage,tartare</description> <quantité>2</quantité> <prix_unitaire>10.30</prix_unitaire> </achat.ordre>

DTD : interne ou externe d’un document Les DTD sont une spécification de structure de document réutilisable La déclaration d ’une DTD se compose de sections « internes » ou « externes » Les sections conditionnelles Appel de la DTD dans le document XML DTD interne <?xml version=‘1.0‘ standalone=‘yes‘?> <!DOCTYPE exemple [ <!-- début de la DTD--> <!ELEMENT exemple (#PCDATA)> <!--fin de la DTD--> ] > <!--début de l’instence--> <exemple>test</exemple> <!--fin du document--> DTD externe <?xml version=‘1.0‘ standalone=‘no‘?> <!DOCTYPE exemple SYSTEM”exemple.dtd”> <!-- début del’instence--> <exemple>test</exemple> <!--fin du document--> exemple.dtd <?xml version=‘1.0‘?> <!-- début de la DTD--> <!ELEMENT exemple (#PCDATA)> <!--fin de la DTD-->

CONTENU D’UNE DTD Les déclarations d’entités générales Les déclarations d’entités paramètres Les déclarations de notions Les déclarations d’éléments Les déclarations de listes d’attributs Les commentaires <!DOCTYPE test [ <!ENTITY exemple “Ceci est un exemple”> <!ELEMENT date (#PCDATA)> <!ATTLIST date format (ISO | EN-exp | FR-exp) #REQUIRED)> ] <!--début de l’instance--> <test> <p>&exemple</p> <date format=“ISO“>1999-11-16</date> </test>

Structure et hiérarchie des éléments (structure arbre) (I) Fihier mon_rapport .xml <?xml version=‘1.0’ standalone=‘no‘?> <!DOTYPE rapport SYSTEM ‘/usr/loal/edit/xml/dtd/rapport.dtd’> <rapport> <titre>Test</titre> ………………… <tableau></tableau> </rapport>

Structure et hiérarchie des éléments (structure arbre) (II) 2.dtd XML 1.dtd 3.dtd Hiérarchie Fichier rapport.dtd <rapport> <!ELEMENT rapport (titre,auteur+,chapitre+)> <titre>...</titre> <!ELEMENT titre (#PCDATA)> <auteur> <!ELEMENT auteur (prénom+, nom)> <prénom>...</prénom> <!ELEMENT prénom (#PCDATA)> <nom>...</nom> <!ELEMENT nom (#PCDATA)> </auteur> <!ELEMENT chapitre(tchap, intro?, sec1*)> <auteur> <!ATTLIST chapitre target ID #IMPLIED> <prénom>...</prénom> <!ELEMENT sec1 (tsec,(p | sec2)*)> <nom>...</nom> <!ATTLIST sec1 target ID #IMPLIED> </auteur> <!ELEMENT sec2 (tsec,(p | sec3)*)> <chapitre> <!ATTLIST sec2 target ID #IMPLIED> <tchap>...</tchap> <!ELEMENT tsec (#PCDATA)> <intro>...</intro> <!ELEMENT sec3 (tsec,p)> <sec1>...</sec1> <!ATTLIST sec3 target ID #IMPLIED> ......................... <!ELEMENT p (#PCDATA | renvoi | tableau )*> </chapitre> <!ATTLIST p target ID #IMPLIED> </rapport> <!ELEMENT renvoi EMPTY> <!ATTLIST renvoi ref IDREF #REQUIRED> <!ENTITY %tab SYSTEM ‘./tableau.dtd’ > %tab;

Structure et hiérarchie des éléments (structure arbre) (III) Fichier tableau .dtd <!ELEMENT tableau (ligne) + > <!ELEMENT lingne (cell) + > <! ATTLIST ligne lignbr CDATA #IMPLIED> <!ELEMENT cell (#PCDATA)> <! ATTLIST cell colnbr NMTOKEN #IMPLIED colspan NMTOKEN #IMPLIED>

RÉUTILISATION DES DIVERSES RESSOURCES DISPONIBLES ET LES INCONVÉNIENTS Réalisation des documents complexes est très simples Les conflits de noms sont les seules difficultés Le conflit apparaîtra lorsqu’une application (un navigateur) traitera le document <?xml version’1.0’ standalone=‘no‘?> <!DOCTYPE rapport [ <!ELEMENT rapport ANY> <!ENTITY % dc SYSTEM ’http://pur1.oclc.org/metadata/dublin-core.dtd’> <!ENTITY % basic SYSTEM ’http://foo.bar.org/XML/basic-text.dtd’> <!ENTITY % ad SYSTEM ’http://local/xml/adresses.dtd’> <!ENTITY % math SYSTEM ’http://www.w3.org/TR/REC-MathML/MathML.dtd’> %dc; %basic; %ad; %math; ] <rapport> ............... <fn> <eq/> <apply> <plus /> <power /> <ci> x </ci> <cn> 2 </cn> </apply> <cn> 4 </cn> <cn> 0 </cn> </fn> <fn id=‘note21‘>c ’est la représentation de l ’expression x2+4=0 </fn> </rapport>

RESOUDRE CE PROBLÈME GRACE AUX DOMAINES NOMINAUX Les conflits ne seraient pas apparus, si les auteurs n’importent pas de déclarations dans la DTD sans regarder ce qu’elles contiennent Les domaines nominaux permettent lors de l’édition d’un document d’utiliser des noms garantis uniques La déclaration d’un domaine nominal se fait à l’aide de l’attribut spécial xmlns: <?xml version=“1.0”?> <!DOCTYPE rapport SYSTEM “rapport.dtd”> <rapport xmlns:math=“http://www.w3.org/TR/1998/REC-MathML-19980407.html” xmlns:bt=“http://foo.bar.org/xml/schemas/Basic-text.dtd> .............. <math:fn> <math:eq/> <math : apply> <math : plus/> <math : power/> <math :ci> x </math :ci> <math :cn> 2 </math :cn> </math:apply> <math :cn> 4 </math :cn> <math :cn> 0 </math :cn> </math:fn> <bt:fn bt:id=‘note21‘>commentaire</bt:fn> .................. </rapport>

XML Schema

XML Schema. Introduction. XML Schema est un langage de schéma , au même titre que les DTD sont le langage de schéma de SGML. XML Schema est développé par le W3C, mais n’est pas finalisé. Tout ce qui suit est basé sur la publication du XML Schema Working Group de mai 1999. Des changements pourront donc être apportés par la suite. Rappel du rôle des schémas: Les schémas permettent de décrire la structure des informations. Les schémas permettent d’avoir un mécanisme de validation de texte.

XML Schema. Pourquoi XML Schema? Besoin de documents “structurés”. XML Schema permet donc de définir un ensemble de règles sur la structure et l’ensemble des informations contenues dans une instance d’un document XML Les DTD (Document Type Definition) ne sont pas des documents XML. Les DTD ne gèrent que de façon très limitée les types de données.

XML Schema. Comparaison avec le mécanisme des DTD: les DTD sont des documents SGML, alors que XML Schema sont des documents XML, les DTD sont “figées” par rapport à XML Schema : il est possible avec XML Schema de créer un schéma permettant de définir des éléments optionnels, qui ne seront pris en compte que s’ils sont correctement définis, Syntaxe : les types de base. XML Schema comporte un ensemble de types de données prédéfinis, dont voici les plus importants (qui sont des types XML): string, boolean, real, binary, URI, decimal, integer, date, time, …etc.

XML Schema. Syntaxe : principes de base. Les documents XML Schema sont des documents XML, ils peuvent donc utiliser des éléments et attributs XML pour exprimer la sémantique d’un schéma. Définition d’un type de donnée: <datatype name=“myType”>…</datatype> Référence à un type de donnée: <datatypeRef name=“myType”/> Définition d’un élément: <elementType name=“myElement”>…</elementType>

XML Schema. Référence à un élément: <elementTypeRef name=“myElement” minOccur=“n” maxOccur=“m”> Référence (“heritage”) d’un type de base: Il est possible, pour créer un nouveau type de donnée, de faire appel à un type de base qui servira de modèle. La syntaxe est la suivante: <basetype name=“nameBaseType”/> Définition d’un archétype: Les archétypes permettent de définir des modèles complexes. <archetype name=“myArchetype”>…</archetype> Exemple : définition d’une adresse à l’aide d’un archétype:

XML Schema. <archetype name=“adresse” model=“refinable”> <sequence> <elementTypeRef name=“nom” minOccur=“1” maxOccur=“1”/> <elementTypeRef name=“prénom” minOccur=“1” maxOccur=“1”/> <elementTypeRef name=“rue” minOccur=“1” maxOccur=“2”/> <elementTypeRef name=“ville” minOccur=“1” maxOccur=“1”/> <elementTypeRef name=“code postal” minOccur=“1” maxOccur=“1”/> </sequence> </archetype> On remarquera la possibilité d’exprimer des contraintes très précises (nombre d’occurrences) directement dans le modèle (chose impossible à faire avec les DTD).

XML Schema. Définition de sequence: On a vu dans l’exemple précédent qu’il est possible de définir une suite d’éléments (ceci est équivalent au caractère “,” séparant 2 éléments dans la syntaxe DTD). <sequence>…</sequence> Déclaration des attributs: <attribute name=“myAttribute”>…</attribute> Définition d’un groupe d’attribut: <attrGroup name=“myAttrGroup”> <attribute …>…</attribute> </attrGroup>

XML Schema. Il est également possible d’exprimer des contraintes sur la forme des éléments et des types manipulés: les représentations lexicales : il est possible avec XML Schema de définir plusieurs représentations pour un même élément. On peut, par exemple, définir un types “code postal” qui accépterait les codes postaux composés de 5 digits, et ceux de 5 digits suivis de 4 autres digits. Cela donnerait: <datatype name=“code postal”> <basetype name=“string”> <lexicalRepresentation> <lexical>99999</lexical> <lexical>99999-9999</lexical> </lexicalRepresentation> </datatype>

XML Schema. On peut également définir un type “monnaie”, composé à partir du type “décimal”, mais ne comportant qu’au maximum 8 digits , dont 2 pour la partie décimale: <datatype name=“monnaie”> <basetype name=“decimal”> <precision>8</precision> <scale>2</scale> </datatype> Autre exemple: <datatype name=“i4”> <basetype name=“integer”> <minInclusive>214783648</minInclusive> <maxExclusive>-214783648</maxExclusive>

XML Schema bien plus puissant que les DTD, CONCLUSION. Avantages de XML Schema: XML Schema bien plus puissant que les DTD, offre une grande diversité de types de données (booléens, entiers, réels, dates, …), possiblité de créer de nouveaux types et des agrégats de types (archétypes), des types complexes ou “hérités”, possiblité de réutiliser les schémas existants (la création de nouveaux schémas est alors plus rapide), document XML Schema = document XML. Tous les outils et les techniques XML peuvent donc être utilisés (y compris les DTD),

nécessité de créer des schémas en XML Schema qui existent déjà en DTD. XML Schema offre de grandes perspectives dans toutes les applications utilisant fortement des données structurées prédéfinies (BD, e-commerce,… etc). Les défauts : Pas de réels défauts, mais un certain nombre de faiblesses par rapport aux DTD : les DTD sont très répandues : existent en grand nombre et largement utilisée, les DTD disposent déjà d’un large éventail d’outils (outils SGML très répandus), nécessité de créer des schémas en XML Schema qui existent déjà en DTD.

Ce qui existe déjà

Les logiciels déjà existants. Un certain nombre de logiciels sont déjà disponible et proposent quelques outils. Nous verrons plus particulièrement : Xeena d’IBM, XED, XML Spy d’Unicode,

Xeena Toutes les informations sont disponible à http://www.alphaworks.ibm.com/aw.nsf/tec...BE31A4D650B7AC678825672C001398B La dernière version au 18 octobre 1999 est la version 1.0.3b. Déscription: Xeena est un éditeur de XML graphique, écrit en Java par le laboratoire de rechercher d'IBM de Haifa, pour éditer des documents XML valides suivant une DTD valide. L'éditeur prend une DTD donnée, et construit automatiquement une grille de saisie adéquate. L'utilisateur peut donc créer, modifier ou visualiser une document XML valide sous la forme d'un arbre. Il est à noter que cette visualisation nécessite un apprentissage afin que l'utilisateur saisisse bien son fonctionnement.

Xeena Certaines personnes lui reproche un aspect complexe (arbre).

XED Toutes les informations sont disponible à : http://www.ltg.ed.ac.uk/~ht/xed.html Déscription: Ce programme est un éditeur d'instance de documents XML, crée par Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh. Cet éditeur permet de saisir des documents XML, de vérifier s'ils sont bien formés. Il permet également de lire une DTD, et propose ensuite une structure de saisie facilitant le travail de l'utilisateur. XED est basé sur LT XML toolkit, et utilise Python et Tk afin de permettre une portabilité maximum. XED est disponible pour diverses plateforme de travail: Windows 95/NT, Solaris 2.5, FreeBSD, Linux.

XED Avis personnel: L'utilisation de XED n'est pas a priori la plus intuitive. En particulier, pour se rapprocher de notre projet, la saisie d'un document XML suivant une DTD n'est pas une tâche rendue simple.

XED De plus, il est indispensable de connaître parfaitement XML et les DTD pour utiliser XED. La simplicité d’emploit et la convivialité ne sont donc pas des atouts de XED. Dernier défaut : il permet d’utiliser le schéma d’une DTD, mais aucun test de validité n’est effectué.

XML Spy Ce programme est développé par Unicode. Tous les renseignements sont disponibles à: http://www.wmlspy.com/ Présentation: XML Spy permet de: créer une DTD et de la valider, créer un document XML (sans se baser sur une DTD donnée), en lui créant un schéma propre. XML Spy permet ensuite de vérifier que le document est bien formé et valide.

XML Spy

XML Spy Conclusion: Même si XML Spy est limité (impossible de créer un document suivant une DTD), il offre une gamme d’outils conviviaux et agréables.

eXcelon Object Design offre, dans sa base de donnée objet basée sur le XML, une panoplie d’outils XML. En ce qui concerne la saisie dynamique, un composant appelée “eXcelon studio” permettrait de saisir des documents XML suivant sur un schéma (DTD?), de façon simple et rapide à l’aide d’un outils visuel. Toutes les informations sont disponible sur : http://www.odi.com/excelon/main.htm

Notre proposition

Saisie dynamique de XML Principe de fonctionnement: Choix d’une DTD Analyse de la DTD Formation des éléments de saisie oui Fin de la saisie? non non Document valide? Choix de l’élément à modifier oui Analyse des possibilité de saisie Saisie oui non Saisise valide

Saisie dynamique de XML Remarque : une vérification de la saisie étant effectuée pour chaque élément, il suffira à la fin de vérifier que l’ensemble des éléments ont été saisit. Ce qui est fait: Notre programme se présente sous la forme d’une applet. Pour le moment, seule la lecture d’une DTD simple, avec mise en place des éléments de saisie, a été crée. Prenons l’exemple de la DTD simple suivante: <!ELEMENT lettre (date , nom)> <!ELEMENT date (#PCDATA)> <!ELEMENT nom (#PCDATA)>

Saisie dynamique de XML Cela nous donne:

Saisie dynamique de XML Ce qui sera bientôt fait : validation de la saisie, validation du document, extension des éléments des DTD traités, extension à XML Schema. Pour finir : Toutes les informations et applets sont disponibles sur notre site WEB : http://www.chez.com/xmlmisi Une extension du programme à XML Schema est à l’étude (tandis que la version DTD est laissée de côté pour le moment).