XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] XML Schema complex type restriction

On 29 September 2017 at 14:09, Michael Kay <mike@saxonica.com> 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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS