[ 
https://issues.apache.org/jira/browse/XERCESJ-1562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13278568#comment-13278568
 ] 

Jorge L. Williams commented on XERCESJ-1562:
--------------------------------------------

Mukul Gandhi, mentioned the following on the list:

"As a workaround, I can find the following expression to be working
correctly though,

(xs:dateTime - xs:dateTime) le xs:dayTimeDuration"

Based on that I rewrote the schema to:


<schema
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    xmlns="http://www.w3.org/2001/XMLSchema";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
    xmlns:tst="http://www.rackspace.com/test/simple";
    targetNamespace="http://www.rackspace.com/test/simple";>

    <element name="test" type="tst:Duration"/>

    <complexType name="Duration">
        <attribute name="start" type="xsd:dateTime" use="required"/>
        <attribute name="end" type="xsd:dateTime" use="required"/>
        <assert test="(xsd:dateTime(@end) - xsd:dateTime(@start)) le 
xsd:dayTimeDuration('P1D')"/>
    </complexType>

</schema>

It's still not working correctly :-(

                
> Issue with XSD 1.1 assertions with dateTime and duration
> --------------------------------------------------------
>
>                 Key: XERCESJ-1562
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1562
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.1 Datatypes
>    Affects Versions: 2.11.0
>            Reporter: Jorge L. Williams
>
> I'm working off of the latest 1.1 branch.  I have the following schema:
> <schema
>    elementFormDefault="qualified"
>    attributeFormDefault="unqualified"
>    xmlns="http://www.w3.org/2001/XMLSchema";
>    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>    xmlns:tst="http://www.rackspace.com/test/simple";
>    targetNamespace="http://www.rackspace.com/test/simple";>
>    <element name="test" type="tst:Duration"/>
>    <complexType name="Duration">
>        <attribute name="start" type="xsd:dateTime" use="required"/>
>        <attribute name="end" type="xsd:dateTime" use="required"/>
>        <assert test="xsd:dateTime(@end) le (xsd:dateTime(@start) + 
> xsd:dayTimeDuration('P1D'))"/>
>    </complexType>
> </schema>
> Essentially, I want to make sure that the duration between start and end is 
> not longer than one day.  I test against two documents (using options -fx and 
> -xsd11  on the CLI validator):
> good.xml
> <test xmlns="http://www.rackspace.com/test/simple";
>      start="2012-03-12T11:51:11Z" end="2012-03-13T11:51:11Z"/>
> this document should validate.  And 
> bad.xml
> <test xmlns="http://www.rackspace.com/test/simple";
>      start="2012-03-12T11:51:11Z" end="2012-03-13T11:51:12Z"/>
> which should trip the assertion.
> Unfortunately xerces fails both documents, which looks like a bug to me 
> especially since Saxon passes good.xml but fails bad.xml.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to