XPATH 2.0 matches function in embedded ISO Schematron
This should cover W3C XML Schema, Relax NG and DTD related problems.
-
- Posts: 9
- Joined: Wed Oct 10, 2007 5:16 pm
- Location: Charlottesville
XPATH 2.0 matches function in embedded ISO Schematron
I'm embedding ISO Schematron rules in my RelaxNG schema (TEIP5 with local extensions) using oXygen 8.2 with Schematron XPath Version set to 2.0;
Given this element definition with embedded Schematron assertion:
<element name="chronList">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/ann ... 1.0">Local
Extension: "chronList"--a "non-TEI" element contains the model "eventLike" for use in
timeline feature of EV.</a:documentation>
<sch:pattern name="chronlist key attribute values">
<sch:rule context="//tei:chronList/tei:event">
<sch:assert test="@key[contains(., 'cl')]">You must begin your event key value with the letters "cl"!</sch:assert>
</sch:rule>
</sch:pattern>
</element>
Everything runs fine. However, if I change the assert test to:
<sch:assert test="@key[matches(., 'cl([0-9]+)')]">You must begin your event key value with the letters "cl" followed by one or more numbers!</sch:assert>
I get the following error:
Description: Error in expression @key[matches(., 'cl([0-9]+)')]: Unknown system function: matches
Am I using the matches function incorrectly here? Or is something else going on? Any help would be great thanks!
Matthew
Given this element definition with embedded Schematron assertion:
<element name="chronList">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/ann ... 1.0">Local
Extension: "chronList"--a "non-TEI" element contains the model "eventLike" for use in
timeline feature of EV.</a:documentation>
<sch:pattern name="chronlist key attribute values">
<sch:rule context="//tei:chronList/tei:event">
<sch:assert test="@key[contains(., 'cl')]">You must begin your event key value with the letters "cl"!</sch:assert>
</sch:rule>
</sch:pattern>
</element>
Everything runs fine. However, if I change the assert test to:
<sch:assert test="@key[matches(., 'cl([0-9]+)')]">You must begin your event key value with the letters "cl" followed by one or more numbers!</sch:assert>
I get the following error:
Description: Error in expression @key[matches(., 'cl([0-9]+)')]: Unknown system function: matches
Am I using the matches function incorrectly here? Or is something else going on? Any help would be great thanks!
Matthew
-
- Posts: 4141
- Joined: Fri Mar 28, 2003 2:12 pm
Post by sorin_ristache »
Hello,
An ISO Schematron schema must declare that it uses XSLT 2.0 expressions with the attribute queryBinding="xslt2" on the schema root element. In the case of embedded Schematron rules there is no schema root element so XSLT 2.0 cannot be specified. The XSLT version of embedded Schematron rules can be forced to be always 2.0 with a patch applied to oXygen. Please contact us to give you the patch. In a future version of oXygen we will add an user preference for setting the XSLT version of embedded ISO Schematron rules to 1.0 or 2.0.
Regards,
Sorin
An ISO Schematron schema must declare that it uses XSLT 2.0 expressions with the attribute queryBinding="xslt2" on the schema root element. In the case of embedded Schematron rules there is no schema root element so XSLT 2.0 cannot be specified. The XSLT version of embedded Schematron rules can be forced to be always 2.0 with a patch applied to oXygen. Please contact us to give you the patch. In a future version of oXygen we will add an user preference for setting the XSLT version of embedded ISO Schematron rules to 1.0 or 2.0.
Regards,
Sorin
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service