W3C home > Mailing lists > Public > xmlschema-dev@w3.org > April 2002

Re: xmlspy validation bug with cos-element-consistent

From: Eddie Robertsson <erobertsson@allette.com.au>
Date: Fri, 26 Apr 2002 09:57:04 +1000
Message-ID: <3CC897D0.964F51E3@allette.com.au>
To: Scott Chastain <scott_chastain@fanniemae.com>
CC: xmlschema-dev@w3.org
Hi Scott,

> As a C++ programming my overloading instincts make me want the
> funtionality
> displayed in these examples.  Help me understand why XmlSpy validates
> one
> way in schema view and another way in text view; and also help me
> understand
> why my examples should not be valid. Please.

I can't answer why XML Spy validates in one view and gives errors in another but I can
confirm that your schema is in fact invalid. The reason is the following:

     <xs:complexType>
      <xs:choice>
       <xs:element name="mydate" type="xs:date">
        <xs:annotation>
         <xs:documentation>date</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="mydate" type="xs:dateTime">
        <xs:annotation>
         <xs:documentation>date time</xs:documentation>
        </xs:annotation>
       </xs:element>
      </xs:choice>
     </xs:complexType>

In XML Schema you can't have two element declarations with the same name but different
types in the same content model.

Cheers,
/Eddie


>
>
> BEGIN EXAMPLE
> --------------------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Scott-->
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified" attributeFormDefault="unqualified">
>  <xs:element name="root">
>   <xs:complexType>
>    <xs:sequence>
>     <xs:element name="example1">
>      <xs:annotation>
>       <xs:documentation>Example of the W3C error:
> cos-element-consistent</xs:documentation>
>      </xs:annotation>
>      <xs:complexType>
>       <xs:choice>
>        <xs:element name="mydate" type="xs:date">
>         <xs:annotation>
>          <xs:documentation>date</xs:documentation>
>         </xs:annotation>
>        </xs:element>
>        <xs:element name="mydate" type="xs:dateTime">
>         <xs:annotation>
>          <xs:documentation>date time</xs:documentation>
>         </xs:annotation>
>        </xs:element>
>       </xs:choice>
>      </xs:complexType>
>     </xs:element>
>     <xs:element name="example2">
>      <xs:annotation>
>       <xs:documentation>More subtle version</xs:documentation>
>      </xs:annotation>
>      <xs:complexType>
>       <xs:choice>
>        <xs:sequence>
>         <xs:element name="mydate" type="xs:date">
>          <xs:annotation>
>           <xs:documentation>date</xs:documentation>
>          </xs:annotation>
>         </xs:element>
>         <xs:element name="myValue" type="xs:double"/>
>        </xs:sequence>
>        <xs:sequence>
>         <xs:element name="mydate" type="xs:dateTime">
>          <xs:annotation>
>           <xs:documentation>date time</xs:documentation>
>          </xs:annotation>
>         </xs:element>
>         <xs:element name="myValue" type="xs:double"/>
>        </xs:sequence>
>       </xs:choice>
>      </xs:complexType>
>     </xs:element>
>    </xs:sequence>
>   </xs:complexType>
>  </xs:element>
> </xs:schema>
> ------------------------------------------------------------------
> END EXAMPLE
Received on Thursday, 25 April 2002 20:10:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:30 GMT