Project

Profile

Help

Bug #5720

closed

java.net.MalformedURLException: no protocol: ../common/entities.ent

Added by Jeremy Odekirk over 1 year ago. Updated over 1 year ago.

Status:
Won't fix
Priority:
Low
Category:
Resolvers
Sprint/Milestone:
-
Start date:
2022-10-25
Due date:
% Done:

0%

Estimated time:
Legacy ID:
Applies to branch:
11
Fix Committed on Branch:
Fixed in Maintenance Release:
Platforms:

Description

Works on Saxon 10.8 but not on 11.4.

This stylesheet uses Saxon EE extensions to handle multilingual sorting of indices. It imports the DocBook XSL which is where the error is.

java -cp C:\Mercury_Stylesheets\saxon\saxon-ee-11.4.jar;D:\temp\part_marketing_sample\Mercury_Stylesheets\i18n_support\lib\*;D:\temp\part_marketing_sample\Mercury_Stylesheets\i18n_support\i18n_support.jar -Dcom.innodata.i18n.home=D:\temp\part_marketing_sample\Mercury_Stylesheets\i18n_support net.sf.saxon.Transform -versionmsg:on -o:"d:\temp\outSaxon.fo" -s:D:\temp\part_marketing_sample\pm_spanish_CMCA_86003548trunc2.xml -xsl:"D:\temp\part_marketing_sample\Mercury_Stylesheets\MercuryPMFO.xsl"
Error on line 42 column 22 of docbook.xsl:
  XTSE0165  I/O error reported by XML parser processing
  file:/D:/temp/part_marketing_sample/Mercury_Stylesheets/docbook-xsl-1.79.1/fo/autoidx.xsl.
  Caused by java.net.MalformedURLException: no protocol: ../common/entities.ent
I/O error reported by XML parser processing file:/D:/temp/part_marketing_sample/Mercury_Stylesheets/docbook-xsl-1.79.1/fo/autoidx.xsl

Files

part_marketing_sample.zip (4.73 MB) part_marketing_sample.zip Jeremy Odekirk, 2022-10-25 18:19
Actions #2

Updated by Michael Kay over 1 year ago

  • Category set to Resolvers
  • Assignee set to Norm Tovey-Walsh
Actions #7

Updated by Norm Tovey-Walsh over 1 year ago

  • Status changed from New to Won't fix

Your extension relies on a very, very old version of Saxon. The configuration you're using adds not just a very old version of Saxon to the classpath, it also adds old versions of ICU4J and Xerces. That's just not going to work reliably.

Your extension won't load without the com.icl.saxon.style.ExtensionElementFactory class and appears to be based off of Saxon 6.5.5. I'm not sure exactly what your extension does, but it appears to attempt to load the stylesheets with some classes of that vintage. That fails, but it's impossible to say if that's because of interactions between the current version of Xerces and the old one, or if that version of Saxon is so old that it's actually using a different parser.

I can't explain in any detail why it works with 10.8 and not 11.4. My guess is "luck". Because you have mutiple implementations of the same classes on the classpath, what happens is going to depend on how the JVM happens to decide to load the jar files and search the classpath.

I recommend that you update the implementation of the extension classes so that they work with the current version of Saxon. Then you won't need to put all those conflicting jar files on the classpath and the results will be more reliable.

Hope that's useful and sorry we can't do more.

Actions #8

Updated by Eliot Kimber over 1 year ago

That ISOGEN code is lost to time.

A functional replacement is available in this open-source project: https://github.com/dita-community/org.dita-community.i18n

Note that while it's implemented as a DITA Open Toolkit plug-in, the Saxon extensions and underlying i18n functionality are generic and not dependent on Open Toolkit.

I last touched it in 2019 so it may need to be updated for latest Saxon versions.

This project includes an open-source Simplified Chinese dictionary-based collator, which was not possible when I implemented ISOGEN libraries.

Antenna House sells a Simplified Chinese collator.

Please register to edit this issue

Also available in: Atom PDF