You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Svante Schubert <sv...@gmail.com> on 2024/09/11 13:25:20 UTC

Seek for advice with Xerces xml-schema-1.1-tests

Dear experts,

I am in need of some advice using the new Xerces xml-schema-1.1-tests
<https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.

The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
<https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub branch
<https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev> and likely I
am missing something obvious.
The error given is "*sch-props-correct.2: An XSD schema cannot contain two
global components with the same name.*" and *the test file does have two
global element name declarations with the same name*
<https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
still the test is not meant to fail.

What did I miss?

My steps to do my smoke testing:

   1. As I am not able to easily build & debug with my IDEs (like with
   Maven) using the existing ANT scripts, I generated an easy build & debug
   environment for my set of IDEs (Apache Netbeans & Intellij IDEA) represented
   by a single commit of noise
   <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
   .
   2. Instead of setting an environment variable, I hard coded the path to
   my tests
   <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
   .
   3. Executed in Netbeans test suite
   org.apache.xerces.tests.AllXercesXSD11Tests
   <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
and
   getting aside of the above so many errors that I must have done something
   basic wrong.

Thanks for any help!
Svante

Re: Initial Maven build & test prototype for Xerces XSD 1.1 with GitHub cloud builds & tests on commits - earlier: Re: Seek for advice with Xerces xml-schema-1.1-tests

Posted by Svante Schubert <sv...@gmail.com>.
I am getting closer, solved some riddles:

   1. I had German error messages instead of English ones, as the JDK
   Xerces has such language bundles (not the Apache Xerces), which confused me
   at the beginning as Xerces did not have German translations - from my
   intermediate (unnecessary) changes, I just left the commit to using just
   one Singletone of a Locale object for Locale.getDefault provided now on
   constant, see commit
   <https://github.com/svanteschubert/xerces-j/commit/6a26b9382375032c67a97fe72e7d6193defddc58>
   .
   2. The Xerces JDK parser is taken wrongly, as some test cases are
   choosing explicitly to validate in XSD 1.0 mode (e.g. see
   ConditionalInclusionTests
   <https://github.com/svanteschubert/xerces-j/blob/maven-prototype/src/test/java/org/apache/xerces/tests/ConditionalInclusionTests.java#L76>),
   unfortunately, only for XSD 1.1 mode a factory was explicitly being given:
   System.setProperty("javax.xml.validation.SchemaFactory:" +
   SCHEMA_11_LANGUAGE, SCHEMA_11_FACTORY);
   no factory was given for XSD 1.0, but was now added:
   System.setProperty("javax.xml.validation.SchemaFactory:" +
   SCHEMA_10_LANGUAGE, SCHEMA_10_FACTORY);
   After setting the above System property in the parent test class the
   Apache Xerces was being taken.
   *I would suggest setting both properties during loading Xerces! *
   Making Xerces the default when loading it, avoiding such problems for
   others.
   3. In the pom.xml
   <https://github.com/svanteschubert/xerces-j/blob/maven-prototype/pom.xml#L39>,
   I suggest using the first JDK LTS release after JDK's module refactoring,
   which is JDK 11.
   However I had problems with our PsychoPathXPathProcessor (XPath 2.0
   engine), which appeared as security exceptions, so I updated the version -
   to the only version where sources are findable
   <https://mvnrepository.com/artifact/com.rackspace.eclipse.webtools.sourceediting/org.eclipse.wst.xml.xpath2.processor>
   . PsychoPathXPathProcessor home at Eclipse looked abandoned.
   <https://wiki.eclipse.org/PsychoPathXPathProcessor/> Sources can not be
   viewed at Eclipse.
   *Perhaps someone has more knowledge and/or connection and can provide a
   link?*
   The downside of the version upgrade from version 1.2.1 to 2.1.100, there
   are some build issues due to API changes, on the bright side all JARs are
   on Maven Central:
   Calling on project root '*mvn dependency:tree -Dverbose*' shows:
   INFO] --- dependency:3.7.1:tree (default-cli) @ xercesImpl ---
   [INFO] xerces:xercesImpl:jar:2.12.3-SNAPSHOT
   [INFO] +- xml-apis:xml-apis:jar:1.4.01:compile
   [INFO] +- xml-resolver:xml-resolver:jar:1.2:compile
   [INFO] +- com.rackspace.eclipse.webtools.sourceediting
   :org.eclipse.wst.xml.xpath2.processor:jar:2.1.100:compile
   [INFO] |  +- edu.princeton.cup:java-cup:jar:10k:compile
   [INFO] |  \- com.ibm.icu:icu4j:jar:4.6:compile
   [INFO] \- junit:junit:jar:4.13.2:test
   [INFO]    \- org.hamcrest:hamcrest-core:jar:1.3:test
   No more JARs have to be bundled if this is working out! 🥳

Hope you are enjoying your Friday!
Svante




On Fri, 13 Sept 2024 at 02:33, Svante Schubert <sv...@gmail.com>
wrote:

> Getting tired, just a quick correction:
>
>    1. Copied the tests of the "xml-schema-1.1-tests" git branch from
>    "src" to "*src/test/java*" in the "xml-schema-1.1-dev" branch
>    2. Copied the test files of the "xml-schema-1.1-tests"  git branch
>    from "data" to "*src/test/resources*" in the "xml-schema-1.1-dev"
>    branch
>
>
> On Fri, 13 Sept 2024 at 02:28, Svante Schubert <sv...@apache.org>
> wrote:
>
>> Dear Xerces-J users,
>>
>> I enabled a prototype of Maven for Xerces-j on top of the
>> "xml-schema-1.1-dev" Git branch to build and test with Netbeans - any IDE
>> supporting Maven, see
>> https://github.com/svanteschubert/xerces-j/tree/maven-prototype
>>
>> Aimed to change as little as possible at the beginning:
>>
>>    1. Moved all Java files of the "src" directory to "src/main/java"
>>    2. Moved all *.properties files of the "src" directory to
>>    "src/main/resources"
>>    3. Copied the tests of the "xml-schema-1.1-tests" git branch from
>>    "src" to "src/main/test" in the "xml-schema-1.1-dev" branch
>>    4. Copied the test files of the "xml-schema-1.1-tests"  git branch
>>    from "data" to "src/main/resources" in the "xml-schema-1.1-dev" branch
>>    5. The pom.xml was initialized from
>>    https://repo1.maven.org/maven2/xerces/xercesImpl/2.12.2/xercesImpl-2.12.2.pom
>>    6. Afterwards, the pom.xml was enriched from the pom.xml of the
>>    former Apache Incubator project ODF Toolkit/ODFDOM
>>    7. The .github directory was overtaken/adapted from the former Apache
>>    Incubator project ODF Toolkit/ODFDOM
>>    8. Some JARs are yet not on Maven and were still reused locally from
>>    the tools directory
>>
>> By this with every commit regression testing is triggered on GitHub, so
>> you might far easier see and reproduce my problem:
>>
>> https://github.com/svanteschubert/xerces-j/actions/runs/10840565076/job/30083097656#step:4:554
>>
>> Likely the root problem is that the correct SchemaFactory is not found
>> and the JDK 8 internal Xerces is being taken.
>> Does anybody know the fix? Likely it is a common problem...
>>
>> I will discuss the challenges of the Maven build in the next few days on
>> the dev list...no need to continue, if nobody is interested...
>>
>> Greetings from Germany,
>> Svante
>>
>> On Thu, 12 Sept 2024 at 18:45, Svante Schubert <sv...@apache.org>
>> wrote:
>>
>>> Can anyone please provide feedback if it can be produced that the
>>> AllXercesXSD11Tests
>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java>
>>> are failing?
>>>
>>>    1. for the downloaded Xerces 1.1 version
>>>    <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
>>>    ?
>>>    2. for the Xerces 1.1 dev GitHub branch?
>>>    3. that the earlier-mentioned test should fail as it did due to the
>>>    duplicated named global element declaration?
>>>    Sorry, but I did earlier a shell-game trick to myself and added not
>>>    an official Xerces1.1.jar but my previous AllXercesXSD11Tests
>>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java> only
>>>    failed correctly in my local test branch, where I added prefix support for
>>>    the loaded XSDs at run-time...still, tests fail for the official Xerces 1.1
>>>    release.
>>>
>>> I tested now two different official Xerces 1.1 versions (and added
>>> Netbeans IDE build environment to two commits of my prototype branch
>>> smoke-testing)
>>>
>>>    1. a Netbeans environment using the downloaded Xerces 1.1 version
>>>    <https://github.com/apache/xerces-j/commit/1930cbe2ec1a4d5e4df4a685c60b66a86745e285>
>>>    2. a Netbeans environment using the Xerces 1.1 dev GitHub branch
>>>    <https://github.com/apache/xerces-j/commit/57dcf82032d874c9bed5851349635e7c0a1131f1>
>>>
>>> Netbeans build and debug environment is easily addable for the
>>> xml-schema-1.1-tests GitHub branch of Xerces by creating a new
>>> Netbeans project and
>>>
>>>    - In case Netbeans debug support for downloaded Xerces 1.1 ZIP
>>>    <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
>>>    :
>>>    Add all JARs from the downloaded ZIP of Xerces 1.1 to the classpath
>>>    - switch to JDK 8 (as afterwards JDKs API changed, e.g. tools.jar not
>>>    available)
>>>
>>>
>>>    - In case Netbeans debug support for Github branch
>>>    xml-schema-1.1-dev:
>>>    Checkout from Github the xml-schema-1.1-dev branch and add in
>>>    Netbeans src and sample as source directories, use JDK 8 and add the JARs
>>>    from the tools directory (aside from XercesImp.jar), which will be built.
>>>    Afterwards, add the newly created Xerces JAR and the previously
>>>    added JARs to your other xml-schema-1.1-tests Netbeans project.
>>>    JUnit and Hamcrest will be added by Netbeans automatically
>>>    when problems are resolved
>>>
>>> Quite cumbersome, I think it's about time to add Maven support... :-)
>>>
>>> Two questions in the end regarding the current GitHub branch structure:
>>>
>>>    1. Why is the xml-schema-1.1-dev GitHub branch not placed at the top
>>>    of the main branch? XSD 1.1 specs states to be backward compatible with XSD
>>>    1.0.
>>>    2. Why are the tests of the xml-schema-1.1-tests GitHub branch not
>>>    added as well to the main branch?
>>>    3. In case a Maven to build (and test) is being added, regression
>>>    tests could be made on GitHub for every commit to keep the branches from
>>>    becoming red.
>>>
>>> Currently, there are multiple versions of sources for Xerces
>>> The different Xerces sources able to be downloaded as ZIP and the
>>> differences between Subversion and the GitHub branches make it complex for
>>> newcomers.
>>> Is there still a reason that prevents these minimize the amount of
>>> Xerces sources, I suggest the main branch of GitHub as the latest and
>>> greatest source, using Git labels for releases.
>>>
>>> Thanks for any feedback,
>>> Svante
>>>
>>>
>>> On Thu, 12 Sept 2024 at 13:58, Svante Schubert <
>>> svante.schubert@gmail.com> wrote:
>>>
>>>> PS:
>>>> To ease reproduction, I have added a stack trace (below) - note below
>>>> is just the German-translated version of the error message mentioned
>>>> earlier:
>>>> "*sch-props-correct.2: An XSD schema cannot contain two global
>>>> components with the same name.*"
>>>> and the SaxParseException is already thrown when creating the Schema,
>>>> even before the test:
>>>>
>>>> https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81
>>>>
>>>> org.xml.sax.SAXParseException; systemId:
>>>> file:///E:/dev/tausch/xml/xsd-debug/xml-schema-1.1-tests/data/version-control/test37.xsd;
>>>> lineNumber: 7; columnNumber: 46;
>>>> *sch-props-correct.2: Ein Schema kann nicht zwei globale Komponenten
>>>> mit demselben Namen enthalten. Dieses Schema enth�lt zwei Vorkommen von
>>>> ',test'.*
>>>> at
>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
>>>> at
>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4204)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4187)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.checkForDuplicateNames(XSDHandler.java:3820)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1362)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:651)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:569)
>>>> at
>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:535)
>>>> at
>>>> com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:269)
>>>> at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>>>> * at
>>>> org.apache.xerces.tests.ConditionalInclusionTests.testVersionControl3(ConditionalInclusionTests.java:81)
>>>> <https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81>*
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>> at junit.framework.TestCase.runTest(TestCase.java:177)
>>>> at junit.framework.TestCase.runBare(TestCase.java:142)
>>>> at junit.framework.TestResult$1.protect(TestResult.java:122)
>>>> at junit.framework.TestResult.runProtected(TestResult.java:142)
>>>> at junit.framework.TestResult.run(TestResult.java:125)
>>>> at junit.framework.TestCase.run(TestCase.java:130)
>>>> at junit.framework.TestSuite.runTest(TestSuite.java:241)
>>>> at junit.framework.TestSuite.run(TestSuite.java:236)
>>>> at junit.framework.TestSuite.runTest(TestSuite.java:241)
>>>> at junit.framework.TestSuite.run(TestSuite.java:236)
>>>> at
>>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
>>>> at
>>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
>>>> at
>>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)
>>>>
>>>> On Thu, 12 Sept 2024 at 08:24, Svante Schubert <
>>>> svanteschubert@apache.org> wrote:
>>>>
>>>>> Dear Xerces user group,
>>>>>
>>>>> Let me add the specification reference to the invalidness of the test
>>>>> file
>>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>
>>>>> : https://www.w3.org/TR/xmlschema11-1/#concepts-nameSymbolSpaces
>>>>> *"But it is not possible for ... two distinct top-level element
>>>>> declarations, to share the name my:abc"*
>>>>>
>>>>> If the build were in Maven and nightly tests were run by GitHub, I
>>>>> would not ask this question. Perhaps it is worth considering a switch from
>>>>> Ant to Maven?
>>>>> In general, invalid test files should be explicitly marked as such
>>>>> like within a subfolder 'invalid'.
>>>>> Would be helpful to download groups of test files from Maven, like
>>>>> versions of deliverables as well (but this might be a topic for Maven's
>>>>> user's list)...
>>>>>
>>>>> Still, I believe I am doing an oversight...
>>>>>
>>>>> Best regards,
>>>>> Svante
>>>>>
>>>>> PS: Used my Apache email now and am uncertain if I should have started
>>>>> on the dev list right away instead of users - I would join these lists for
>>>>> software in general... (as you want to users become developers..)
>>>>>
>>>>> On Wed, 11 Sept 2024 at 15:25, Svante Schubert <
>>>>> svante.schubert@gmail.com> wrote:
>>>>>
>>>>>> Dear experts,
>>>>>>
>>>>>> I am in need of some advice using the new Xerces xml-schema-1.1-tests
>>>>>> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.
>>>>>>
>>>>>> The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
>>>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
>>>>>> fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub
>>>>>> branch <https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev>
>>>>>> and likely I am missing something obvious.
>>>>>> The error given is "*sch-props-correct.2: An XSD schema cannot
>>>>>> contain two global components with the same name.*" and *the test
>>>>>> file does have two global element name declarations with the same name*
>>>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
>>>>>> still the test is not meant to fail.
>>>>>>
>>>>>> What did I miss?
>>>>>>
>>>>>> My steps to do my smoke testing:
>>>>>>
>>>>>>    1. As I am not able to easily build & debug with my IDEs (like
>>>>>>    with Maven) using the existing ANT scripts, I generated an easy build &
>>>>>>    debug environment for my set of IDEs (Apache Netbeans & Intellij IDEA)
>>>>>>    represented by a single commit of noise
>>>>>>    <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
>>>>>>    .
>>>>>>    2. Instead of setting an environment variable, I hard coded the
>>>>>>    path to my tests
>>>>>>    <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
>>>>>>    .
>>>>>>    3. Executed in Netbeans test suite
>>>>>>    org.apache.xerces.tests.AllXercesXSD11Tests
>>>>>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31> and
>>>>>>    getting aside of the above so many errors that I must have done something
>>>>>>    basic wrong.
>>>>>>
>>>>>> Thanks for any help!
>>>>>> Svante
>>>>>>
>>>>>

Re: Initial Maven build & test prototype for Xerces XSD 1.1 with GitHub cloud builds & tests on commits - earlier: Re: Seek for advice with Xerces xml-schema-1.1-tests

Posted by Svante Schubert <sv...@gmail.com>.
Getting tired, just a quick correction:

   1. Copied the tests of the "xml-schema-1.1-tests" git branch from "src"
   to "*src/test/java*" in the "xml-schema-1.1-dev" branch
   2. Copied the test files of the "xml-schema-1.1-tests"  git branch from
   "data" to "*src/test/resources*" in the "xml-schema-1.1-dev" branch


On Fri, 13 Sept 2024 at 02:28, Svante Schubert <sv...@apache.org>
wrote:

> Dear Xerces-J users,
>
> I enabled a prototype of Maven for Xerces-j on top of the
> "xml-schema-1.1-dev" Git branch to build and test with Netbeans - any IDE
> supporting Maven, see
> https://github.com/svanteschubert/xerces-j/tree/maven-prototype
>
> Aimed to change as little as possible at the beginning:
>
>    1. Moved all Java files of the "src" directory to "src/main/java"
>    2. Moved all *.properties files of the "src" directory to
>    "src/main/resources"
>    3. Copied the tests of the "xml-schema-1.1-tests" git branch from
>    "src" to "src/main/test" in the "xml-schema-1.1-dev" branch
>    4. Copied the test files of the "xml-schema-1.1-tests"  git branch
>    from "data" to "src/main/resources" in the "xml-schema-1.1-dev" branch
>    5. The pom.xml was initialized from
>    https://repo1.maven.org/maven2/xerces/xercesImpl/2.12.2/xercesImpl-2.12.2.pom
>    6. Afterwards, the pom.xml was enriched from the pom.xml of the former
>    Apache Incubator project ODF Toolkit/ODFDOM
>    7. The .github directory was overtaken/adapted from the former Apache
>    Incubator project ODF Toolkit/ODFDOM
>    8. Some JARs are yet not on Maven and were still reused locally from
>    the tools directory
>
> By this with every commit regression testing is triggered on GitHub, so
> you might far easier see and reproduce my problem:
>
> https://github.com/svanteschubert/xerces-j/actions/runs/10840565076/job/30083097656#step:4:554
>
> Likely the root problem is that the correct SchemaFactory is not found and
> the JDK 8 internal Xerces is being taken.
> Does anybody know the fix? Likely it is a common problem...
>
> I will discuss the challenges of the Maven build in the next few days on
> the dev list...no need to continue, if nobody is interested...
>
> Greetings from Germany,
> Svante
>
> On Thu, 12 Sept 2024 at 18:45, Svante Schubert <sv...@apache.org>
> wrote:
>
>> Can anyone please provide feedback if it can be produced that the
>> AllXercesXSD11Tests
>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java>
>> are failing?
>>
>>    1. for the downloaded Xerces 1.1 version
>>    <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
>>    ?
>>    2. for the Xerces 1.1 dev GitHub branch?
>>    3. that the earlier-mentioned test should fail as it did due to the
>>    duplicated named global element declaration?
>>    Sorry, but I did earlier a shell-game trick to myself and added not
>>    an official Xerces1.1.jar but my previous AllXercesXSD11Tests
>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java> only
>>    failed correctly in my local test branch, where I added prefix support for
>>    the loaded XSDs at run-time...still, tests fail for the official Xerces 1.1
>>    release.
>>
>> I tested now two different official Xerces 1.1 versions (and added
>> Netbeans IDE build environment to two commits of my prototype branch
>> smoke-testing)
>>
>>    1. a Netbeans environment using the downloaded Xerces 1.1 version
>>    <https://github.com/apache/xerces-j/commit/1930cbe2ec1a4d5e4df4a685c60b66a86745e285>
>>    2. a Netbeans environment using the Xerces 1.1 dev GitHub branch
>>    <https://github.com/apache/xerces-j/commit/57dcf82032d874c9bed5851349635e7c0a1131f1>
>>
>> Netbeans build and debug environment is easily addable for the
>> xml-schema-1.1-tests GitHub branch of Xerces by creating a new
>> Netbeans project and
>>
>>    - In case Netbeans debug support for downloaded Xerces 1.1 ZIP
>>    <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
>>    :
>>    Add all JARs from the downloaded ZIP of Xerces 1.1 to the classpath -
>>    switch to JDK 8 (as afterwards JDKs API changed, e.g. tools.jar not
>>    available)
>>
>>
>>    - In case Netbeans debug support for Github branch xml-schema-1.1-dev:
>>    Checkout from Github the xml-schema-1.1-dev branch and add in
>>    Netbeans src and sample as source directories, use JDK 8 and add the JARs
>>    from the tools directory (aside from XercesImp.jar), which will be built.
>>    Afterwards, add the newly created Xerces JAR and the previously added
>>    JARs to your other xml-schema-1.1-tests Netbeans project.
>>    JUnit and Hamcrest will be added by Netbeans automatically
>>    when problems are resolved
>>
>> Quite cumbersome, I think it's about time to add Maven support... :-)
>>
>> Two questions in the end regarding the current GitHub branch structure:
>>
>>    1. Why is the xml-schema-1.1-dev GitHub branch not placed at the top
>>    of the main branch? XSD 1.1 specs states to be backward compatible with XSD
>>    1.0.
>>    2. Why are the tests of the xml-schema-1.1-tests GitHub branch not
>>    added as well to the main branch?
>>    3. In case a Maven to build (and test) is being added, regression
>>    tests could be made on GitHub for every commit to keep the branches from
>>    becoming red.
>>
>> Currently, there are multiple versions of sources for Xerces
>> The different Xerces sources able to be downloaded as ZIP and the
>> differences between Subversion and the GitHub branches make it complex for
>> newcomers.
>> Is there still a reason that prevents these minimize the amount of Xerces
>> sources, I suggest the main branch of GitHub as the latest and greatest
>> source, using Git labels for releases.
>>
>> Thanks for any feedback,
>> Svante
>>
>>
>> On Thu, 12 Sept 2024 at 13:58, Svante Schubert <sv...@gmail.com>
>> wrote:
>>
>>> PS:
>>> To ease reproduction, I have added a stack trace (below) - note below is
>>> just the German-translated version of the error message mentioned earlier:
>>> "*sch-props-correct.2: An XSD schema cannot contain two global
>>> components with the same name.*"
>>> and the SaxParseException is already thrown when creating the Schema,
>>> even before the test:
>>>
>>> https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81
>>>
>>> org.xml.sax.SAXParseException; systemId:
>>> file:///E:/dev/tausch/xml/xsd-debug/xml-schema-1.1-tests/data/version-control/test37.xsd;
>>> lineNumber: 7; columnNumber: 46;
>>> *sch-props-correct.2: Ein Schema kann nicht zwei globale Komponenten mit
>>> demselben Namen enthalten. Dieses Schema enth�lt zwei Vorkommen von
>>> ',test'.*
>>> at
>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
>>> at
>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4204)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4187)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.checkForDuplicateNames(XSDHandler.java:3820)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1362)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:651)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:569)
>>> at
>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:535)
>>> at
>>> com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:269)
>>> at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>>> * at
>>> org.apache.xerces.tests.ConditionalInclusionTests.testVersionControl3(ConditionalInclusionTests.java:81)
>>> <https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81>*
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>> at junit.framework.TestCase.runTest(TestCase.java:177)
>>> at junit.framework.TestCase.runBare(TestCase.java:142)
>>> at junit.framework.TestResult$1.protect(TestResult.java:122)
>>> at junit.framework.TestResult.runProtected(TestResult.java:142)
>>> at junit.framework.TestResult.run(TestResult.java:125)
>>> at junit.framework.TestCase.run(TestCase.java:130)
>>> at junit.framework.TestSuite.runTest(TestSuite.java:241)
>>> at junit.framework.TestSuite.run(TestSuite.java:236)
>>> at junit.framework.TestSuite.runTest(TestSuite.java:241)
>>> at junit.framework.TestSuite.run(TestSuite.java:236)
>>> at
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
>>> at
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
>>> at
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)
>>>
>>> On Thu, 12 Sept 2024 at 08:24, Svante Schubert <
>>> svanteschubert@apache.org> wrote:
>>>
>>>> Dear Xerces user group,
>>>>
>>>> Let me add the specification reference to the invalidness of the test
>>>> file
>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>
>>>> : https://www.w3.org/TR/xmlschema11-1/#concepts-nameSymbolSpaces
>>>> *"But it is not possible for ... two distinct top-level element
>>>> declarations, to share the name my:abc"*
>>>>
>>>> If the build were in Maven and nightly tests were run by GitHub, I
>>>> would not ask this question. Perhaps it is worth considering a switch from
>>>> Ant to Maven?
>>>> In general, invalid test files should be explicitly marked as such like
>>>> within a subfolder 'invalid'.
>>>> Would be helpful to download groups of test files from Maven, like
>>>> versions of deliverables as well (but this might be a topic for Maven's
>>>> user's list)...
>>>>
>>>> Still, I believe I am doing an oversight...
>>>>
>>>> Best regards,
>>>> Svante
>>>>
>>>> PS: Used my Apache email now and am uncertain if I should have started
>>>> on the dev list right away instead of users - I would join these lists for
>>>> software in general... (as you want to users become developers..)
>>>>
>>>> On Wed, 11 Sept 2024 at 15:25, Svante Schubert <
>>>> svante.schubert@gmail.com> wrote:
>>>>
>>>>> Dear experts,
>>>>>
>>>>> I am in need of some advice using the new Xerces xml-schema-1.1-tests
>>>>> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.
>>>>>
>>>>> The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
>>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
>>>>> fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub
>>>>> branch <https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev>
>>>>> and likely I am missing something obvious.
>>>>> The error given is "*sch-props-correct.2: An XSD schema cannot
>>>>> contain two global components with the same name.*" and *the test
>>>>> file does have two global element name declarations with the same name*
>>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
>>>>> still the test is not meant to fail.
>>>>>
>>>>> What did I miss?
>>>>>
>>>>> My steps to do my smoke testing:
>>>>>
>>>>>    1. As I am not able to easily build & debug with my IDEs (like
>>>>>    with Maven) using the existing ANT scripts, I generated an easy build &
>>>>>    debug environment for my set of IDEs (Apache Netbeans & Intellij IDEA)
>>>>>    represented by a single commit of noise
>>>>>    <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
>>>>>    .
>>>>>    2. Instead of setting an environment variable, I hard coded the
>>>>>    path to my tests
>>>>>    <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
>>>>>    .
>>>>>    3. Executed in Netbeans test suite
>>>>>    org.apache.xerces.tests.AllXercesXSD11Tests
>>>>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31> and
>>>>>    getting aside of the above so many errors that I must have done something
>>>>>    basic wrong.
>>>>>
>>>>> Thanks for any help!
>>>>> Svante
>>>>>
>>>>

Initial Maven build & test prototype for Xerces XSD 1.1 with GitHub cloud builds & tests on commits - earlier: Re: Seek for advice with Xerces xml-schema-1.1-tests

Posted by Svante Schubert <sv...@apache.org>.
Dear Xerces-J users,

I enabled a prototype of Maven for Xerces-j on top of the
"xml-schema-1.1-dev" Git branch to build and test with Netbeans - any IDE
supporting Maven, see
https://github.com/svanteschubert/xerces-j/tree/maven-prototype

Aimed to change as little as possible at the beginning:

   1. Moved all Java files of the "src" directory to "src/main/java"
   2. Moved all *.properties files of the "src" directory to
   "src/main/resources"
   3. Copied the tests of the "xml-schema-1.1-tests" git branch from "src"
   to "src/main/test" in the "xml-schema-1.1-dev" branch
   4. Copied the test files of the "xml-schema-1.1-tests"  git branch from
   "data" to "src/main/resources" in the "xml-schema-1.1-dev" branch
   5. The pom.xml was initialized from
   https://repo1.maven.org/maven2/xerces/xercesImpl/2.12.2/xercesImpl-2.12.2.pom
   6. Afterwards, the pom.xml was enriched from the pom.xml of the former
   Apache Incubator project ODF Toolkit/ODFDOM
   7. The .github directory was overtaken/adapted from the former Apache
   Incubator project ODF Toolkit/ODFDOM
   8. Some JARs are yet not on Maven and were still reused locally from the
   tools directory

By this with every commit regression testing is triggered on GitHub, so you
might far easier see and reproduce my problem:
https://github.com/svanteschubert/xerces-j/actions/runs/10840565076/job/30083097656#step:4:554

Likely the root problem is that the correct SchemaFactory is not found and
the JDK 8 internal Xerces is being taken.
Does anybody know the fix? Likely it is a common problem...

I will discuss the challenges of the Maven build in the next few days on
the dev list...no need to continue, if nobody is interested...

Greetings from Germany,
Svante

On Thu, 12 Sept 2024 at 18:45, Svante Schubert <sv...@apache.org>
wrote:

> Can anyone please provide feedback if it can be produced that the
> AllXercesXSD11Tests
> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java>
> are failing?
>
>    1. for the downloaded Xerces 1.1 version
>    <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
>    ?
>    2. for the Xerces 1.1 dev GitHub branch?
>    3. that the earlier-mentioned test should fail as it did due to the
>    duplicated named global element declaration?
>    Sorry, but I did earlier a shell-game trick to myself and added not an
>    official Xerces1.1.jar but my previous AllXercesXSD11Tests
>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java> only
>    failed correctly in my local test branch, where I added prefix support for
>    the loaded XSDs at run-time...still, tests fail for the official Xerces 1.1
>    release.
>
> I tested now two different official Xerces 1.1 versions (and added
> Netbeans IDE build environment to two commits of my prototype branch
> smoke-testing)
>
>    1. a Netbeans environment using the downloaded Xerces 1.1 version
>    <https://github.com/apache/xerces-j/commit/1930cbe2ec1a4d5e4df4a685c60b66a86745e285>
>    2. a Netbeans environment using the Xerces 1.1 dev GitHub branch
>    <https://github.com/apache/xerces-j/commit/57dcf82032d874c9bed5851349635e7c0a1131f1>
>
> Netbeans build and debug environment is easily addable for the
> xml-schema-1.1-tests GitHub branch of Xerces by creating a new
> Netbeans project and
>
>    - In case Netbeans debug support for downloaded Xerces 1.1 ZIP
>    <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
>    :
>    Add all JARs from the downloaded ZIP of Xerces 1.1 to the classpath -
>    switch to JDK 8 (as afterwards JDKs API changed, e.g. tools.jar not
>    available)
>
>
>    - In case Netbeans debug support for Github branch xml-schema-1.1-dev:
>    Checkout from Github the xml-schema-1.1-dev branch and add in Netbeans
>    src and sample as source directories, use JDK 8 and add the JARs from the
>    tools directory (aside from XercesImp.jar), which will be built.
>    Afterwards, add the newly created Xerces JAR and the previously added
>    JARs to your other xml-schema-1.1-tests Netbeans project.
>    JUnit and Hamcrest will be added by Netbeans automatically
>    when problems are resolved
>
> Quite cumbersome, I think it's about time to add Maven support... :-)
>
> Two questions in the end regarding the current GitHub branch structure:
>
>    1. Why is the xml-schema-1.1-dev GitHub branch not placed at the top
>    of the main branch? XSD 1.1 specs states to be backward compatible with XSD
>    1.0.
>    2. Why are the tests of the xml-schema-1.1-tests GitHub branch not
>    added as well to the main branch?
>    3. In case a Maven to build (and test) is being added, regression
>    tests could be made on GitHub for every commit to keep the branches from
>    becoming red.
>
> Currently, there are multiple versions of sources for Xerces
> The different Xerces sources able to be downloaded as ZIP and the
> differences between Subversion and the GitHub branches make it complex for
> newcomers.
> Is there still a reason that prevents these minimize the amount of Xerces
> sources, I suggest the main branch of GitHub as the latest and greatest
> source, using Git labels for releases.
>
> Thanks for any feedback,
> Svante
>
>
> On Thu, 12 Sept 2024 at 13:58, Svante Schubert <sv...@gmail.com>
> wrote:
>
>> PS:
>> To ease reproduction, I have added a stack trace (below) - note below is
>> just the German-translated version of the error message mentioned earlier:
>> "*sch-props-correct.2: An XSD schema cannot contain two global
>> components with the same name.*"
>> and the SaxParseException is already thrown when creating the Schema,
>> even before the test:
>>
>> https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81
>>
>> org.xml.sax.SAXParseException; systemId:
>> file:///E:/dev/tausch/xml/xsd-debug/xml-schema-1.1-tests/data/version-control/test37.xsd;
>> lineNumber: 7; columnNumber: 46;
>> *sch-props-correct.2: Ein Schema kann nicht zwei globale Komponenten mit
>> demselben Namen enthalten. Dieses Schema enth�lt zwei Vorkommen von
>> ',test'.*
>> at
>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
>> at
>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
>> at
>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4204)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4187)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.checkForDuplicateNames(XSDHandler.java:3820)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1362)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:651)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:569)
>> at
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:535)
>> at
>> com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:269)
>> at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>> * at
>> org.apache.xerces.tests.ConditionalInclusionTests.testVersionControl3(ConditionalInclusionTests.java:81)
>> <https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81>*
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at junit.framework.TestCase.runTest(TestCase.java:177)
>> at junit.framework.TestCase.runBare(TestCase.java:142)
>> at junit.framework.TestResult$1.protect(TestResult.java:122)
>> at junit.framework.TestResult.runProtected(TestResult.java:142)
>> at junit.framework.TestResult.run(TestResult.java:125)
>> at junit.framework.TestCase.run(TestCase.java:130)
>> at junit.framework.TestSuite.runTest(TestSuite.java:241)
>> at junit.framework.TestSuite.run(TestSuite.java:236)
>> at junit.framework.TestSuite.runTest(TestSuite.java:241)
>> at junit.framework.TestSuite.run(TestSuite.java:236)
>> at
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
>> at
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
>> at
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)
>>
>> On Thu, 12 Sept 2024 at 08:24, Svante Schubert <sv...@apache.org>
>> wrote:
>>
>>> Dear Xerces user group,
>>>
>>> Let me add the specification reference to the invalidness of the test
>>> file
>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>
>>> : https://www.w3.org/TR/xmlschema11-1/#concepts-nameSymbolSpaces
>>> *"But it is not possible for ... two distinct top-level element
>>> declarations, to share the name my:abc"*
>>>
>>> If the build were in Maven and nightly tests were run by GitHub, I would
>>> not ask this question. Perhaps it is worth considering a switch from Ant to
>>> Maven?
>>> In general, invalid test files should be explicitly marked as such like
>>> within a subfolder 'invalid'.
>>> Would be helpful to download groups of test files from Maven, like
>>> versions of deliverables as well (but this might be a topic for Maven's
>>> user's list)...
>>>
>>> Still, I believe I am doing an oversight...
>>>
>>> Best regards,
>>> Svante
>>>
>>> PS: Used my Apache email now and am uncertain if I should have started
>>> on the dev list right away instead of users - I would join these lists for
>>> software in general... (as you want to users become developers..)
>>>
>>> On Wed, 11 Sept 2024 at 15:25, Svante Schubert <
>>> svante.schubert@gmail.com> wrote:
>>>
>>>> Dear experts,
>>>>
>>>> I am in need of some advice using the new Xerces xml-schema-1.1-tests
>>>> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.
>>>>
>>>> The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
>>>> fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub
>>>> branch <https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev>
>>>> and likely I am missing something obvious.
>>>> The error given is "*sch-props-correct.2: An XSD schema cannot contain
>>>> two global components with the same name.*" and *the test file does
>>>> have two global element name declarations with the same name*
>>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
>>>> still the test is not meant to fail.
>>>>
>>>> What did I miss?
>>>>
>>>> My steps to do my smoke testing:
>>>>
>>>>    1. As I am not able to easily build & debug with my IDEs (like with
>>>>    Maven) using the existing ANT scripts, I generated an easy build & debug
>>>>    environment for my set of IDEs (Apache Netbeans & Intellij IDEA) represented
>>>>    by a single commit of noise
>>>>    <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
>>>>    .
>>>>    2. Instead of setting an environment variable, I hard coded the
>>>>    path to my tests
>>>>    <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
>>>>    .
>>>>    3. Executed in Netbeans test suite
>>>>    org.apache.xerces.tests.AllXercesXSD11Tests
>>>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31> and
>>>>    getting aside of the above so many errors that I must have done something
>>>>    basic wrong.
>>>>
>>>> Thanks for any help!
>>>> Svante
>>>>
>>>

Re: Seek for advice with Xerces xml-schema-1.1-tests

Posted by Svante Schubert <sv...@apache.org>.
Can anyone please provide feedback if it can be produced that the
AllXercesXSD11Tests
<https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java>
are failing?

   1. for the downloaded Xerces 1.1 version
   <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
   ?
   2. for the Xerces 1.1 dev GitHub branch?
   3. that the earlier-mentioned test should fail as it did due to the
   duplicated named global element declaration?
   Sorry, but I did earlier a shell-game trick to myself and added not an
   official Xerces1.1.jar but my previous AllXercesXSD11Tests
   <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java>
only
   failed correctly in my local test branch, where I added prefix support for
   the loaded XSDs at run-time...still, tests fail for the official Xerces 1.1
   release.

I tested now two different official Xerces 1.1 versions (and added Netbeans
IDE build environment to two commits of my prototype branch smoke-testing)

   1. a Netbeans environment using the downloaded Xerces 1.1 version
   <https://github.com/apache/xerces-j/commit/1930cbe2ec1a4d5e4df4a685c60b66a86745e285>
   2. a Netbeans environment using the Xerces 1.1 dev GitHub branch
   <https://github.com/apache/xerces-j/commit/57dcf82032d874c9bed5851349635e7c0a1131f1>

Netbeans build and debug environment is easily addable for the
xml-schema-1.1-tests GitHub branch of Xerces by creating a new
Netbeans project and

   - In case Netbeans debug support for downloaded Xerces 1.1 ZIP
   <https://dlcdn.apache.org//xerces/j/binaries/Xerces-J-bin.2.12.2-xml-schema-1.1.zip>
   :
   Add all JARs from the downloaded ZIP of Xerces 1.1 to the classpath -
   switch to JDK 8 (as afterwards JDKs API changed, e.g. tools.jar not
   available)


   - In case Netbeans debug support for Github branch xml-schema-1.1-dev:
   Checkout from Github the xml-schema-1.1-dev branch and add in Netbeans
   src and sample as source directories, use JDK 8 and add the JARs from the
   tools directory (aside from XercesImp.jar), which will be built.
   Afterwards, add the newly created Xerces JAR and the previously added
   JARs to your other xml-schema-1.1-tests Netbeans project.
   JUnit and Hamcrest will be added by Netbeans automatically when problems
   are resolved

Quite cumbersome, I think it's about time to add Maven support... :-)

Two questions in the end regarding the current GitHub branch structure:

   1. Why is the xml-schema-1.1-dev GitHub branch not placed at the top of
   the main branch? XSD 1.1 specs states to be backward compatible with XSD
   1.0.
   2. Why are the tests of the xml-schema-1.1-tests GitHub branch not added
   as well to the main branch?
   3. In case a Maven to build (and test) is being added, regression tests
   could be made on GitHub for every commit to keep the branches from becoming
   red.

Currently, there are multiple versions of sources for Xerces
The different Xerces sources able to be downloaded as ZIP and the
differences between Subversion and the GitHub branches make it complex for
newcomers.
Is there still a reason that prevents these minimize the amount of Xerces
sources, I suggest the main branch of GitHub as the latest and greatest
source, using Git labels for releases.

Thanks for any feedback,
Svante


On Thu, 12 Sept 2024 at 13:58, Svante Schubert <sv...@gmail.com>
wrote:

> PS:
> To ease reproduction, I have added a stack trace (below) - note below is
> just the German-translated version of the error message mentioned earlier:
> "*sch-props-correct.2: An XSD schema cannot contain two global components
> with the same name.*"
> and the SaxParseException is already thrown when creating the Schema, even
> before the test:
>
> https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81
>
> org.xml.sax.SAXParseException; systemId:
> file:///E:/dev/tausch/xml/xsd-debug/xml-schema-1.1-tests/data/version-control/test37.xsd;
> lineNumber: 7; columnNumber: 46;
> *sch-props-correct.2: Ein Schema kann nicht zwei globale Komponenten mit
> demselben Namen enthalten. Dieses Schema enth�lt zwei Vorkommen von
> ',test'.*
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
> at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4204)
> at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4187)
> at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.checkForDuplicateNames(XSDHandler.java:3820)
> at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1362)
> at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:651)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:569)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:535)
> at
> com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:269)
> at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
> * at
> org.apache.xerces.tests.ConditionalInclusionTests.testVersionControl3(ConditionalInclusionTests.java:81)
> <https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81>*
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at junit.framework.TestCase.runTest(TestCase.java:177)
> at junit.framework.TestCase.runBare(TestCase.java:142)
> at junit.framework.TestResult$1.protect(TestResult.java:122)
> at junit.framework.TestResult.runProtected(TestResult.java:142)
> at junit.framework.TestResult.run(TestResult.java:125)
> at junit.framework.TestCase.run(TestCase.java:130)
> at junit.framework.TestSuite.runTest(TestSuite.java:241)
> at junit.framework.TestSuite.run(TestSuite.java:236)
> at junit.framework.TestSuite.runTest(TestSuite.java:241)
> at junit.framework.TestSuite.run(TestSuite.java:236)
> at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
> at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
> at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)
>
> On Thu, 12 Sept 2024 at 08:24, Svante Schubert <sv...@apache.org>
> wrote:
>
>> Dear Xerces user group,
>>
>> Let me add the specification reference to the invalidness of the test
>> file
>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>
>> : https://www.w3.org/TR/xmlschema11-1/#concepts-nameSymbolSpaces
>> *"But it is not possible for ... two distinct top-level element
>> declarations, to share the name my:abc"*
>>
>> If the build were in Maven and nightly tests were run by GitHub, I would
>> not ask this question. Perhaps it is worth considering a switch from Ant to
>> Maven?
>> In general, invalid test files should be explicitly marked as such like
>> within a subfolder 'invalid'.
>> Would be helpful to download groups of test files from Maven, like
>> versions of deliverables as well (but this might be a topic for Maven's
>> user's list)...
>>
>> Still, I believe I am doing an oversight...
>>
>> Best regards,
>> Svante
>>
>> PS: Used my Apache email now and am uncertain if I should have started on
>> the dev list right away instead of users - I would join these lists for
>> software in general... (as you want to users become developers..)
>>
>> On Wed, 11 Sept 2024 at 15:25, Svante Schubert <sv...@gmail.com>
>> wrote:
>>
>>> Dear experts,
>>>
>>> I am in need of some advice using the new Xerces xml-schema-1.1-tests
>>> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.
>>>
>>> The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
>>> fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub
>>> branch <https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev> and
>>> likely I am missing something obvious.
>>> The error given is "*sch-props-correct.2: An XSD schema cannot contain
>>> two global components with the same name.*" and *the test file does
>>> have two global element name declarations with the same name*
>>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
>>> still the test is not meant to fail.
>>>
>>> What did I miss?
>>>
>>> My steps to do my smoke testing:
>>>
>>>    1. As I am not able to easily build & debug with my IDEs (like with
>>>    Maven) using the existing ANT scripts, I generated an easy build & debug
>>>    environment for my set of IDEs (Apache Netbeans & Intellij IDEA) represented
>>>    by a single commit of noise
>>>    <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
>>>    .
>>>    2. Instead of setting an environment variable, I hard coded the path
>>>    to my tests
>>>    <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
>>>    .
>>>    3. Executed in Netbeans test suite
>>>    org.apache.xerces.tests.AllXercesXSD11Tests
>>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31> and
>>>    getting aside of the above so many errors that I must have done something
>>>    basic wrong.
>>>
>>> Thanks for any help!
>>> Svante
>>>
>>

Re: Seek for advice with Xerces xml-schema-1.1-tests

Posted by Svante Schubert <sv...@gmail.com>.
PS:
To ease reproduction, I have added a stack trace (below) - note below is
just the German-translated version of the error message mentioned earlier:
"*sch-props-correct.2: An XSD schema cannot contain two global components
with the same name.*"
and the SaxParseException is already thrown when creating the Schema, even
before the test:
https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81

org.xml.sax.SAXParseException; systemId:
file:///E:/dev/tausch/xml/xsd-debug/xml-schema-1.1-tests/data/version-control/test37.xsd;
lineNumber: 7; columnNumber: 46;
*sch-props-correct.2: Ein Schema kann nicht zwei globale Komponenten mit
demselben Namen enthalten. Dieses Schema enth�lt zwei Vorkommen von
',test'.*
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4204)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4187)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.checkForDuplicateNames(XSDHandler.java:3820)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1362)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:651)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:610)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:569)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:535)
at
com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:269)
at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
* at
org.apache.xerces.tests.ConditionalInclusionTests.testVersionControl3(ConditionalInclusionTests.java:81)
<https://github.com/svanteschubert/xerces-j/blob/smoke-testing/src/org/apache/xerces/tests/ConditionalInclusionTests.java#L81>*
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:177)
at junit.framework.TestCase.runBare(TestCase.java:142)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:130)
at junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit.framework.TestSuite.run(TestSuite.java:236)
at junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit.framework.TestSuite.run(TestSuite.java:236)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)

