Jörn,
its a while ago, in the dim and distant past, but...
...at a customer site, we had some Namespace issues with FOP.
Somewhere, we'd parsed some XML without Namespace awareness.
Something like:
|DocumentBuilderFactory.newInstance()||.setNamespaceAware(true);|
Maybe the products you're using have different defaults for this setting?
T'was just a thought.
Sorry, I can't be more specific than that.
All the best,
Dave
On 07/11/2024 16:48, Jörn Willhöft wrote:
Well the bug is in Apache FOP (or maybe in Saxon?) Here is a
reproducible test procedure:
I use the FOP binary package from
https://www.apache.org/dyn/closer.cgi?filename=/xmlgraphics/fop/binaries/fop-2.10-bin.tar.gz&action=download
<https://www.apache.org/dyn/closer.cgi?filename=/xmlgraphics/fop/binaries/fop-2.10-bin.tar.gz&action=download>
and the current Saxon 12.5 HE.
Create PDF without Saxon:
$ fop-2.10/fop/fop -c PDFA3Xmp.xconf -fo PDFXMP.fo -pdf output-ok.pdf
Create PDF with Saxon:
$ export
CLASSPATH=SaxonHE12-5J/saxon-he-12.5.jar:SaxonHE12-5J/lib/xmlresolver-5.2.2.jar:SaxonHE12-5J/lib/xmlresolver-5.2.2-data.jar:SaxonHE12-5J/lib/jline-2.14.6.jar
$ fop-2.10/fop/fop -c PDFA3Xmp.xconf -fo PDFXMP.fo -pdf
output-saxon.pdf
Result without Saxon:
$ pdfinfo -meta output-ok.pdf
...
<rdf:Description
xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
rdf:about="">
<pdfaExtension:schemas>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
<pdfaSchema:property
xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#">
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name
xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">split</pdfaProperty:name>
</rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
</rdf:Bag>
</pdfaExtension:schemas>
</rdf:Description>
...
The result with Saxon is totally messed up:
$ pdfinfo -meta output-saxon.pdf
...
<rdf:RDF
xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
rdf:about="">
<pdfaExtension:schemas>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
<pdfaSchema:property>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>split</pdfaProperty:name>
</rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
</rdf:Bag>
</pdfaExtension:schemas>
</rdf:RDF>
...
Not only the namespace attributes xmlns:pdfaSchema and
xmlns:pdfaProperty are missing, but also the rdf:Description element
is now called rdf:RDF (?!)
I think it makes sense to create a Jira ticket for this issue. Since I
am not a member of the project, shall I sign up and do this?
Cheers
Jörn Willhöft
Jörn Willhöft <j...@willhoeft-it.com> hat am 07.11.2024 13:34 CET
geschrieben:
OK, I am a big step further now. The bug appears in Camel (only) if
Saxon is used anywhere in the Camel Route. I use Saxon to create the
actual FO and additional files. The created FO has the namespaces
where they belong, but somehow Saxon in the classpath seems to
confuse the FOP component internally. Skipping Saxon is not really an
option as I need XSLT 2.0.
It is still unclear to me if the problem is in the Camel FOP
component or FOP itself.
Cheers
Jörn Willhöft