[Home] [By Thread] [By Date] [Recent Entries]

  • From: Mukul Gandhi <gandhi.mukul@g...>
  • To: Michael Kay <mike@s...>
  • Date: Mon, 2 Oct 2017 19:01:24 +0530

On 29 September 2017 at 14:09, Michael Kay <mike@s...> wrote:
More realistically, imagine you have a complex type whose content model is <element name="para" minOccurs="0" maxOccurs="unbounded"/>, and the assertion says test="exists(para)", then the assertion on its own would allow

<para/>
<fig/>
<fig/>

which the complex type's grammar does not allow.

Requiring the assertion to be true ONLY for content that satisfies the grammar would be a ridiculous burden on schema authors.
 
Thanks for sharing this example. In this, the assertion has violated the constraint defined by the grammar. I think, this is an anti-pattern for using an assertion.

Please consider the following example:

XML instance

<?xml version="1.0"?>
<speed>
   <from>10</from>
   <to>50</to>
</speed>

The corresponding XSD 1.1 schema

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   
   <xs:element name="speed">
     <xs:complexType>
        <xs:sequence>
           <xs:element name="from" type="xs:positiveInteger"/>
           <xs:element name="to" type="xs:positiveInteger"/>
        </xs:sequence>
        <xs:assert test="from lt to"/>
     </xs:complexType>
   </xs:element>
   
</xs:schema>

IMHO, these are the sort of use cases, where assertions are quite useful.


--
Regards,
Mukul Gandhi


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member