[XML/XSL/XSD] Insérer tel quel un document HTML, doctype ?

Insérer tel quel un document HTML, doctype ? [XML/XSL/XSD] - XML/XSL - Programmation

Marsh Posté le 23-04-2013 à 10:48:36    

Bonjour,

 

Je dispose d'une application qui génère un corps de mail à partir d'un fichier XML. Un fichier XSD permet de valider les données du fichier entrant et un XSL met en forme ces mêmes données en HTML, orchestré par un parser (librairies saxon) écrit en java.
Maintenant, ce que je désire faire via ce principe, c'est d'intégrer un fichier HTML "tout fait" (fourni par une appli tierce, donc que je ne contrôle pas) et le ressortir quasiment tel quel dans le corps de mail, avec les contraintes suivantes :

  • Je ne veux pas toucher au code java
  • L'emplacement du fichier HTML est renseigné dans le fichier XML entrant


J'ai donc adopté dans mon XSL la méthode

Code :
  1. <xsl:copy-of select="document(HtmlIn)"/>


Qui fonctionne, à un détail près : l'encodage ne passe pas, le XML ne connaissant pas les "&eacute;" et j'en passe.

 

J'ai donc essayé de passer par un Doctype, que j'ai spécifié de la manière suivante dans mon fichier XSL :

Code :
  1. <!DOCTYPE stylesheet [
  2. <!ENTITY eacute "&#233;">
  3. <!ENTITY ecirc "&#234;">
  4.          ...
  5. ]>


(et ce pour les dizaines de caractères pouvant poser problème).

 

Le problème est que même malgré ça, l'application me renvoie l'erreur

Citation :

Error on line 6 column 49 of test.html:
  SXXP0003: Error reported by XML parser: The entity "eacute" was referenced, but not declared.

 

J'ai donc l'impression que le parser se tape complètement du Doctype. J'ai essayé plusieurs solutions (dont le très moche "disable-output-escaping" ), mais sans succès, et j'avoue que mes connaissances en XML/XSLT sont assez rudimentaires.

 

Donc comment faire pour que le doctype soit appliqué à coup sûr ? Ou, plus globalement, comment insérer dans mon fichier XSL un fichier HTML sans avoir de problème d'encodage ?


Message édité par CerfPyvert le 23-04-2013 à 10:49:16
Reply

Marsh Posté le 23-04-2013 à 10:48:36   

Reply

Marsh Posté le 23-04-2013 à 12:02:20    

Bonjour,
 
J'essaierais d'adapter la seconde méthode donnée ici: http://www.sourceware.org/ml/xsl-l [...] 00852.html (lis aussi les follow-ups)
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 23-04-2013 à 18:27:22    

gilou a écrit :

Bonjour,
 
J'essaierais d'adapter la seconde méthode donnée ici: http://www.sourceware.org/ml/xsl-l [...] 00852.html (lis aussi les follow-ups)
 
A+,


 
Merci pour ton aide, j'ai pas encore pu regarder dans le détail mais je m'y attelle bientôt.
Les follow-ups m'ont effectivement l'air assez indiqués pour ma solution (même si je n'arrive pas à comprendre pourquoi le DOCTYPE spécifié dans le XSL n'est pas pris en compte).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed