You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Mukul Gandhi (JIRA)" <xe...@xml.apache.org> on 2010/04/11 05:52:41 UTC

[jira] Created: (XERCESJ-1441) XML Schema 1.1: Implementation of an extension 'message' attribute on assertions

XML Schema 1.1: Implementation of an extension 'message' attribute on assertions
--------------------------------------------------------------------------------

                 Key: XERCESJ-1441
                 URL: https://issues.apache.org/jira/browse/XERCESJ-1441
             Project: Xerces2-J
          Issue Type: Improvement
          Components: XML Schema 1.1 Datatypes, XML Schema 1.1 Structures
    Affects Versions: 2.10.0
            Reporter: Mukul Gandhi
            Assignee: Mukul Gandhi
             Fix For: 2.10.0


I think, it's useful to allow users to specify an attribute "message" (say in an extension namespace, "http://xerces.apache.org") on XSD 1.1 assertions. The value of this attribute will be, the error message string which user's would want to display, upon assertions failure.

Here's an example of this:

XML document (say, test.xml):
<meeting>2010-01-01 2010-01-07 2010-01-01</meeting>

XSD 1.1 document (say, test.xsd):
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="meeting" type="Meeting" /> 
  
  <xs:simpleType name="Meeting">
        <xs:restriction base="Dates" xmlns:xerces="http://xerces.apache.org">
	     <xs:assertion test="(count(distinct-values(tokenize($value,'\s+'))) = count(tokenize($value,'\s+'))) and
						  (every $d in tokenize($value,'\s+')[position() lt last()] satisfies 
						   xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of(tokenize($value,'\s+'), $d) + 1]))" 
				       xerces:message="Dates must be distinct and must be in ascending order." />			
	</xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="Dates"> 
    <xs:list itemType="xs:date" />
  </xs:simpleType> 
  
</xs:schema>

PS: The namespace declaration, xmlns:xerces="http://xerces.apache.org" could be specified anywhere in the XSD document (say, on xs:schema instruction also), so that this namespace is in the list of, "in scope namespaces" of an assertions instruction.

With this particular example, upon XSD 1.1 validation with Xerces, following error message would be displayed:

 [Error] test.xml:1:52: cvc-assertion.failure: Assertion failure. Dates must be distinct and must be in ascending order.

Whereas, without the attribute "message" on an assertion (or if it's present, but it contains no significant non-whitespace characters), the following error message would be displayed:
[Error] test.xml:1:52: cvc-assertion.3.13.4.1: Assertion evaluation ('(count(dis
tinct-values(tokenize($value,'\s+'))) =                          count(tokenize(
$value,'\s+'))) and         (every $d in tokenize($value,'\s+')[position() lt la
st()] satisfies           xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of
(tokenize($value,'\s+'), $d) + 1]))') for element 'meeting' with type 'Meeting'
did not succeed.

We could see the benefit of this improvement, as without a user-defined error message, the assertions error messages (the Xerces provided error messages), could be quite verbose (and particularly with, large XPath expressions). Also, using this technique, shall allow user's to specify domain specific error messages.

I've written a patch for this change, and would be committing it within few minutes.

Regards,
Mukul




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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] Commented: (XERCESJ-1441) XML Schema 1.1: Implementation of an extension 'message' attribute on assertions

Posted by "Mukul Gandhi (JIRA)" <xe...@xml.apache.org>.
    [ https://issues.apache.org/jira/browse/XERCESJ-1441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12855675#action_12855675 ] 

Mukul Gandhi commented on XERCESJ-1441:
---------------------------------------

just did a commit for this. please verify the patch & send any comments please.

Regards,
Mukul

> XML Schema 1.1: Implementation of an extension 'message' attribute on assertions
> --------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1441
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1441
>             Project: Xerces2-J
>          Issue Type: Improvement
>          Components: XML Schema 1.1 Datatypes, XML Schema 1.1 Structures
>    Affects Versions: 2.10.0
>            Reporter: Mukul Gandhi
>            Assignee: Mukul Gandhi
>             Fix For: 2.10.0
>
>
> I think, it's useful to allow users to specify an attribute "message" (say in an extension namespace, "http://xerces.apache.org") on XSD 1.1 assertions. The value of this attribute will be, the error message string which user's would want to display, upon assertions failure.
> Here's an example of this:
> XML document (say, test.xml):
> <meeting>2010-01-01 2010-01-07 2010-01-01</meeting>
> XSD 1.1 document (say, test.xsd):
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>   <xs:element name="meeting" type="Meeting" /> 
>   
>   <xs:simpleType name="Meeting">
>         <xs:restriction base="Dates" xmlns:xerces="http://xerces.apache.org">
> 	     <xs:assertion test="(count(distinct-values(tokenize($value,'\s+'))) = count(tokenize($value,'\s+'))) and
> 						  (every $d in tokenize($value,'\s+')[position() lt last()] satisfies 
> 						   xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of(tokenize($value,'\s+'), $d) + 1]))" 
> 				       xerces:message="Dates must be distinct and must be in ascending order." />			
> 	</xs:restriction>
>   </xs:simpleType>
>   
>   <xs:simpleType name="Dates"> 
>     <xs:list itemType="xs:date" />
>   </xs:simpleType> 
>   
> </xs:schema>
> PS: The namespace declaration, xmlns:xerces="http://xerces.apache.org" could be specified anywhere in the XSD document (say, on xs:schema instruction also), so that this namespace is in the list of, "in scope namespaces" of an assertions instruction.
> With this particular example, upon XSD 1.1 validation with Xerces, following error message would be displayed:
>  [Error] test.xml:1:52: cvc-assertion.failure: Assertion failure. Dates must be distinct and must be in ascending order.
> Whereas, without the attribute "message" on an assertion (or if it's present, but it contains no significant non-whitespace characters), the following error message would be displayed:
> [Error] test.xml:1:52: cvc-assertion.3.13.4.1: Assertion evaluation ('(count(dis
> tinct-values(tokenize($value,'\s+'))) =                          count(tokenize(
> $value,'\s+'))) and         (every $d in tokenize($value,'\s+')[position() lt la
> st()] satisfies           xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of
> (tokenize($value,'\s+'), $d) + 1]))') for element 'meeting' with type 'Meeting'
> did not succeed.
> We could see the benefit of this improvement, as without a user-defined error message, the assertions error messages (the Xerces provided error messages), could be quite verbose (and particularly with, large XPath expressions). Also, using this technique, shall allow user's to specify domain specific error messages.
> I've written a patch for this change, and would be committing it within few minutes.
> Regards,
> Mukul

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] Closed: (XERCESJ-1441) XML Schema 1.1: Implementation of an extension 'message' attribute on assertions

Posted by "Mukul Gandhi (JIRA)" <xe...@xml.apache.org>.
     [ https://issues.apache.org/jira/browse/XERCESJ-1441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mukul Gandhi closed XERCESJ-1441.
---------------------------------

    Resolution: Fixed

from my view point, the work on this patch is complete. I'm marking this issue, as closed.

Any future comments on this, are welcome please.

Regards,
Mukul

> XML Schema 1.1: Implementation of an extension 'message' attribute on assertions
> --------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1441
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1441
>             Project: Xerces2-J
>          Issue Type: Improvement
>          Components: XML Schema 1.1 Structures
>    Affects Versions: 2.9.1
>            Reporter: Mukul Gandhi
>            Assignee: Mukul Gandhi
>             Fix For: 2.10.0
>
>
> I think, it's useful to allow users to specify an attribute "message" (say in an extension namespace, "http://xerces.apache.org") on XSD 1.1 assertions. The value of this attribute will be, the error message string which user's would want to display, upon assertions failure.
> Here's an example of this:
> XML document (say, test.xml):
> <meeting>2010-01-01 2010-01-07 2010-01-01</meeting>
> XSD 1.1 document (say, test.xsd):
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>   <xs:element name="meeting" type="Meeting" /> 
>   
>   <xs:simpleType name="Meeting">
>         <xs:restriction base="Dates" xmlns:xerces="http://xerces.apache.org">
> 	     <xs:assertion test="(count(distinct-values(tokenize($value,'\s+'))) = count(tokenize($value,'\s+'))) and
> 						  (every $d in tokenize($value,'\s+')[position() lt last()] satisfies 
> 						   xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of(tokenize($value,'\s+'), $d) + 1]))" 
> 				       xerces:message="Dates must be distinct and must be in ascending order." />			
> 	</xs:restriction>
>   </xs:simpleType>
>   
>   <xs:simpleType name="Dates"> 
>     <xs:list itemType="xs:date" />
>   </xs:simpleType> 
>   
> </xs:schema>
> PS: The namespace declaration, xmlns:xerces="http://xerces.apache.org" could be specified anywhere in the XSD document (say, on xs:schema instruction also), so that this namespace is in the list of, "in scope namespaces" of an assertions instruction.
> With this particular example, upon XSD 1.1 validation with Xerces, following error message would be displayed:
>  [Error] test.xml:1:52: cvc-assertion.failure: Assertion failure. Dates must be distinct and must be in ascending order.
> Whereas, without the attribute "message" on an assertion (or if it's present, but it contains no significant non-whitespace characters), the following error message would be displayed:
> [Error] test.xml:1:52: cvc-assertion.3.13.4.1: Assertion evaluation ('(count(dis
> tinct-values(tokenize($value,'\s+'))) =                          count(tokenize(
> $value,'\s+'))) and         (every $d in tokenize($value,'\s+')[position() lt la
> st()] satisfies           xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of
> (tokenize($value,'\s+'), $d) + 1]))') for element 'meeting' with type 'Meeting'
> did not succeed.
> We could see the benefit of this improvement, as without a user-defined error message, the assertions error messages (the Xerces provided error messages), could be quite verbose (and particularly with, large XPath expressions). Also, using this technique, shall allow user's to specify domain specific error messages.
> I've written a patch for this change, and would be committing it within few minutes.
> Regards,
> Mukul

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] Updated: (XERCESJ-1441) XML Schema 1.1: Implementation of an extension 'message' attribute on assertions

