Squelette xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="file.xsl" type="text/xsl"?>
<!-- le prologue -->

<root>
 <son>
  <caracteristique attribut="valeur">valeur caract</caracteristique>
 </son>
</root>

Squelette xsl

<?xml version="1.0" encoding="UTF-8"?>
<!-- le prologue -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" indent="yes"/>
 <xsl:strip-space elements="*" />

 <xsl:template match="XPath">
  <elem>
   <xsl:apply-templates select="XPath" mode="tpl"/>
  </elem>
 </xsl:template>

 <xsl:template match="XPath" mode="tpl">
  <sub_elem>
   <xsl:value-of select="XPath"/>
  </sub_elem>
 </xsl:template>

</xsl:stylesheet>

XML (eXtensible Markup Language) bien formé

Contenu d'un fichier xml Exemple annoté
#

Prologue ou Entête d'un document xml

La ligne de déclaration :

Après la ligne de déclaration :

Corps d'un document xml

Tous les éléments suivent les règles suivantes :

Les noms de balises et d'attributs doivent respecter les conventions suivantes :

Ne pas confondre :

Caractères interdits comme valeur de balise ou attribut:

Commentaire :

Voici deux exemples qui sont des erreurs de syntaxe :

<!-- commentaire incorrect -- car présence de deux tirets dans le commentaire --> <element><!-- commentaire incorrect --></element>

Scripts et Character DATA (CDATA) :

Si l'on veut écrire du script js, pouvant contenir des caractères interdits comme <, > ou &, dans un fichier xml, voici la méthode, avec CDATA, à suivre :

<script> //<![CDATA[ if( condition1 && condition2){ //code JS } //]]> </script>

Documentation officielle présentant la norme :

XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004


xPath

xml & css


Liens intéressants

Script PHP


Instructions xsl

découpage en modèles

générer un template xsl:template

<xsl:template match="xPath">
 content
</xsl:template>
	
03.1-exemple.xml 03.2-exemple.xml 03.3-exemple.xml

appeler un template xsl:apply-templates

<xsl:template match="xPath">
 content
 <xsl:apply-templates select="xPath"/>
</xsl:template>

<xsl:template match="xPath">
 sub_template
</xsl:template>
03.4.1-exemple-apply-template.xml 03.4.2-exemple-xsl=for-each--xsl=value-of--xsl=text.xml 03.5-exemple-xml-to-xml.xml 03.6.1-exo-xml-to-html-xsl=template--xsl=apply-templates.xml
03.6.2-exo-xml-to-html-xsl=template--xsl=apply-templates.xml

appeler un template avec mode xsl:apply-templates

<xsl:template match="xPath">
 content
 <xsl:apply-templates select="xPath" mode="sommaire"/>
 <xsl:apply-templates select="xPath" mode="corps"/>
</xsl:template>

<xsl:template match="xPath" mode="sommaire">
sub_template format 1
</xsl:template>

<xsl:template match="xPath" mode="corps">
sub_template format 2
</xsl:template>
03.9-biblio.xml

modèle de template xsl:call-template

<xsl:template match="xPath">
 <xsl:call-template name="gras"/>
</xsl:template>

<xsl:template name="gras">
 <b><xsl:value-of select="xPath"/></b>
</xsl:template>
03.8-biblio.xml

dans le découpage

ajouter un élément xsl:element

<xsl:element name="">
</xsl:element>
03.5-exemple-xml-to-xml.xml 03.7.1-exo-xml-to-xml-xsl=element--xsl=attribute.xml

ajouter un attribut xsl:attribute

<xsl:element name="">
 <xsl:attribute name="">
 </xsl:attribute>
 content
</xsl:element>
03.7.2-exo-xml-to-xml-xsl=element--xsl=attribute.xml

ajouter un ensemble d'attribut xsl:attribute-set

<xsl:element name="" use-attribute-set="lstattibut">
</xsl:element>

<xsl:attribute-set name="lstattibut">
 <xsl:attribute name="">
 </xsl:attribute>
 <xsl:attribute name="">
 </xsl:attribute>
 <xsl:attribute name="">
 </xsl:attribute>
</xsl:attribute-set>

échappement de chaîne de caractère xsl:text

<xsl:text>
</xsl:text>

récupérer valeur xsl:value-of

<xsl:value-of select="xPath"/>

boucle for-each xsl:for-each

<xsl:for-each select="xPath">
</xsl:for-each>
03.2-exemple.xml 03.3-exemple.xml 03.A.livre-tri.xml 03.6.2-exo-xml-to-html-xsl=template--xsl=apply-templates.xml


dans un for-each

condition xsl:if

<xsl:if text="expression xPath">
</xsl:if>
03.A.livre-tri.xml

tri xsl:sort

<xsl:sort select="xPath" 
	order="ascending ou descending" 
	data-type="number ou text"/>
03.A.livre-tri.xml

cas Bon de Cde

03.C.cde.xml