[ https://issues.apache.org/jira/browse/XERCESJ-1365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mukul Gandhi updated XERCESJ-1365: ---------------------------------- Attachment: (was: assert patch_21.04.09.txt) > assertions XPath 2.0 patch > -------------------------- > > Key: XERCESJ-1365 > URL: https://issues.apache.org/jira/browse/XERCESJ-1365 > Project: Xerces2-J > Issue Type: Improvement > Components: XML Schema 1.1 Structures > Affects Versions: 2.9.1 > Environment: JRE 1.5.x > Reporter: Mukul Gandhi > Assignee: Khaled Noaman > Attachments: assertions test cases.zip, XMLSchema11Test.java > > > I am pleased to provide a patch with almost complete implementation of XML > Schema 1.1 assertions. Some things might have been overlooked (though not > anything major it seems to me), and I am continuing finding and correcting > any known issues. > This JIRA issue provides a complete implementation of XML Schema 1.1 > assertions, in combination with the current code in SVN. > This JIRA issue supersedes the issue, > https://issues.apache.org/jira/browse/XERCESJ-1363. Kindly abort/cancel the > issue XERCESJ-1363 and review this one instead. > I am providing all the necessary files for review that affect assertions (the > files for the issue, XERCESJ-1363 are also available in this JIRA issue). > This code submission provides XPath 2.0 interface with the Psychopath > processor. Psychopath processor is presently not 100% compliant to the XPath > 2.0 spec. It's capabilities and limitations are mentioned in the document, > http://psychopath.sourceforge.net/report.pdf. Kindly be aware, that failure > to evaluate some legal XPath 2.0 expressions, would most likely be because of > limitations of Psychopath. > There is another issue I am aware of with the current assertions code I am > submitting. > For e.g., if there is assertions declaration like following: > <xs:element name="A"> > <xs:complexType> > <xs:sequence> > <!-- something --> > </xs:sequence> > <xs:assert test="exists(@x)" /> > </xs:complexType> > </xs:element> > The <xs:assert above would test if there is an attribute 'x' on the element > 'A'. If attribute 'x' is actually present on element 'A', the above assertion > should evaluate to true (this is I think, what the XML Schema 1.1 spec says). > But with the Psychopath processor, I am facing a problem, that I have to > write the above assertion as following, to work correctly: > <xs:assert test="exists(root/@x)" /> or perhaps, <xs:assert > test="exists(*/@x)" /> > For the above Schema example, a DOM is being built whose root element is 'A'. > The Psychopath processor assumes a context node as / (i.e., the XPath 2.0 > document node) while evaluating XPath expressions (when it is supplied with a > DOM). So at present with Psychopath processor, one must descend one step > extra while writing XPath expressions. > I am working on this issue, and would post a fix, when I find a solution. > I would provide some test cases as well after some time. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: j-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: j-dev-h...@xerces.apache.org