On Thu, 12 Sept 2024 at 08:24, Svante Schubert <sv...@apache.org>
wrote:

> Dear Xerces user group,
>
> Let me add the specification reference to the invalidness of the test file
> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>
> : https://www.w3.org/TR/xmlschema11-1/#concepts-nameSymbolSpaces
> *"But it is not possible for ... two distinct top-level element
> declarations, to share the name my:abc"*
>
> If the build were in Maven and nightly tests were run by GitHub, I would
> not ask this question. Perhaps it is worth considering a switch from Ant to
> Maven?
> In general, invalid test files should be explicitly marked as such like
> within a subfolder 'invalid'.
> Would be helpful to download groups of test files from Maven, like
> versions of deliverables as well (but this might be a topic for Maven's
> user's list)...
>
> Still, I believe I am doing an oversight...
>
> Best regards,
> Svante
>
> PS: Used my Apache email now and am uncertain if I should have started on
> the dev list right away instead of users - I would join these lists for
> software in general... (as you want to users become developers..)
>
> On Wed, 11 Sept 2024 at 15:25, Svante Schubert <sv...@gmail.com>
> wrote:
>
>> Dear experts,
>>
>> I am in need of some advice using the new Xerces xml-schema-1.1-tests
>> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.
>>
>> The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
>> fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub branch
>> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev> and likely
>> I am missing something obvious.
>> The error given is "*sch-props-correct.2: An XSD schema cannot contain
>> two global components with the same name.*" and *the test file does have
>> two global element name declarations with the same name*
>> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
>> still the test is not meant to fail.
>>
>> What did I miss?
>>
>> My steps to do my smoke testing:
>>
>>    1. As I am not able to easily build & debug with my IDEs (like with
>>    Maven) using the existing ANT scripts, I generated an easy build & debug
>>    environment for my set of IDEs (Apache Netbeans & Intellij IDEA) represented
>>    by a single commit of noise
>>    <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
>>    .
>>    2. Instead of setting an environment variable, I hard coded the path
>>    to my tests
>>    <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
>>    .
>>    3. Executed in Netbeans test suite
>>    org.apache.xerces.tests.AllXercesXSD11Tests
>>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31> and
>>    getting aside of the above so many errors that I must have done something
>>    basic wrong.
>>
>> Thanks for any help!
>> Svante
>>
>

Re: Seek for advice with Xerces xml-schema-1.1-tests

Posted by Svante Schubert <sv...@apache.org>.
Dear Xerces user group,

Let me add the specification reference to the invalidness of the test file
<https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>
: https://www.w3.org/TR/xmlschema11-1/#concepts-nameSymbolSpaces
*"But it is not possible for ... two distinct top-level element
declarations, to share the name my:abc"*

If the build were in Maven and nightly tests were run by GitHub, I would
not ask this question. Perhaps it is worth considering a switch from Ant to
Maven?
In general, invalid test files should be explicitly marked as such like
within a subfolder 'invalid'.
Would be helpful to download groups of test files from Maven, like versions
of deliverables as well (but this might be a topic for Maven's user's
list)...

Still, I believe I am doing an oversight...

Best regards,
Svante

PS: Used my Apache email now and am uncertain if I should have started on
the dev list right away instead of users - I would join these lists for
software in general... (as you want to users become developers..)

On Wed, 11 Sept 2024 at 15:25, Svante Schubert <sv...@gmail.com>
wrote:

> Dear experts,
>
> I am in need of some advice using the new Xerces xml-schema-1.1-tests
> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-tests>.
>
> The test suite of org.apache.xerces.tests.AllXercesXSD11Tests
> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31>
> fails for me using my Xerces Jar from a build of Xerces 1.1 GitHub branch
> <https://github.com/apache/xerces-j/tree/xml-schema-1.1-dev> and likely I
> am missing something obvious.
> The error given is "*sch-props-correct.2: An XSD schema cannot contain
> two global components with the same name.*" and *the test file does have
> two global element name declarations with the same name*
> <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/data/version-control/test37.xsd#L5>,
> still the test is not meant to fail.
>
> What did I miss?
>
> My steps to do my smoke testing:
>
>    1. As I am not able to easily build & debug with my IDEs (like with
>    Maven) using the existing ANT scripts, I generated an easy build & debug
>    environment for my set of IDEs (Apache Netbeans & Intellij IDEA) represented
>    by a single commit of noise
>    <https://github.com/svanteschubert/xerces-j/commit/7e32264aabbb366360d6a354d2589e1e154fb58f>
>    .
>    2. Instead of setting an environment variable, I hard coded the path
>    to my tests
>    <https://github.com/svanteschubert/xerces-j/commit/2c50b9c6dc88c5394af95d12f6cad9cced822e9e>
>    .
>    3. Executed in Netbeans test suite
>    org.apache.xerces.tests.AllXercesXSD11Tests
>    <https://github.com/apache/xerces-j/blob/xml-schema-1.1-tests/src/org/apache/xerces/tests/AllXercesXSD11Tests.java#L31> and
>    getting aside of the above so many errors that I must have done something
>    basic wrong.
>
> Thanks for any help!
> Svante
>