Project

Profile

Help

Bug #5122

closed

Use of fn:all gives System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.

Added by Martin Honnen over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Category:
XPath conformance
Sprint/Milestone:
-
Start date:
2021-10-09
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
11, trunk
Fix Committed on Branch:
11, trunk
Fixed in Maintenance Release:
Platforms:
.NET, Java

Description

I am not able to use the new fn:all function with SaxonCS 11 EE, both from XSLT 4 and XPath 4 I run into an exception "System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection."

Stacktrace for some C# test bed to run "XSLT 4":

Unhandled exception. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at Saxon.Hej.functions.registry.SefFunction.callFunction(XPathContext context, F name, Sequence[] args)
   at Saxon.Hej.expr.FunctionCall.iterate(XPathContext context)
   at Saxon.Hej.expr.Expression.process(Outputter output, XPathContext context)
   at Saxon.Hej.expr.SystemFunctionCall.process(Outputter output, XPathContext context)
   at Saxon.Hej.expr.instruct.NamedTemplate.expand(Outputter output, XPathContext context)
   at Saxon.Hej.trans.XsltController.callTemplate(StructuredQName initialTemplateName, Receiver out)
   at Saxon.Hej.s9api.Xslt30Transformer.callTemplate(QName templateName, Destination destination)
   at Saxon.Api.Xslt30Transformer.CallTemplate(QName templateName, IDestination destination)
   at SaxonCSRunXSLT4.Program.Main(String[] args) in C:\Users\marti\source\repos\SaxonCSRunXSLT4\SaxonCSRunXSLT4\Program.cs:line 37

It is run against the XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="4.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="#all"
    expand-text="yes">
    
    <xsl:output method="adaptive" indent="yes" build-tree="no"/>
    
    <xsl:template match="/" name="xsl:initial-template">
        <xsl:sequence select="all((1, 3, 7), ->{. mod 2 = 1})"/>
    </xsl:template>
    
</xsl:stylesheet>

C# code:

using System;
using System.IO;
using Saxon.Api;

namespace SaxonCSRunXSLT4
{
    class Program
    {
        static void Main(string[] args)
        {
            var processor = new Processor();

            processor.SetProperty<bool>(Feature<bool>.TIMING, true);

            var xsltCompiler = processor.NewXsltCompiler();

            xsltCompiler.XsltLanguageVersion = "4.0";

            XsltExecutable xsltExecutable;

            using (var fs = File.OpenRead(args[0]))
            {
                xsltExecutable = xsltCompiler.Compile(fs);
            }

            Xslt30Transformer xslt40Transformer = xsltExecutable.Load30();

            if (args.Length == 2)
            {
                using (var fs = File.OpenRead(args[1]))
                {
                    xslt40Transformer.ApplyTemplates(fs, processor.NewSerializer(Console.Out));
                }
            }
            else
            {
                xslt40Transformer.CallTemplate(null, processor.NewSerializer(Console.Out));
            }
        
            Console.WriteLine();
        }
    }
}
Actions #1

Updated by Martin Honnen over 2 years ago

Trying to use fn:some instead of fn:all gives the same stack trace, it appears:

Unhandled exception. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at Saxon.Hej.functions.registry.SefFunction.callFunction(XPathContext context, F name, Sequence[] args)
   at Saxon.Hej.expr.FunctionCall.iterate(XPathContext context)
   at Saxon.Hej.expr.Expression.process(Outputter output, XPathContext context)
   at Saxon.Hej.expr.SystemFunctionCall.process(Outputter output, XPathContext context)
   at Saxon.Hej.expr.instruct.NamedTemplate.expand(Outputter output, XPathContext context)
   at Saxon.Hej.trans.XsltController.callTemplate(StructuredQName initialTemplateName, Receiver out)
   at Saxon.Hej.s9api.Xslt30Transformer.callTemplate(QName templateName, Destination destination)
   at Saxon.Api.Xslt30Transformer.CallTemplate(QName templateName, IDestination destination)
   at SaxonCSRunXSLT4.Program.Main(String[] args) in C:\Users\Martin Honnen\Source\Repos\martin-honnen\SaxonCSRunXSLT4\SaxonCSRunXSLT4\Program.cs:line 37
Actions #2

Updated by Michael Kay over 2 years ago

First thing I notice is that although the tests for fn:some and fn:all (qt4cg/qt4tests with -lang:QT40) run fine in the development environment, there doesn't seem to be an entry in the gradle scripts to run the QT3 test driver with this particular combination, which means that the tests might not have been run on the production build.

