Usages Ant/XSLT

Méthode

Ant est un complément simple à XSLT pour créer des chaînes de transformation complètes sans recourir ni à une IHM, ni à un langage de programmation.

MéthodeEnchaînement de transformations

Ant permet d'exécuter plusieurs transformations en série.

CTRL+C pour copier, CTRL+V pour coller
1
<xslt in="src/fic1.xml" out="tmp/fic1b.xml" style="xsl/transf1.xsl"/>
2
<xslt in="tmp/fic1b.xml" out="out/result.fo" style="xsl/transf2.xsl"/>
<xslt in="src/fic1.xml" out="tmp/fic1b.xml" style="xsl/transf1.xsl"/>
<xslt in="tmp/fic1b.xml" out="out/result.fo" style="xsl/transf2.xsl"/>

Exemple

Traiter un fichier de scénarisation XML qui pointe des fichiers de contenu (par exemple une map qui référence des topics en DITA, un paper qui pointe des sections externalisées en Scenari/Optim) pour obtenir un fichier unique par internalisation des fichiers pointés (grâce à la fonction XPath document) ; puis appliquer une seconde transformation pour obtenir un fichier FO.

L'on pourra aussi ajouter la tâche permettant d'exécuter le rendu en PDF avec FOP typiquement.

MéthodeTransformations en lot

Ant permet d'exécuter plusieurs transformations en lot, pour tous les fichiers d'un répertoire par exemple.

CTRL+C pour copier, CTRL+V pour coller
1
<xslt basedir="src" destdir="out" extension=".html" style="xsl/transf.xsl"/>
<xslt basedir="src" destdir="out" extension=".html" style="xsl/transf.xsl"/>

Exemple

Traiter un ensemble de sources XML pour produire un site Web, si chaque fichier XML donne un fichier HTML.

MéthodeObtenir plusieurs résultats pour une seule source

Ant permet d'enchaîner plusieurs XSLT sur un même fichier XML afin d'obtenir plusieurs résultats, liés entre eux.

CTRL+C pour copier, CTRL+V pour coller
1
<xslt in="src/xml1.xml" out="out/xml11.html" style="xsl/xsl1.xsl"/>
2
<xslt in="src/xml1.xml" out="out/xml12.html" style="xsl/xsl2.xsl"/>
<xslt in="src/xml1.xml" out="out/xml11.html" style="xsl/xsl1.xsl"/>
<xslt in="src/xml1.xml" out="out/xml12.html" style="xsl/xsl2.xsl"/>

Exemple

Pour produire une publication comprenant plusieurs fichiers résultant liés (une publication temporalisée HTML5+Timesheet ou une publication paginée XHTML+CSS3 par exemple), il est nécessaire d'appliquer plusieurs XSLT à un même fichier XML.

MéthodeExécuter plusieurs XSLT en fonction d'un fichier XML

Ant permet d'appliquer une XSLT à un fichier XML source, afin d'obtenir un nouveau fichier Ant qui contient plusieurs ordres de transformation, typiquement pour chacun des fils pointés par le fichier XML source.

CTRL+C pour copier, CTRL+V pour coller
1
<xslt in="src/xml1.xml" out="ant/xml1.ant" style="xsl/xsl1.xsl"/>
2
<ant antfile="ant/xml1.ant"/>
<xslt in="src/xml1.xml" out="ant/xml1.ant" style="xsl/xsl1.xsl"/>
<ant antfile="ant/xml1.ant"/>

Le fichier xml1.ant contenant lui même une série d'exécutions XSLT qui ont été générées par xsl1.xsl.

CTRL+C pour copier, CTRL+V pour coller
1
<xsl:template match="topicref[@type='task']">
2
  <xslt in="src/{@href}" out="out/{@ref}.html" style="xsl/topic.xsl"/>
3
</xsl:template>
<xsl:template match="topicref[@type='task']">
  <xslt in="src/{@href}" out="out/{@ref}.html" style="xsl/topic.xsl"/>
</xsl:template>

Exemple

Traiter un fichier de scénarisation XML qui pointe des fichiers de contenu pour obtenir un site Web (une map DITA qui référence des topics, un paper Scenari/Optim qui pointe des sections externalisées) :

  • en transformant le fichier de scénarisation en index.html

  • en générant un script Ant qui va transformer chacun des fils du fichier de scénarisation en fichier HTML (pointé par le index.html)