Octavian Nadolu created XERCESJ-1623:
----------------------------------------
Summary: Invalid characters in assertion XPath expression
Key: XERCESJ-1623
URL: https://issues.apache.org/jira/browse/XERCESJ-1623
Project: Xerces2-J
Issue Type: Bug
Components: XML Schema 1.1 Structures
Affects Versions: 2.11.0
Reporter: Octavian Nadolu
If I validate the following XML Schema, I get an error:
"cvc-xpath.3.13.4.2a: XPST0003 - Assertion XPath expression
('count(le:Einführung) le 1') on the schema type 'defKapitel' couldn't compile
successfully."
I tested on the xml-schema-1.1-dev branch.
The error occurs because of the "ü" character that is used in the assertion.
The problem seems to be the in the PsychoPath library
(org.eclipse.wst.xml.xpath2.processor_1.2.0.jar) that Xerces uses.
I updated the PsychoPath library to the latest version, 2.1.2, and the
validation seems to work well.
In order to make Xerces work with the new PsychoPath library, you need to make
two modifications:
- in XSAssertionXPath2ValueImpl.java, you need to use PsychoPathTypeHelper
instead of PsychoPathXPathTypeHelper.
- in AbstractPsychoPathXPath2Impl, the constructors of DefaultEvaluator and
ElementType are modified.
------ XML Schema --------------------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns:le="myns" targetNamespace="myns"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
<xs:element name="Einführung"/>
<xs:element name="Lernziele"/>
<xs:element name="Textebene-1"/>
<xs:complexType name="defKapitel">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="2">
<xs:element ref="le:Einführung"/>
<xs:element ref="le:Lernziele"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="unbounded"
ref="le:Textebene-1"/>
</xs:sequence>
<xs:assert test="count(le:Einführung) le 1"/>
</xs:complexType>
</xs:schema>
--------------------------------------------
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]