Looking at the code, this leads me to suspect that (a) there was a failure (in the production build) to load the embedded resource sef/function-library.sef.xml, and (b) the ArgumentOutOfRangeException is a secondary error while trying to analyse and report this failure.

fn:some and fn:all, along with some other experimental proposed 4.0 functions, are implemented in XSLT, and the compiled SEF file generated from the XSLT, contained in sef/function-library.sef.xml, is -- in theory -- shipped with the DLL as an embedded resource. I'm not sure this mechanism has been fully integrated into the build process, partly because the XSLT source code for these functions is actually in the Saxon-JS repository - it's probably the only source code shared between the SaxonJ and SaxonJS products which makes it an exception case for the build).

The gradle build script looks as if it ought to include this SEF file in the DLL, but I'm not aware of a tool that allows me to inspect the DLL to check whether it has actually done so.

Meanwhile I'll ask Norm (our gradle guru) to upgrade the test driver build scripts to run these tests so we can check whether they work.

Actions #3

Updated by Michael Kay over 2 years ago

  • Assignee set to Norm Tovey-Walsh
Actions #5

Updated by Michael Kay over 2 years ago

Note: it would of course be trivial to implement fn:some and fn:all the way most functions are implemented, in Java. Implementing them in XSLT was done because we wanted to find a way of single-sourcing function implementations across different versions of the product, and these two were convenient ways of pioneering the approach. The functions implemented this way are:

all, identity, index-where, in-scope-namespaces, is-NaN, items-after, items-before, items-from, items-until, range, slice, some

and my guess would be that they all fail the same way.

Actions #6

Updated by Vladimir Nesterovsky over 2 years ago

but I'm not aware of a tool that allows me to inspect the DLL to check whether it has actually done so.

https://github.com/icsharpcode/ILSpy is a good tool for this task.

Actions #7

Updated by Michael Kay over 2 years ago

I've added diagnostics to display the list of embedded resources in the DLL. Specifically, I added the following code to DotNetPlatform:

       public void showEmbeddedResources() {
            System.Reflection.Assembly ass = System.Reflection.Assembly.GetExecutingAssembly();
            var resourceNames = ass.GetManifestResourceNames();
            foreach (string name in resourceNames) {
                Console.WriteLine("Resource: " + name);
            }
        }

and created a diagnostic build in which this is invoked from Version.main(). The result of executing dotnet SaxonCS.dll version is now:

Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/.DS_Store
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/.DS_Store
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/.DS_Store
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/.DS_Store
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/.DS_Store
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/.DS_Store
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/analyze-string.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/json.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xlink/xlink.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xslt3/xslt30.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/xpath-functions.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/casevariants.xml
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/categories.xml
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/sef/function-library.sef.xml
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/unicodeBlocks.xml
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/catalog.xml
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/chameleon.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/override.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/profile-json.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/profile.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/generate-resolver.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/xml-to-json-indent.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/xml-to-json-pkg.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/xml-to-json.xsl
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/catalog.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/mathml.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mathml2-a.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mathml2.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/xhtml-math11-f-a.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/xhtml-math11-f.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/xhtml-math11.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/mathml3.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/rddl-xhtml.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml11.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg10/svg10.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-basic-flat.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-basic.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-flat-20030114.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-flat.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-tiny-flat.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-tiny.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/templates/svg11-template.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml10/xhtml-basic10.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml10/xhtml1-frameset.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml10/xhtml1-strict.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml10/xhtml1-transitional.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-basic11.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml11.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xmlschema10/datatypes.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xmlschema10/XMLSchema.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xmlschema11/datatypes.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xmlschema11/XMLSchema.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xmlspec/xmlspec.dtd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isoamsa.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isoamsb.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isoamsc.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isoamsn.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isoamso.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isoamsr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isobox.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isocyr1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isocyr2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isodia.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isogrk1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isogrk2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isogrk3.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isogrk4.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isolat1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isolat2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isomfrk.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isomopf.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isomscr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isonum.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isopub.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/isotech.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/mmlalias.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml1/mmlextra.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/html/lat1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/html/special.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/html/symbol.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isoamsa.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isoamsb.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isoamsc.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isoamsn.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isoamso.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isoamsr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isobox.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isocyr1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isocyr2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isodia.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isogrk1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isogrk2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isogrk3.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isogrk4.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isolat1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isolat2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isonum.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isopub.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso8879/isotech.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isoamsa.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isoamsb.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isoamsc.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isoamsn.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isoamso.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isoamsr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isogrk3.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isogrk4.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isomfrk.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isomopf.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isomscr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/iso9573-13/isotech.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isoamsa.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isoamsb.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isoamsc.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isoamsn.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isoamso.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isoamsr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isobox.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isocyr1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isocyr2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isodia.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isogrk3.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isolat1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isolat2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isomfrk.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isomopf.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isomscr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isonum.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isopub.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/isotech.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mathml/mmlalias.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mathml/mmlextra.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mmlalias.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mmlextra.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isoamsa.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isoamsb.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isoamsc.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isoamsn.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isoamso.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isoamsr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isobox.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isocyr1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isocyr2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isodia.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isogrk3.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isolat1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isolat2.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isomfrk.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isomopf.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isomscr.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isonum.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isopub.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/isotech.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/mmlalias.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/mmlextra.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml-lat1.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml-special.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml-symbol.ent
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml2/mathml2-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/mathml/mathml3/mathml3-qname.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/rddl-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/rddl-resource-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-arch-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-attribs-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-base-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-basic-form-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-basic-table-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-blkphras-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-blkstruct-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-charent-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-datatypes-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-events-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-framework-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-hypertext-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-image-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-inlphras-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-inlstruct-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-link-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-list-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-meta-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-notations-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-object-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-param-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-rddl-model-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-struct-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xhtml-text-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/rddl/xlink-module-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-animation.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-animevents-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-clip.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-filter.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-font.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-graphics-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-paint-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-structure.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-basic-text.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-clip.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-conditional.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-container-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-core-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-cursor.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-datatypes.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-docevents-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-extensibility.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-extresources-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-filter.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-font.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-framework.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-gradient.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-graphevents-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-graphics-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-hyperlink.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-image.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-marker.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-mask.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-opacity-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-paint-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-pattern.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-profile.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-qname.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-script.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-shape.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-structure.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-style.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-text.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-view.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-viewport-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg-xlink-attrib.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-attribs.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-basic-attribs.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-basic-model.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-model.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-tiny-attribs.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/svg11-tiny-model.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/templates/svg-template-qname.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/svg11/templates/svg-template.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-access-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-access-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-applet-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-arch-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-attribs-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-base-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-basic-form-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-basic-table-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-basic10-model-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-basic11-model-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-bdo-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-blkphras-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-blkpres-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-blkstruct-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-charent-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-csismap-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-datatypes-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-edit-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-events-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-form-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-frames-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-framework-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-hyperAttributes-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-hypertext-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-iframe-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-image-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-inlphras-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-inlpres-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-inlstruct-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-inlstyle-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-inputmode-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-legacy-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-legacy-redecl-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-link-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-list-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-meta-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-meta-2.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-metaAttributes-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-nameident-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-notations-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-object-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-param-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-pres-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-print10-model-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-rdfa-model-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-rdfa-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-role-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-role-qname-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-ruby-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-script-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-ssismap-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-struct-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-style-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-table-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-target-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml-text-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xhtml11/xhtml11-model-1.mod
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/xpath-functions.scm

There are some obvious oddities here: we don't really want to be exposing the full path of the files in the build machine, but this isn't stopping things working; in general these resources are found correctly. Also, we really don't want to include the .DS_Store files.

So what's different about sef/function-library.sef.xml?

Actions #8

Updated by Michael Kay over 2 years ago

