Bug #5850
closed

Error when compiling XSLT that uses "i" flag in regular expressions.
100%
Description
Using Saxon 12 (installed w/pypi) on Python 3.8.
I found that I get the error Unable to read casevariants.xml file
when trying to compile a stylesheet that uses the "i" flag with regular expressions. (I'm using matches()
in my example, but I was also able to reproduce when using xsl:analyze-string
.)
It does compile if I add ";j" to the flags to force the Java flavor of regex.
Example:
Python
from saxonche import PySaxonProcessor
with PySaxonProcessor(license=False) as saxon_proc:
xsltproc = saxon_proc.new_xslt30_processor()
executable = xsltproc.compile_stylesheet(stylesheet_file="test_compile.xsl")
if xsltproc.exception_occurred:
print(f"error code: {xsltproc.error_code}\n"
f"error msg: {xsltproc.error_message}")
raise Exception(f"XSLT process exception(s) while compiling")
print(executable)
XSLT
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" expand-text="yes"
xmlns:p="urn:pentecom" xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="p xs">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:mode on-no-match="shallow-copy"/>
<!--only compiles with ;j (java flavor) added to flag-->
<xsl:template match="text()[matches(.,'f?ool','i')]"/>
</xsl:stylesheet>
Console Output (from PyCharm)
C:\apps\Python38\python.exe "C:\Users\Dan Haley\Desktop\try_saxon\test_saxonche_compile.py"
Traceback (most recent call last):
File "C:\Users\Dan Haley\Desktop\try_saxon\test_saxonche_compile.py", line 12, in <module>
raise Exception(f"XSLT process exception(s) while compiling")
Exception: XSLT process exception(s) while compiling
error code: None
error msg: Unable to read casevariants.xml file
Process finished with exit code 1
Here's the console output after adding ";j":
C:\apps\Python38\python.exe "C:\Users\Dan Haley\Desktop\try_saxon\test_saxonche_compile.py"
<saxonche.PyXsltExecutable object at 0x000001772B54D390>
Process finished with exit code 0
Files
Updated by O'Neil Delpratt 2 months ago
- Assignee set to O'Neil Delpratt
- Priority changed from Low to High
- Found in version set to 12.0
This is bug. The Saxon data directory seems to be missing from the SaxonC library
Updated by O'Neil Delpratt 2 months ago
- Status changed from New to Resolved
The GraalVM resource-config.json file does list several of the data file names, but is missing the casevariants.xml
, which is picked up in the gradle build script.
Bug fixed and available for the next maintenance release. Test case added to the unit tests.
Updated by O'Neil Delpratt 10 days ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in version set to 12.1
Bug fixed applied in the SaxonC 12.1 maintenance release.
Please register to edit this issue