Hello Danny,

The Schematron specification does not define how the XInclude is processed. In Oxygen we expand the XInclude in order to help the user to process the content more easily. If you don't want to expand the XInclude, you can go to uncheck the "Enable XInclude processing" option from XML Parser options page. For this, open the Preferences dialog box (Options > Preferences) and go to XML > XML Parser.
https://www.oxygenxml.com/doc/versions/25.1/ug-editor/topics/preferences-xml-parser.html

Best Regards,
Octavian

On 5/11/2023 10:34 PM, Danny MacMillan wrote:
Thanks.

With the documents attribute, it works with SchXslt and doesn't work in Oxygen. Without the documents attribute, it works in Oxygen and doesn't work in SchXslt. So it seems like there's no way to write a Schematron schema that uses XInclude that will work everywhere. It seems like it must be a bug in either Oxygen or SchXslt. I thought it was an Oxygen bug because the SchXslt behaviour corresponds to the Schematron book. But I'm just learning Schematron so I can't be sure.

--
Danny MacMillan

Sent with Proton Mail <https://proton.me/> secure email.

------- Original Message -------
On Thursday, May 11th, 2023 at 00:19, Oxygen XML Editor Support (Octavian Nadolu) <supp...@oxygenxml.com> wrote:

Hello Danny,

The XInclude is automatically expanded when you validate with Schematron in Oxygen. Therefore, you do not need to use the "documents" attribute. The sample subdocuments-1.sch file can be changed something like this:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://purl.oclc.org/dsdl/schematron"; queryBinding="xslt3">
<pattern>
<rule context="p">
<assert test="@class ne 'brightred'">
The class <value-of select="@class"/> is forbidden
(<value-of select="base-uri(.)"/>)!
</assert>
</rule>
</pattern>
</schema>

Best Regards,
Octavian

On 5/10/2023 12:21 AM, Danny MacMillan wrote:
Hello,

I'm going through the Schematron book by Erik Siegel and one of his examples improperly passes validation in Oxygen XML while it correctly fails validation using SchXslt.

The code for the book is here: https://github.com/xatapult/schematron-book-code <https://github.com/xatapult/schematron-book-code.git>

I open both examples/additional-features/subdocuments-1.sch and data/subdocuments-master.xml from that project in Oxygen and select the tab with the XML file. Then I click the dropdown on the Validation button on the toolbar and click Validate with... and then I select the subdocuments-1.sch file using the dropdown. When I proceed Oxygen says it passes. This is the same approach I have used for all other examples in the book. But I created an explicit validation scenario for this also and it behaves the same way.

Note that if you want to test this you should clone the repository because the subdocuments-master.xml file incorporates other files in the repository by reference using XInclude and this is indeed what seems not to be working in Oxygen.

By contrast if I run the same validation using the schxslt-cli.jar I get the following, expected result.

[invalid] /home/user/task/schematron-book-code/data/subdocuments-master.xml [invalid] /home/user/task/schematron-book-code/data/subdocuments-master.xml failed-assert /Q{}document[1]/Q{}p[1]
The class brightred is forbidden
(file:/home/user/task/schematron-book-code/data/subdocuments-2.xml)!

I am using the latest Oxygen: <oXygen/> XML Editor 25.1, build 2023042509

Thanks,

--
Danny MacMillan

Sent with Proton Mail <https://proton.me/> secure email.

_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user


--
Octavian Nadolu
<oXygen/> XML Editor
http://www.oxygenxml.com


_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user


--
Octavian Nadolu
<oXygen/> XML Editor
http://www.oxygenxml.com
_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

Reply via email to