Xalan – erreur lors de la transformation XSL
Il est possible de rencontrer parfois l’erreur suivante lors d’une transformation XSL :
java.lang.IllegalStateException: can't declare any more prefixes in this context at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:524) at org.apache.crimson.parser.Parser2.parse(Parser2.java:305) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442) at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
Ou bien :
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: java.lang.IllegalStateException: can't declare any more prefixes in this context at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:718) at com.mycompany.myproject.Translator.myfunct(MyClass.java:352) Caused by: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: java.lang.IllegalStateException: can't declare any more prefixes in this context at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:842) at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:701) ... 4 more Caused by: javax.xml.transform.TransformerException: java.lang.IllegalStateException: can't declare any more prefixes in this context at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:838) ... 5 more Caused by: java.lang.IllegalStateException: can't declare any more prefixes in this context at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:523) at org.apache.crimson.parser.Parser2.parse(Parser2.java:304) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433) at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:830) ... 5 more
C’est une erreur bien connue qui peut être résolue de deux façons.
Ce problème est présent avec (liste non-exhaustive) :
- JDK 1.4.2_03
- JDK 1.5b2
Il faut changer de version de Java et utiliser (liste non-exhaustive) :
- JDK 1.4.2_02
- JDK 1.5a1
S’il n’est pas possible de changer de version de Java, il faut savoir que les versions incriminées imposent que l’attribut version du tag xml dans les scripts XSL soit positionné après l’attribut xmlns:xsl. Donc si votre le script XSL est déclaré ainsi d’habitude :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Doit être déclaré maintenant de cette façon :
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">https://blog.lecacheur.com/2005/02/15/xalan-erreur-lors-de-la-transformation-xsl/Java EEIl est possible de rencontrer parfois l'erreur suivante lors d'une transformation XSL : Ou bien : C'est une erreur bien connue qui peut être résolue de deux façons. Ce problème est présent avec (liste non-exhaustive) : JDK 1.4.2_03 JDK 1.5b2 Il faut changer de version de Java et utiliser (liste non-exhaustive) : JDK 1.4.2_02 JDK 1.5a1 S'il n'est...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Bien vu !