[JAVA/XML] foutje in xalan?

Pagina: 1
Acties:

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Met een servletje transformeer ik wat documentjes. Nu heb ik twee stukjes code waarvan een het niet doet, maar waarom is mij een groot raadsel.

Hier het niet werkende stukje:
code:
1
2
3
4
5
6
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance ();
DocumentBuilder builder = dbFactory.newDocumentBuilder ();
Document document = builder.parse (context.getResourceAsStream (pathNaarXSL));
DOMSource source = new DOMSource (document.getDocumentElement ());
TransformerFactory tFactory = TransformerFactory.newInstance ();
this.templates = tFactory.newTemplates (source);

Bij de aanroep newTemplates wordt er een IndexOutOfBoundsException gegooid in de BoolStack klasse van org.apache.xml.utils.

En hier het wel werkende stukje:
code:
1
2
TransformerFactory factory = TransformerFactory.newInstance ();
this.templates = factory.newTemplates (new StreamSource (context.getResourceAsStream (pathNaarXSL)));

Het wel werkende stukje is natuurlijk veel korter en kan ik verder ook gebruiken, ik ben alleen benieuwd wat er nu mis gaat in het eerste stuk code.

bvd.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Tomatrix: foutje in xalan?
Dat is schrikken, foutjes in Xalan.... Die gebruik ik zo'n beetje als reference implementation ;) .
maar waarom is mij een groot raadsel.
Mij ook, ik zie niets verkeerd aan je code... Ik gebruik zelf altijd direct de Transformer en heb eigenlijk nog nooit een Templates aangemaakt. Dit probleem ben ik dus nooit tegengekomen....

Welke parser gebruik je? Misschien moet je eens een andere proberen dan Crimson? Xerces bijvoorbeeld?

Wat gebeurt er als je met een JDOM een Templates aan probeert te maken?

Het lijkt mij sowieso een bug, dus misschien maar even melden? Het lijkt mij vrij specifiek bij je stylesheet, want anders was het vast al eerder ontdekt...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Ik gebruik ook gewoon xerces als parser (1.4.4 geloof ik).
Op een gegeven moment maar een stylesheet uit de voorbeelden van xalan erin gegooid (waarvan je mag aannemen dat die iig. juist is) maar precies hetzelfde probleem.

Het ligt ook niet aan het Templates object, als ik om een Transformer vroeg kreeg ik precies dezelfde melding.

JDOM heb ik geen ervaring mee, ik zal 't 's proberen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Xerces is goed ja :) .
Tomatrix: Het ligt ook niet aan het Templates object, als ik om een Transformer vroeg kreeg ik precies dezelfde melding.
Hum wat vaag, dan ligt het dus puur aan de DOMSource.... Vervelend :( .

Ik heb de DOMSource variant van JDOM (roeleert sowieso ten opzichte van de W3C DOM) in ieder geval wel gebruikt in het verleden en dat werkte allemaal prima...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment