Le Langage XML: Fondations
pour les Plateformes eLearning
(XML
et les technologies associées)
Le Langage XML (ou
Technologies XML)
- Développé
par le
W3C et standardisé en 1998.
- Langage "issue" de SGML,
mais en plus simple et adapté au Web.
- Base
architectural du Web
- Accessibilité,
Internationalisation,
Indépendance par rapport au mode d'accès
- En évolution
très rapide. Plusieurs autres langages satellites ont
été développés autour.
- Révolution
logicielle, apparition de
plusieurs nouveaux produits.
- Basé Unicode,
donc international.
C'est quoi XML?
- Extensible
Markup Language
- Langage simple et
élégant pour la création de
documents auto descriptifs.
- Utilise des balises (markup)
pour décrire des données afin que d'autres
applications (ou outils) puissent les lire et les traiter
- Un analyseur (parser)
est
l'outil typique qui lit et analyse XML
- XML est en mode texte, donc
éditable.
Syntaxe XML
- Information crue: Ali
Benali, 23, rue Med-V, Rabat. 010
12 34 56
- Structurée en XML
<?xml version="1.0"?>
<personne>
<prénom>Ali</prénom>
<nom>Benali</nom>
<adresse>23, rue Med-V, Rabat</adresse>
<tel>090 12 34 56</tel>
</personne>
source
Syntaxe XML (suite)
- Un
élément racine <personne>
- d'autres
éléments (noeuds fils) <prénom>
<nom>
<adresse>
...
- Des attributs <tel
type="personnel">090 12 34 56</tel>
- On peut raffiner et rajouter
des noeuds
<adresse>
<numéro> 23 </numéro>
<rue> Med-V </rue>
<ville> Rabat </ville>
</adresse>
source
Syntaxe XML (suite)
<?xml version="1.0" encoding="utf-8"?>
<شخص>
<إسم>علي</إسم>
<لقب>بنعلي</لقب>
<عنوان>13، محمد 5، الرباط</عنوان>
<هاتف>090 12 34 56</هاتف>
</شخص>
Syntaxe
XML (Structure de XML)
Structure d'un document XML (~ Infoset)
Qui définit les
balises (tags) XML?
- XML est une
spécification (métalangage) qui permet
de définir d'autres langages (langages
dérivés ou à base de XML)
- XML permet aux
développeurs de créer leur
propre vocabulaire XML et qui est adapté pour
décrire la structure particulière de leurs
données
- Exemple: application gestion
agenda:
<adresse>
<nom> <tel>
...
- Un documents XML peut
être échangé et facilement
interprété par un autre système qui
comprend XML.
- Pourvu que "le
modèle XML" du document (structure et vocabulaire) soit
connu des deux.
Les Modèle de
document XML
- Un
document XML doit se
conformer à une syntaxe (document
bien
défini) et
à un "modèle" (document
valide)
- Deux langages pour
définir un modèle XML
- DTD,
Document
Type Définition
(hérité de SGML, simplifié pour XML)
- XML schema
(syntaxe XLM, mieux typé et plus puissant, cf. LDD en BD)
- Un fichier DTD
ou XML
schema devrait
compléter un fichier XML.
- L'outil typique pour XML est
l'analyseur (Parser)
qui vérifie la conformité d'un document XML.
Exemple de DTD
- Syntaxe "inamicale" (non
XML?)
- Définit quels
éléments (et attributs) doivent figurer dans un
document XML, dans quel ordre, lesquels sont optionnels, combien
d'occurrences, etc.
<!ELEMENT personnes (personne)*>
<!ELEMENT personne (prénom, nom, adresse, tel)>
<!ELEMENT prénom (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT adresse (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ATTLIST tel type CDATA #IMPLIED>
- Spécifie qu'un
document est composé de plusieurs
éléments personne,
chacun composé de quatre
sous éléments prénom,
nom,
adresse
et tel,
dans cet ordre avec type comme attribut pour
l'élément tel.
Exemple de schéma
XML
- Syntaxe XML, types
de données (boolean, nombres entiers décimaux,
Date et Time...) avec contraintes associées.
- Constructeurs de types (sequence,
group,
complexeType,
...)
- Définit quels
éléments (et attributs) doivent figurer dans un
document XML, dans quel ordre, lesquels sont optionnels, combien
d'occurrences, etc.
<xsd:element name="personne">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prénom" type="xsd:string" />
<xsd:element name="nom" type="xsd:string" />
<xsd:element name="adresse" type="AdrType" />
<xsd:element name="tel">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="0[6,7][0-9] [0-9][0-9]{3}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="AdrType">
<xsd:sequence>
<xsd:element name="numéro" type="xsd:integer" />
<xsd:element name="rue" type="xsd:string" />
<xsd:element name="ville" type="xsd:string" />
</xsd:sequence>
</xsd:simpleType>
- XML schema
est un standard
bien défini (recommandation W3C, XML schema)
Espaces de noms (namespaces)
- Comment
gérer les conflits de noms?
- Deux noms identiques pour
désigner deux choses conceptuellement différentes.
- Un espace de nom, namespace,
est une recommandation W3C, qui permet de résoudre les
conflits en donnant un contexte aux éléments d'un
document
- Syntaxe
<xsd:sequence> <agenda:prénom> <agenda:tel> <agenda:type> ...
- Chaque
élément ou attribut du document est
préfixé par une étiquette.
- Une étiquette
fait référence à un espace de nom,
identifié par une URI, par définition
unique au monde.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<agenda:personne xmlns:agenda="http://www.exemple.org/monAgenda">
... <agenda:nom>Benali</agenda:nom> ...
<agenda:personne xmlns:agenda="http://www.exemple.org/monAgenda"
xmlns:marque="http://www.exemple.org/marques">
... <agenda:nom>Benali</agenda:nom> ...
... <marque:nom>CocaCola</marque:nom> ...
Espaces de noms (suite)
- Les espaces de nom ne sont
pas fait uniquement
pour des besoins syntaxiques de
résolution de noms.
- Ils peuvent aussi servir
à une application pour traiter uniquement les
données
utiles (e.g. les noms des personnes et non pas ceux de marque).
- Cette
caractéristique est très utilisée dans
les langages dérivés de XML.
XML vs HTML
- HTML pour documents
destinés à être affichés
par un navigateur
- Balises
prédéfinies et principalement
orientées
présentation
- XML pour décrire
la structure d'un document
- Séparation entre
contenu et présentation. Caractéristique
fondamentale pour le Web.
- XML pour décrire
contenu.
La famille XML
- Langage de style XSL
(Extensible
Stylesheet Language),
recommandation W3C
- Permet d'associer un style
d'affichage à un document XML
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
... définition de l'affichage en html ...
</xsl:template>
</xsl:stylesheet>
La famille XML (suite)
- Langage XSLT
(XSL
Transformation),
recommandation W3C
- Permet de transformer un
document XML vers un autre. En fait, vers tout.
- Un processeur XSLT
transforme une structure d'arbre vers une autre.
- Utilise des expressions de
chemin XPath,
pour désigner les noeuds d'un arbre XML.
/personne/adresse[ville="rabat"]/rue
/personne/tel[@type="personnel"]
- XSLT est un
véritable langage
déclaratif de haut
niveau.
La famille XML (suite)
- Exemples de transformations
La famille XML (suite)
- Considérant une
document XML comme une base de données, XQuery,
est un véritable langage de requête.
Basé sur XPath.
- Résultat de
requête est en XML.
<Result>
{ for $p in document("Personnes.xml")
return
<ResultTuple>
{ $p/nom, $p/prénom, $p/ville }
</ResultTuple>
}
</Result>
<Result>
{ for $cmd in document("Commande.xml")
$cl in document("Client.xml")//client[num = $cmd/numCli],
return
<ResultTuple>
{ $cl/nomCli, $cmd/qté }
</ResultTuple>
}
</Result>
- XQuery donne à
XML une dimension base de données.
Les Langages
dérivés de XML
- Tous des recommandations W3C
- XHTML,
HTML exprimé en XML, nouveau langage du Web, moins
permissif.
- SVG,
Scalar
Vector Graphic, langage des
graphiques du Web. Mode vectoriel.
- SMIL,
Synchronized
Multimedia Integration Language,
permet d'intégrer un ensemble d'objets multimédia
dans une
présentation multimédia synchronisée.
- MathML,
langage pour décrire des formules (notations)
mathématiques avec leur structure et leur contenu. Permettre
à des textes mathématiques d'êtres
échangés et traités dans le Web.
- VoiceXML,
pour les interactions vocales.
- etc.
Les Applications XML
- Echanges B2B ("EDI" plus
simple et plus général)
- e-Adm, e-Commerce, ...
Services en lignes
- Intégration des
données hétérogènes (e.g.
portails fédérateurs)
- Bases de données
- Stocker
et retrouver des
données XML.
- Conversion de et vers BD
SQL classiques.
- BDs XML natives
- Le Web
Mobile devient de plus en plus
important:
- La
plupart
des
technologies nouvelles ont des « profils mobiles »:
- XHTML
Basic, SVG Tiny et Basic, SMIL Basic, XForms Basic…
- Les Services Web
- Le Web Semantique
Les Services Web et le Web
Sémantique
- Même objectif:
Rendre le Web plus intelligent
- Machine-readable
Web:
Les machines
coopèrent en utilisant le Web
- Le but est de permettre
un meilleur confort pour les utilisateurs
- Coopération par
traitements: Services
Web
- faire communiquer des
applications Web, Transferts de documents XML entre services
- Coopération par
données: Web sémantique
- Ajouter de la richesse
aux données
- Applications usuelles:
informations et catalogues en ligne, moteurs de recherche, profils
d'utilisateurs, commerce électronique, ressources de calcul
distribué, services en ligne (bourse, traductions,
météo)
Web Services
- « service
» actif sur le Web avec conventions bien définies
- Transferts de documents XML entre services
- Standards (W3C) à
base de XML SAOP,
WSDL,
WS-A,
WS-CDL
- convention pour le
transfert des données (SOAP)
- description des
interfaces des procédures (WSDL)
- adresses
précises des services (WS-A)
- description d'une
« chorégraphie » (WS-CDL)
Web Sémantique
- Des métadonnées
sont ajoutées aux ressources du Web
- ils
décrivent les propriétés
de la ressource
- Des vocabulaires
(ontologies) peuvent être développés
- des raisonnements sur
les métadonnées deviennent possibles
- Les applications sont
basées sur l'analyse des métadonnées
- i.e., moteur de
recherche
- Standards (W3C) à
base de XML: RDF,
OWL
- un modèle et
une représentation textuelle de
métadonnées (RDF)
- un langage pour la
définition des ontologies (OWL)
Exemple
Les produits XML
- API java pour XML
- J2EE, Dot.net
- Middleware pour BD SQL
- ...
XML Langage de choix des
plateformes e-Learning
- XML Langage de choix des
plateformes e-Learning
- utilisation
des types
de données, avec validation
(DTDs, Schémas, …)
- re-emploi
des applications d'XML (Espaces
de noms)
- utilisation
des liens (XLink, XBase,
…)
- composition/décomposition
(XInclude, Fragments, …)
- référence
à des données en XML
(XPath, Query, …)
- transformation
de XML vers tout (XSLT)
- crypter,
décrypter, signer
(Signature, Encryption,…)
- interagir,
ajouter des scripts (DOM,
Events, …)
- etc.
- Contenu XML maniplable
à volonté
- Plusieurs langages
dérivés adaptés aux
différents besoins
- des
documents textuelles
(XHTML, MathML)
- l'infographie, le
multimédia (SVG, SMIL)
- des interactions
vocales
(VoiceXML)
- des formulaires
interactifs
(XForms)
- contrôler la
présentation (XSL)
- etc.