Question

J'ai un programme qui utilise XSL-FO (org.apache.fop.apps.Driver) pour générer une impression PDF à partir d'un fichier XML.

Je travaille sur les feuilles de style (xsl) & amp; J'essaie de faciliter le débogage. J'ai le XML & amp; le fichier XSL, je souhaite maintenant que mon éditeur me montre le fichier PDF généré car je travaille sur le fichier XSL.

J'ai essayé plusieurs éditeurs et amp; ils ont donné des erreurs que le programme ne semble pas avoir de problème.

il semble que le problème est que l'éditeur s'attend à voir:

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

alors que le code XML généré par le programme est

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Comme vous pouvez le constater, la valeur vide manque clairement. = """ - existe-t-il un moyen de rendre l'éditeur moins strict? Donc, il peut générer le fichier PDF tout comme le programme que j’ai fait?

Était-ce utile?

La solution

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Cette ligne n'est pas valide, comme cela a été mentionné auparavant. Le programme qui pense que c'est correct utilise probablement son propre analyseur XML personnalisé, qui ignorera simplement ces attributs non valides. Cela me fait douter des qualités de programmation des personnes qui ont créé ce programme. Il me semble simplement qu'ils écrivent simplement ce code XML sous forme de texte via un mécanisme XML-DOM. Cela devrait quand même marcher, mais malheureusement, leur code a un bogue.

La plupart des éditeurs, des analyseurs et des transformateurs XML valideront le XML avant son traitement. Donc, malheureusement, il n'y a pas de bonne solution pour résoudre ce problème à partir du fichier XSLT. En utilisant un RegEx, vous pouvez supprimer les attributs non valides ou les rendre valides en ajoutant = = " " pour eux, mais il n’ya aucun moyen de le faire avant que le XSLT valide le XML.

Pour résoudre ce problème, le programme doit être modifié pour générer un code XML valide. Parce qu'à l'heure actuelle, cela pourrait être considéré comme un très grave problème. (À moins que le programme utilise uniquement ce faux XML à des fins internes.)

Autres conseils

Le code XML portant la valeur attr_value et no = est incorrect Spécification XML du W3C et donc tous les outils XML devraient se plaindre. Quel outil utilisez-vous?

D'accord, je viens d'utiliser l'outil de recherche d'expressions régulières. remplace tous les noms d'attributs, s'ils ne se terminent pas par = " " puis ajoutez que, maintenant, tout semble aller pour le mieux… boiteux, mais ça va pour mes besoins pour le moment

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top