Dear Mukulg,

  I followed your suggestion and it worked ;-)

     Thanks

       Roberto

On Mon, Apr 22, 2013 at 2:39 PM, Mukul Gandhi <muk...@apache.org> wrote:
> your XSD document specifies the concerned element declarations as follows,
>
> <xsd:element name="defocusU" type="defocusType"  maxOccurs="1" minOccurs="0"/>
> <xsd:element name="defocusV" type="defocusType" maxOccurs="1" minOccurs="0"/>
>
> which means that these elements are optional.
>
> Within your XML instance document, only the first <particle> element
> has the above element instances. Your assertion, <xsd:assert
> test="defocusU ge defocusV" /> succeeds on the <particle> which has
> the elements defocusU and defocusV but fails on the other <particle>
> elements. I think, the correct way to write your assertion would be,
>
> <xsd:assert test="if (defocusU and defocusV) then (defocusU ge
> defocusV) else true()" />
>
> Which will take care of the optional nature of these elements. Since
> the complexType "defocusType" in your schema has simpleContent,
> therefore "ge" operator would work fine as you're expecting.
>
> On Mon, Apr 22, 2013 at 5:52 AM, Roberto Marabini <robe...@cnb.csic.es> wrote:
>> Hi,
>>
>>     I am trying to write a XSD 1.1 schema that uses  XSD 1.1
>> assertions. I am able to repeat the examples described in the URL:
>> http://mukulgandhi.blogspot.com.es/2009/11/xsd-11-some-xsd-11-samples-running-with.html
>> so I guess my xerces-j installation is OK.
>>
>>    When I tried to include an assert in my schema (I reproduce part of
>> it in the email and attach the full file) I got the error message:
>>
>> [Error] kk.emx:33:14: cvc-assertion.3.13.4.1: Assertion evaluation
>> ('defocusU ge defocusV') for element 'particle' with type '#anonymous'
>> did not succeed.
>>
>> but defocusU is indeed greater than defocusV
>>
>> Note that the commented lines
>>
>> <!-- <xsd:assert test="t34 le 3" />-->
>> <!-- <xsd:assert test="@index le 3" />-->
>>
>> work properly when uncommented
>>
>> but
>>
>>         <xsd:assert test="defocusU ge defocusV" />
>>
>> does not. I guess the problem is that defocusU and defocusV are complextypes
>>
>> any help will be welcomed
>>
>>     thanks
>>
>>                Roberto
>> =================
>>
>> Schema
>>
>> <?xml version="1.1" encoding="UTF-8"?>
>> <xsd:schema elementFormDefault="qualified"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>>
>> ...............
>> ...............
>> ..............
>>
>> <xsd:element name="EMX">
>>     <xsd:complexType>
>>       <xsd:sequence>
>>
>>       <xsd:element name="micrograph" type="microType"
>> maxOccurs="unbounded" minOccurs="0"/>
>>
>>       <xsd:element name="particle" maxOccurs="unbounded" minOccurs="0">
>>             <xsd:complexType>
>>               <xsd:all>
>>                 <xsd:element name="defocusU" type="defocusType"
>> maxOccurs="1" minOccurs="0"/>
>>                 <xsd:element name="defocusV" type="defocusType" maxOccurs="1"
>> minOccurs="0"/>
>>                 <xsd:element name="defocusUAngle" type="angleType"
>> maxOccurs="1" minOccurs="0"/>
>>
>>
>>                 <xsd:element name="micrograph" maxOccurs="1" minOccurs="0">
>>                   <xsd:complexType>
>>                          <xsd:simpleContent>
>>                              <xsd:extension base="xsd:string">
>>                                  <xsd:attribute name="fileName" 
>> type="xsd:string"
>> use="required"/>
>>                                  <xsd:attribute name="index" 
>> type="xsd:integer"/>
>>                              </xsd:extension>
>>                          </xsd:simpleContent>
>>                   </xsd:complexType>
>>                 </xsd:element>
>>
>>             <xsd:element name="activeFlag"
>> type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="0"/>
>>                 <xsd:element name="boxSize" maxOccurs="1" minOccurs="0">
>>                   <xsd:complexType>
>>                         <xsd:all>
>>                           <xsd:element name="X" type="boxSizeType" 
>> maxOccurs="1"
>> minOccurs="1"/>
>>                           <xsd:element name="Y" type="boxSizeType" 
>> maxOccurs="1"
>> minOccurs="1"/>
>>                         </xsd:all>
>>                   </xsd:complexType>
>>                 </xsd:element>
>>
>>                 <xsd:element name="centerCoord" maxOccurs="1" minOccurs="0">
>>                   <xsd:complexType>
>>                         <xsd:all>
>>                           <xsd:element name="X" type="coordType" 
>> maxOccurs="1" minOccurs="1"/>
>>                           <xsd:element name="Y" type="coordType" 
>> maxOccurs="1" minOccurs="1"/>
>>                         </xsd:all>
>>                   </xsd:complexType>
>>                 </xsd:element>
>>
>>             <xsd:element name="fom" type="decimalBTzeroANDone"
>> maxOccurs="1" minOccurs="0"/>
>>                 <xsd:element name="pixelSpacing" maxOccurs="1" minOccurs="0">
>>                   <xsd:complexType>
>>                         <xsd:all>
>>                           <xsd:element name="X" type="samplingType" 
>> maxOccurs="1"
>> minOccurs="1"/>
>>                           <xsd:element name="Y" type="samplingType" 
>> maxOccurs="1"
>> minOccurs="1"/>
>>                         </xsd:all>
>>                   </xsd:complexType>
>>                 </xsd:element>
>>
>>                 <xsd:element name="transformationMatrix" maxOccurs="1" 
>> minOccurs="0">
>>                   <xsd:complexType>
>>                         <xsd:all>
>>                           <xsd:element name="t11" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t12" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t13" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t14" type="transformationType"
>> maxOccurs="1" minOccurs="0"/>
>>                           <xsd:element name="t21" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t22" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t23" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t24" type="transformationType"
>> maxOccurs="1" minOccurs="0"/>
>>                           <xsd:element name="t31" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t32" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t33" type="xsd:double" 
>> maxOccurs="1"
>> minOccurs="0"/>
>>                           <xsd:element name="t34" type="transformationType"
>> maxOccurs="1" minOccurs="0"/>
>>                         </xsd:all>
>>               <!-- <xsd:assert test="t34 le 3" />-->
>>                   </xsd:complexType>
>>                 </xsd:element>
>>
>>               </xsd:all>
>>               <xsd:attribute name="fileName" type="xsd:string" 
>> use="required"/>
>>               <xsd:attribute name="index" type="xsd:integer"/>
>>         <!-- <xsd:assert test="@index le 3" />-->
>>         <xsd:assert test="defocusU ge defocusV" />
>>             </xsd:complexType>
>>     </xsd:element>
>>
>>     </xsd:sequence>
>>     <xsd:attribute name="version" type="numVersion" use="required"/>
>>   </xsd:complexType>
>> </xsd:element>
>>
>> </xsd:schema>
>
>
>
> --
> Regards,
> Mukul Gandhi
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org
> For additional commands, e-mail: j-users-h...@xerces.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org
For additional commands, e-mail: j-users-h...@xerces.apache.org

Reply via email to