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

Mukul Gandhi commented on XERCESJ-1538:
---------------------------------------

Xerces (the latest code base from SVN) reports your schema to be correct. And 
it also reports the XML document that you've posted, to be valid as per the 
schema you've posted.

It seems your sample XML doesn't have any "datapanel" or "server" elements (so 
I couldn't test assertion [particularly the failure scenario] specified in your 
schema, with the test case that you've posted). If you may want to post a 
modified test case with assertion success and failure scenarios both, then that 
would be helpful for us to determine if the observation you're experiencing is 
a bug.

If you want us to test the multithreaded scenario, then it would help us if you 
could post the end to end java application, so Xerces developers can verify the 
behavior you're mentioning.

May I also suggest a modified assertion XPath expression as below, that 
probably solves your use case (easy for me to understand at least the logic of 
assertion),

if (datapanel or server) then main_context[../self::action] else true()

(I couldn't test this expression, since your sample XML instance doesn't have a 
failure scenario -- I would ideally like to have such a test case, so our 
verification of the bug is easier)
                
> Multithread validation failed in Xerces2 with XML Schema 1.1 support when 
> assert instruction in XSD
> ---------------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1538
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1538
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: JAXP (javax.xml.validation)
>    Affects Versions: 2.11.0
>         Environment: Windows 7 x64, Java 6 Update 26 x64 
>            Reporter: Denis Orekhov
>
> I'm using Xerces2 Java 2.11.0 (XML Schema 1.1) (Beta) in my app. Schema 
> validation in my app can occurs simultaneously in separate threads.
> This is part of my xsd:
>       <xs:element name="action">
>               <xs:complexType>
>                       <xs:all>
>                               <xs:element name="main_context" minOccurs="0" />
>                               <xs:element name="navigator" minOccurs="0">
>                                       <xs:complexType>
>                                               <xs:attribute name="element" 
> type="xs:string" />
>                                               <xs:attribute name="refresh" 
> type="xs:boolean" />
>                                       </xs:complexType>
>                               </xs:element>
>                               <xs:element name="datapanel" minOccurs="0">
>                                       <xs:complexType>
>                                               <xs:sequence>
>                                                       <xs:element 
> name="element" maxOccurs="unbounded"
>                                                               minOccurs="0">
>                                                               <xs:complexType>
>                                                                       
> <xs:sequence>
>                                                                               
> <xs:element name="add_context" minOccurs="0" />
>                                                                       
> </xs:sequence>
>                                                                       
> <xs:attribute name="id" type="xs:string" use="required" />
>                                                                       
> <xs:attribute name="refresh_context_only" type="xs:boolean" />
>                                                                       
> <xs:attribute name="skip_refresh_context_only"
>                                                                               
> type="xs:boolean" />
>                                                                       
> <xs:attribute name="keep_user_settings" type="xs:boolean" />
>                                                               
> </xs:complexType>
>                                                       </xs:element>
>                                               </xs:sequence>
>                                               <xs:attribute name="type" 
> type="xs:string" use="required" />
>                                               <xs:attribute name="tab" 
> type="xs:string" />
>                                       </xs:complexType>
>                               </xs:element>
>                               <xs:element name="server" minOccurs="0">
>                                       <xs:complexType>
>                                               <xs:sequence>
>                                                       <xs:element 
> name="activity" minOccurs="0" maxOccurs="unbounded">
>                                                               <xs:complexType>
>                                                                       
> <xs:sequence>
>                                                                               
> <xs:element name="add_context" minOccurs="0" />
>                                                                       
> </xs:sequence>
>                                                                       
> <xs:attribute name="type" type="xs:string"
>                                                                               
> use="required" />                                                             
>           
>                                                               
> </xs:complexType>
>                                                       </xs:element>
>                                               </xs:sequence>
>                                       </xs:complexType>                       
>                 
>                               </xs:element>
>                       </xs:all>
>                       <xs:assert
>                               test="(count(datapanel) + count(server) =0) or 
> (count(*[position()=1 and name()='main_context']) = 1)" />
>               </xs:complexType>
>       </xs:element>
> And sometimes I have SAXException with text "cvc-assertion.3.13.4.1: 
> Assertion evaluation ('(count(datapanel) + count(server) =0) or 
> (count(*[position()=1 and name()='main_context']) = 1)') for element 'action' 
> with type '#anonymous' did not succeed.".
> I checked my data and schema text before validation error - both is good.

--
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