Beruflich Dokumente
Kultur Dokumente
Programmation Web
TECHNOLOGIES
CT CLIENT
( 1 RE P A R T I E : L A N G A G E S D E
STRUCTURATION
DOCUMENTAIRE)
LIONEL MDINI
SEPTEMBRE-DCEMBRE 2013
Plan du cours
Partie 1 : langages de structuration documentaire
Validation de documents
DTD
Comparaison DTD / Schmas XML
MIF 18
Schmas XML
Xpath
ressources
Un URI ne signifie rien pour un processeur XML, qui le
transmet tel quel lapplication
Ex : SGML, XML
%%EndComments
%%BeginProlog
%%BeginProcSet:
Pscript_Res_Emul 1.0 0
/defineresource
where{pop}{userdict
begin/defineresource{userdict/
Resources 2
%%BeginResource: file
%%EndResource
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize
A4
%%EndFeature
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
%%IncludeFont: Courier
(Essai impression)S
SOAP/RPC
MathML
SGML
SVG
XML
SMIL
P3P
PICS
RDF
HTML
Applications
(DTD) SGML
XSL
XHTML
Applications
XML
OWL
RDF-Schma
Surcouches
RDF
W3C
Protocoles (IETF)
JavaScript (EcmaScript)
Unicode
JSON
a ne sert rien
a permet de dfinir des applications pour faire ce quon veut avec
XML : composants
XML (syntaxe) : documents bien forms
DTD/schmas XML : documents valides
Processeur (parser) XML : analyse et traitement
DOM : modle arborescent des donnes dun document
XML : syntaxe
Un document XML bien form est compos
Dun prologue, contenant :
XML : syntaxe
Un document XML bien form est compos
Dun prologue, contenant :
XML : syntaxe
Remarques
Structure
Un contenu est compos de texte et / ou dautres lments appels
fils de llment courant
Le texte est appel donnes caractres analysables ou PCDATA
(pour Parsed Character DATA).
Le contenu autoris pour le PCDATA dpend du type dencodage
choisi
Le fait davoir un unique lment racine, des lments fils, euxmmes dcomposables, etc. dfinit une structure arborescente
Pas de chevauchement de balises entre un lment pre et un
lment fils
XML : syntaxe
Remarques
Caractres spciaux
Les caractres "<" (infrieur) et "&" (esperlute) sont interdits
dans les contenus. On aura recours aux entits "<" et "&".
Lusage de ">" (suprieur) ou des guillemets simples ou doubles
peut galement tre perturbant. Dans ce cas, on a recours
">", "'" et """.
Si lon veut vraiment utiliser les caractres "<" ou "&", il est
possible de dfinir une balise sous forme de zone de caractres non
analyss (CDATA), sous la forme :
Syntaxe gnrique
Types de sources
DTD internes
DTD externes
Un seul emplacement possible
Indiqu par une URL
Types de contenu
Autres lment(s)
#PCDATA (pour Parsed Character DATA )
mixte (lment(s) + PCDATA)
#ANY (nimporte quel type de contenu XML bien form)
#EMPTY
Oprateurs de cardinalit
"" (rien) : une et une seule occurrence
"?" : zro ou une occurrence
"*" : zro, une ou plusieurs occurrences
"+" : une ou plusieurs occurrences
nom_entit "valeur">
% nom_entit "valeur">
nom_entit SYSTEM "URL">
nom_entit PUBLIC "URL1" "URL2">
nom_entit "valeur">
% nom_entit "valeur">
nom_entit SYSTEM "URL">
nom_entit PUBLIC "URL1" "URL2">
Nombre de vocabulaires
supports
Dynamicit
DTD
Schmas
Notation EBNF + pseudo-XML
XML 1.0
Outils SGML existants (chers et
Tous les outils XML existants et venir
complexes)
Non
Oui (comme pour les fichiers XML).
Listes : ordonnes ou de choix
Listes : ordonnes et de choix (dtails de
Cardinalit : 0, 1 ou plusieurs
contenus mixtes)
occurrences
cardinalit : spcification dun nombre
Pas dlments nomms ou de
exact doccurrences possible
groupes dattributs.
groupes de modles nomms
Faible (chanes, jetons nominaux, ID)
Fort (nombres, chanes, date/heure, boolen,
structures)
Non
Oui
Non (pas sans modification de la
Oui (puisque fonds sur lextensibilit de XML)
recommandation XML)
Compatibilit avec SGML
Aucune (simplement des emprunts aux
DTD, comme pour les types de donnes)
Une seule DTD par document
Autant que ncessaire (grce aux espaces de
noms)
Aucune : les DTD sont en lecture seule
Peuvent tre modifis dynamiquement
Solution
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div xhtml:class="monstyledediv">
</xhtml:html>
Exemple de code
<?xml version="1.0"?>
<CV xmlns="http://www.univ-lyon1.fr/etds/CV/english"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<personne>
<civil_status>
<title>Mr.</title>
</civil-status>
...
</personne>
<xhtml:html>
<xhtml:head>
<xhtml:title>CV of a student</xhtml:title>
</xhtml:head>
<xhtml:body>
...
</xhtml:body>
</xhtml:html>
</CV>
Niveau
composition
Application : navigateur
Processeur XML
XPath
Processeur XSLT
Donnes et mtadonnes
Mise en forme
(feuilles de style CSS)
Niveau
visualisation
Document XHTML
Nud
Chemin de localisation
Axes de navigation
Nom daxe
self
Description
Exemple dutilisation/
syntaxe abrge
Nud contextuel
self::node()
ou
Transformation
darbres XML
:
XSL
./node() ou .
child
child::Etat_civil ou
Etat_civil (dfaut)
descendant
descendant::Etat_civil
descendant-or-self::
Etat_civil ou .//Etat_civil
parent
parent::Prenom ou
../Prenom
ancestor
ancestor::Prenom
ancestor-or-self
ancestor-or-self::Prenom
following-sibling
preceding-sibling
preceding-sibling::Prenom
following
following::Nom
preceding
preceding::Prenom
attribute
attribute::id ou./@id
namespace
namespace::xhtml:div
Oprateurs et fonctions
Expression de caractristiques de slection complexes
Communs avec XQuery
Recommandation part entire :
http://www.w3.org/TR/xquery-operators/
Oprateurs et fonctions
Accesseurs
Pour rcuprer un lment dun nud
Exemples : node-name(), string(), base-uri()
Gnration derreurs
error()
Gnration de traces
trace()
Constructeurs
Pour les types de donnes XML spcifiques
Exemple : MonType()
Donnes et mta-donnes
Lgende
lment
attribut
texte
<CV xmlns="">
<Etudiant>
<Nom>Toto</Nom>
<Rubrique>
<Item>
<Contenu>1</Contenu>
<Contenu>2</Contenu>
<Contenu>3</Contenu>
</Item>
</Rubrique>
</Etudiant>
</CV>
Processeur
XSLT
Arbre rsultat
(aprs transformation)
<html xmlns="">
<head>
<title>Toto </title>
</head>
<body>
<ul>
<li> 1 </li>
<li> 2 </li>
<li> 3 </li>
</ul>
</body>
</html>
lment racine
<xsl:stylesheet version="1.0"
xmlns:xsl=http://www.w3.org/1999/XSL/Transform>
Dfinition
Appel
Modles simples :
<xsl:apply-templates select="expr_XPath" />
Lexpression XPath est un chemin de localisation qui dsigne le nud
Modles nomms :
<xsl:call-template name="nom_template" />
Structures de contrle
<xsl:if test="expr_XPath">Contenu
conditionnel</xsl:if>
Le contenu conditionnel peut tre compos dautres lments
(<xsl:value-of select="expr_XPath" />)
<xsl:for-each select="expr_XPath">Contenu
rpt</xsl:for-each>
Cet lment est redondant avec <xsl:apply-templates /> mais
rend la feuille de style moins lisible
Structures de contrle
<xsl:choose>
<xsl:when test="expr_XPath1">
Contenu conditionnel 1
</xsl:when>
<xsl:when test="expr_XPath2">
Contenu conditionnel 2
</xsl:when>
...
<xsl:otherwise>
Contenu conditionnel n
</xsl:otherwise>
</xsl:choose>
XSLT
Exemple
Directive dapplication
de la feuille de style
au document XML
http://liris.cnrs.fr/~lmedini/LIA/LSI/Exam/Septembre/
Quelques outils
Dans un navigateur
IE : processeur XSLT incorpor MSXML (contrle ActiveX)
Gecko, WebKit : objet window.XSLTProcessor