W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2001

Re: Possible errors in XSV

From: Eddie Robertsson <eddie@allette.com.au>
Date: Fri, 19 Jan 2001 10:15:15 +1100
Message-ID: <3A677903.A7A4428D@allette.com.au>
To: "Henry S. Thompson" <ht@cogsci.ed.ac.uk>
CC: XSD <xmlschema-dev@w3.org>
"Henry S. Thompson" wrote:

> Eddie Robertsson <eddie@allette.com.au> writes:
>
> > 2) Type check for substitutionGroup. According to the spec "Elements in
> > a substituition group must have the same type as the head element, or
> > they can have a type that has been derived from the head element's
> > type". XSV doesn't seem to restrict the types of the elements in the
> > substitution group but I guess if 1) hasn't been implemented yet this is
> > an effect of that.

> This is a fixed bug, you need the newer packaged-up executable [1]:

Sorry, but I can't seem to find the reference [1] in the email. I've downloaded the
package from http://www.ltg.ed.ac.uk/~ht/xsv-status.html but it seems to be the
older version (XSV 1.173.2.15/1.74.2.20 of 2000/12/16 12:10:29) and not the new
you're referring to (XSV 1 .173.2.15.2.4/1.74.2.25 of
2001/01/03 19:13:19').

Regards,
/Eddie

> <xsv docElt='{http://www.substgroup.org}substGroup'
> instanceAssessed='true' instanceErrors='0' rootType='[Anonymous]'
> schemaDocs='substGroup.xsd' schemaErrors='1'
> schemaLocs='http://www.substgroup.org -> substGroup.xsd'
> target='/projects/ltg/users/ht/xml/xmlschema/monk/substGroup.xml'
> validation='strict' version='XSV 1 .173.2.15.2.4/1.74.2.25 of
> 2001/01/03 19:13:19' xmlns='http://www.w3.org/2000/05/xsv'>
>
> <schemaError char='50' line='13' phase='instance'
> resource='file:///projects/ltg/users/ht/xml/xmlschema/monk/substGroup.xsd'>type
> {http://www.w3.org/2000/10/XML Schema}string not subtype of type
> {http://www.w3.org/2000/10/XMLSchema}integer of exemplar
> {http://www.substgroup.org}:integer</schemaError>
>
> </xsv>
>
> > 3) Use of the final and block attributes in complexType definitions.
> > 4) The all element doesn't seem to work properly
> > 5) Duplicate ID attributes allowed in the instance
> >
> > 3, 4 and 5 exist in the following example:
> >
> > finalTest.xsd:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsd:schema targetNamespace="http://www.finalTest.org"
> > xmlns:f="http://www.finalTest.org"
> > xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
> > elementFormDefault="qualified">
> >  <xsd:element name="finalTest">
> >   <xsd:complexType>
> >    <xsd:sequence>
> >     <xsd:element ref="f:address"/>
> >    </xsd:sequence>
> >   </xsd:complexType>
> >  </xsd:element>
> >  <xsd:complexType name="addressType" final="#all">
> >   <xsd:annotation>
> >    <xsd:documentation>You can change the final="#all" to block="#all"
> > and the schema is still valid...</xsd:documentation>
> >   </xsd:annotation>
> >   <xsd:all>
> >    <xsd:element name="street" maxOccurs="unbounded">
> >     <xsd:complexType mixed="true">
> >      <xsd:attribute name="code" type="xsd:ID"/>
> >     </xsd:complexType>
> >    </xsd:element>
> >    <xsd:element name="state" type="xsd:string"/>
> >  </xsd:all>
> >  </xsd:complexType>
> >  <xsd:complexType name="myAddress">
> >   <xsd:complexContent>
> >    <xsd:extension base="f:addressType">
> >     <xsd:sequence>
> >      <xsd:element name="unit" type="xsd:string"/>
> >     </xsd:sequence>
> >    </xsd:extension>
> >   </xsd:complexContent>
> >  </xsd:complexType>
> >  <xsd:element name="address" type="f:addressType"/>
> >  <xsd:element name="myAddress" type="f:myAddress"
> > substitutionGroup="f:address"/>
> > </xsd:schema>
> >
> > finalTest.xml:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <finalTest xmlns="http://www.finalTest.org"
> > xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
> > xsi:schemaLocation="http://www.finalTest.org finalTest.xsd">
> >  <myAddress>
> >   <street code="S-2000">York street</street>
> >   <street code="S-2000">York street</street>
> >   <unit>31</unit>
> >  </myAddress>
> > </finalTest>
> >
> > XSV doesn't generate any errors for this instance but I see several.
> > First, the use of the final attribute for the addressType should
> > restrict derivation using this type as a base but it seems to work fine
> > anyway.
>
> This is a bug in XSV wrt #all, if you use final='extension
> restriction' you will get the expected error.
>
> > Second, the element address uses the xsd:all element which has
> > two issues:
> >
> > * According to the spec an element in an all group can only have
> > minOccurs and maxOccurs equal to 0 or 1 but in the above example the
> > street element have maxOccurs=unbounded.
>
> You're right, XSV should be checking this but isn't.
>
> > * Although the element state is declared in the all group the instance
> > is still valid without a state element in the instance.
>
> You're right, XSV should be checking this but isn't.
>
> > Third, the attribute code in the street element is declared with the
> > xsd:ID type but still the above instance is valid (I guess this comes
> > back to the issue of the data types in the first question though...)
>
> That's correct, key/keyref is implemented but ID/IDREF is not.
>
> > 5) When I ran the following instance with XSV I received a bug report:
> >
> > xsiType.xsd:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsd:schema targetNamespace="http://cars.example.com/schema"
> > xmlns="http://cars.example.com/schema"
> > xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
> >  <xsd:complexType name="Vehicle" abstract="true"/>
> >  <xsd:complexType name="Car">
> >   <xsd:complexContent>
> >    <xsd:extension base="Vehicle">
> >     <xsd:sequence>
> >      <xsd:element name="Make" type="xsd:string"/>
> >     </xsd:sequence>
> >    </xsd:extension>
> >   </xsd:complexContent>
> >  </xsd:complexType>
> >  <xsd:complexType name="Plane">
> >   <xsd:complexContent>
> >    <xsd:extension base="Vehicle"/>
> >   </xsd:complexContent>
> >  </xsd:complexType>
> >  <xsd:element name="transport" type="Vehicle"/>
> > </xsd:schema>
> >
> > xsiType.xml:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <transport xmlns="http://cars.example.com/schema"
> > xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
> > xsi:schemaLocation="http://cars.example.com/schema xsiType.xsd"
> > xsi:type="Car">
> >  <Make>Ford</Make>
> > </transport>
> >
> > The output from XSV was:
> > <?xml version='1.0'?>
> > <xsv crash='true' docElt='{http://cars.example.com/schema}transport'
>
> </snip>
>
> Fixed in latest version.
>
> > I also have a final question for the XSV group. Do you have a schema or
> > DTD for the error logs?
>
> Surely there should be, but there aren't :-(
>
> > I'm planning on writing an XSLT stylesheet to simply output the error
> > information you really and it's a bit hard when I don't know what to
> > expect from the error log. I know there is a stylesheet provided with
> > XSV but I just want simple information to std output.
>
> Sorry.
>
> ht
> --
>   Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
>           W3C Fellow 1999--2001, part-time member of W3C Team
>      2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
>             Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
>                      URL: http://www.ltg.ed.ac.uk/~ht/
Received on Thursday, 18 January 2001 18:12:37 GMT

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