Posted by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org>.
     [ https://issues.apache.org/jira/browse/XERCESJ-1441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Glavassevich updated XERCESJ-1441:
------------------------------------------

    Affects Version/s: 2.9.1
                           (was: 2.10.0)
          Component/s:     (was: XML Schema 1.1 Datatypes)

> XML Schema 1.1: Implementation of an extension 'message' attribute on assertions
> --------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1441
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1441
>             Project: Xerces2-J
>          Issue Type: Improvement
>          Components: XML Schema 1.1 Structures
>    Affects Versions: 2.9.1
>            Reporter: Mukul Gandhi
>            Assignee: Mukul Gandhi
>             Fix For: 2.10.0
>
>
> I think, it's useful to allow users to specify an attribute "message" (say in an extension namespace, "http://xerces.apache.org") on XSD 1.1 assertions. The value of this attribute will be, the error message string which user's would want to display, upon assertions failure.
> Here's an example of this:
> XML document (say, test.xml):
> <meeting>2010-01-01 2010-01-07 2010-01-01</meeting>
> XSD 1.1 document (say, test.xsd):
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>   <xs:element name="meeting" type="Meeting" /> 
>   
>   <xs:simpleType name="Meeting">
>         <xs:restriction base="Dates" xmlns:xerces="http://xerces.apache.org">
> 	     <xs:assertion test="(count(distinct-values(tokenize($value,'\s+'))) = count(tokenize($value,'\s+'))) and
> 						  (every $d in tokenize($value,'\s+')[position() lt last()] satisfies 
> 						   xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of(tokenize($value,'\s+'), $d) + 1]))" 
> 				       xerces:message="Dates must be distinct and must be in ascending order." />			
> 	</xs:restriction>
>   </xs:simpleType>
>   
>   <xs:simpleType name="Dates"> 
>     <xs:list itemType="xs:date" />
>   </xs:simpleType> 
>   
> </xs:schema>
> PS: The namespace declaration, xmlns:xerces="http://xerces.apache.org" could be specified anywhere in the XSD document (say, on xs:schema instruction also), so that this namespace is in the list of, "in scope namespaces" of an assertions instruction.
> With this particular example, upon XSD 1.1 validation with Xerces, following error message would be displayed:
>  [Error] test.xml:1:52: cvc-assertion.failure: Assertion failure. Dates must be distinct and must be in ascending order.
> Whereas, without the attribute "message" on an assertion (or if it's present, but it contains no significant non-whitespace characters), the following error message would be displayed:
> [Error] test.xml:1:52: cvc-assertion.3.13.4.1: Assertion evaluation ('(count(dis
> tinct-values(tokenize($value,'\s+'))) =                          count(tokenize(
> $value,'\s+'))) and         (every $d in tokenize($value,'\s+')[position() lt la
> st()] satisfies           xs:date($d) lt xs:date(tokenize($value,'\s+')[index-of
> (tokenize($value,'\s+'), $d) + 1]))') for element 'meeting' with type 'Meeting'
> did not succeed.
> We could see the benefit of this improvement, as without a user-defined error message, the assertions error messages (the Xerces provided error messages), could be quite verbose (and particularly with, large XPath expressions). Also, using this technique, shall allow user's to specify domain specific error messages.
> I've written a patch for this change, and would be committing it within few minutes.
> Regards,
> Mukul

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org