Well, I made two changes: (a) I renamed the file "function-library.sef" (without the double extension), and (b) I put it in the top level data directory (loading it without the directory prefix sef/. With these changes, the file is picked up correctly and queries that use these functions work properly.

(The first change on its own wasn't enough. I haven't determined whether the second change on its own would be enough.)

This is a data point that should point the way to a solution, but it doesn't explain what exactly the problem is.

Actions #11

Updated by Michael Kay over 2 years ago

I've now gone back to the original filename sef/xpath-functions.sef.xml, and it works if I take out the code in DotNetPlatform.loadResource() that replaces "/" by ".".

Unfortunately this code is needed to find the resource in my Rider build.

So currently, to make it work in both, I'm first trying to find the resource using the name as supplied (which works in the production build), and if that fails, I'm trying to find it using the filename after mangling (which works in Rider). That's a viable but thoroughly ugly way forward.

Actions #14

Updated by Michael Kay over 2 years ago

Now ran the code to list embedded resources in my Rider build and it comes out as:

Resource: Saxon.resources.net.sf.saxon.data.casevariants.xml
Resource: Saxon.resources.net.sf.saxon.data.categories.xml
Resource: Saxon.resources.net.sf.saxon.data.sef.function-library.sef.xml

which explains why the slash-to-dot replacement needs to be done in this case.

The resources were added to the Rider project using "Add existing item" followed by "Create Link", and they appear in the .csproj file as a long sequence of entries in the form

     <EmbeddedResource Include="..\..\..\GitHub\saxon2020\src\main\resources\net\sf\saxon\data\xml-to-json.xsl">
        <Link>resources\net\sf\saxon\data\xml-to-json.xsl</Link>
      </EmbeddedResource>

In contrast the production .csproj file has a single entry of the form

     <EmbeddedResource Include="../../src/main/resources/**/*">
        <LogicalName>$(AssemblyName).$([System.IO.Path]::GetFullPath('%(Identity)'))</LogicalName>
      </EmbeddedResource>

This page: https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/web-deployment-in-the-enterprise/understanding-the-project-file

documents the use of the syntax $(AssemblyName) to substitute the values of variables into the file content, though it doesn't actually mention that AssemblyName is a predefined variable. Nor does it explain the syntax $([System.IO.Path]::GetFullPath('%(Identity)')) which is clearly being used to get the full path of each resource and use it to compute a logical name. It seems from this that the substitution of "/" by "." in logical names is a convention rather than a requirement, and that "/" is a valid character in a logical resource name. But it's very hard to get information on this.

I've changed my Rider project, so instead of having a long list of EmbeddedResource elements in the format created by Rider when I add the whole folder, I now have a manually created entry in the form:

    <ItemGroup>
      <EmbeddedResource Include="/Users/mike/GitHub/saxon2020/src/main/resources/**/*">
        <LogicalName>SaxonCS.$([System.IO.Path]::GetFullPath('%(Identity)'))</LogicalName>
      </EmbeddedResource>
    </ItemGroup>

and this appears to do the trick. The diagnostic "version" output now lists the resources as:

Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/analyze-string.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/json.xsd
Resource: SaxonCS./Users/mike/GitHub/saxon2020/src/main/resources/net/sf/saxon/data/w3c/xlink/xlink.xsd

and it finds them at run-time without the slash-to-dot substitution. So I think I'm going to stick with that.

I've found I can also add the attribute Exclude="/Users/mike/GitHub/saxon2020/src/main/resources/**/.DS_Store"

Actions #15

Updated by Michael Kay over 2 years ago

Other changes made:

(a) SefFunction produces clean diagnostics if it fails to load the SEF resource, rather than crashing

(b) I've left the diagnostics in, with a control switch: dotnet SaxonCS version -resources will now display the names of the embedded resources on system error output.

It remains to check that the build script now runs the qt4 tests that were previously omitted.

Actions #16

Updated by Michael Kay over 2 years ago

Changes committed; now running th4 qt4 tests from the build (with -lang:XQ40). Getting

23504 successes, 18 failures, 0 incorrect ErrorCode, 9617 not run
Failing tests:
  fn-highest - 2
  fn-lowest - 1
  fn-parts - 13
  app-spec-examples - 2

This is the same result as we get in Rider. I need to look at these failures and see whether they are bugs (in the product or the tests or the documentation) but if there are issues, they don't come within the scope of this bug, which I think can now be marked as resolved.

Actions #17

Updated by Michael Kay over 2 years ago

  • Status changed from New to Resolved

The failing tests are now the subject of their own bug reports. Marking as resolved.

Actions #18

Updated by O'Neil Delpratt about 2 years ago

  • % Done changed from 0 to 100
  • Fixed in Maintenance Release 11.1 added
  • Platforms .NET, Java added

Bug fix applied in the Saxon 11.1 release.

Actions #19

Updated by O'Neil Delpratt about 2 years ago

  • Fix Committed on Branch trunk added
Actions #20

Updated by O'Neil Delpratt about 2 years ago

  • Status changed from Resolved to Closed
Actions #21

Updated by Michael Kay about 2 years ago

  • Status changed from Closed to In Progress

Looks like we have two issues:

(a) the change to the way we handle embedded resources in 11.1 seems to have stopped this one being picked up

(b) the tests are working in Rider but not in the released product, which indicates a gap in post-build testing.

Actions #22

Updated by Norm Tovey-Walsh about 2 years ago

  • Status changed from In Progress to Resolved

With respect to (a), I think the issues have been resolved. It is included in SaxonJ, now that you've fixed the .csproj file, it will be included in SaxonCS, and now that O'Neil has fixed the build script, it will be included in SaxonC.

I've made the SEF file explicit in a comment on Bug #5257 (internal build & release issues), which is about testing release artifacts.

I propose to mark this bug as resolved.

Actions #23

Updated by Norm Tovey-Walsh about 2 years ago

  • Status changed from Resolved to Closed
  • Applies to branch trunk added
  • Fix Committed on Branch 11 added
  • Fixed in Maintenance Release 11.2 added
  • Fixed in Maintenance Release deleted (11.1)

Please register to edit this issue

Also available in: Atom PDF