[XSLT] Transformer un xml en xsl
Bonjour,
Je cherche sur le net comment transformer un xml en une xsl.
Est-ce possible ? je sais qu'il existe le "schematron" norme iso qui permet de faire cela mais le xml doit respecter une DTD particulière alors que mon fichier xml lui est simple.
Auriez-vous une idée ?
Merci d'avance,
Ps : pour ceux à qui ca intéresse : www.schematron.com
Transformation d'un document XML transformé
Je pensais trouver la réponse à ma question dans ce post mais finalement non.
J'explique mon problème :
Au final, je souhaite transformer un document XML2 en une page HTML2 grâce à une feuille de style XSL2.
Sauf que certaines sources de données ne peuvent pas me fournir directement mon document XML2. Elles me fournissent donc un document XML1. Je m'occupe de transformer ce document XML1 en un document XML2 grâce à une feuille de style XSL1.
Je bute toutefois sur un problème :
Je souhaiterai que mon document XML2 généré à partir de XML1 grâce à XSL1 comporte l'instruction : <?xml-stylesheet type="text/xsl" href="./XSL2.xsl"?> pour que le document XML2 généré soit à son tour transformé en mon document final HTML2 par appel de la feuille de style XSL2.
Pour ce faire, il faudrait que ma feuille de style XSL1 sache inclure cette instruction dans le document XML2 qu'elle a la charge de générer. Malheureusement, je n'y arrive pas. J'ai essayé de l'écrire de toutes ces façons sur mon fichier XSL 1:
Façon 1 :
Code:
1 2 3 4 5
|
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="./XSL2.xsl"?>
<xsl:stylesheet...
</xsl:stylesheet> |
Façon 2 :
Code:
1 2 3 4 5 6 7 8 9
|
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet ....
>
<?xml-stylesheet type="text/xsl" href="./XSL2.xsl"?>
<xsl:template match="/ns:root">
...
</xsl:template>
</xsl:stylesheet> |
Façon 3 :
Code:
1 2 3 4 5 6 7 8 9
|
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet ....
>
<xsl:template match="/ns:root">
<?xml-stylesheet type="text/xsl" href="./XSL2.xsl"?>
...
</xsl:template>
</xsl:stylesheet> |
Il n'y a rien à faire, c'est instruction est tout bonnement ignorée. Si quelqu'un pouvait me dire un, si ce que je veux est possible, deux le cas échéant comment, je lui serai très reconnaissant.
Pour récapituler mon problème : je veux pouvoir passer d'un document XML1 à ma page HTML2 via deux transformations successives XSL1 et XSL2 (et sans ajout programmatique tiers (type un programme java)).
Je sais que je pourrais très bien faire une seule feuille XSL' à la place de XSL1 et XSL2 pour passer directement de XML1 à HTML2, mais comme je l'expliquais, je dispose de deux sources de données, l'une me générant des documents XML1 (sur la structure desquels je n'ai pas la main), l'autre des documents XML2 et je souhaite que ma feuille XSL2 reste mon unique fichier de référence pour la production de HTML2.
Merci de votre aide.