xerces-j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mukul Gandhi (JIRA)" <xerces-j-...@xml.apache.org>
Subject [jira] Updated: (XERCESJ-1365) assertions XPath 2.0 patch
Date Fri, 08 May 2009 04:27:45 GMT

     [ https://issues.apache.org/jira/browse/XERCESJ-1365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Mukul Gandhi updated XERCESJ-1365:
----------------------------------

    Attachment: assert_xpath2_patch_08.05.09.txt
                assert xpath2 impl src_08.05.09.zip

I could modify the code, to implement schema awareness in assert xpath expressions. This is
now available in Psychopath interface (the file, XMLAssertPsychopathImpl.java does this by
using the Xerces XSModel during creation of "xpath dynamic context" For Psychopath).

The following files are modified as a result of these improvements.

XMLAssertPsychopathImpl.java 
XMLAssertSaxonImpl.java
XMLSchemaValidator.java (the assertion code in this file is restructured significantly, particularly
placing the assertions calls in handleEndElement instead of endElement)
XMLAssertAdapter.java
XMLAssertHandler.java

The interface definition, XMLAssertHandler.java is also now much simpler. 

I am attaching the modified patch, and all the affected sources. Kindly use this patch for
review..

I thank Khaled and Michael for answering many of my queries privately, to improve the code.

Regards,
Mukul

> 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: assert xpath2 impl src_08.05.09.zip, assert_xpath2_patch_08.05.09.txt,
assertions test cases.zip, org.eclipse.wst.xml.xpath2.processor_1.0.0.jar, 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-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


Mime
View raw message