RE: Data Model WD: Appendix D

> I think that such an example would greatly illuminate the spec.

Would you like to supply such an example?  I am sure the WGs would be
glad to consider such a submission.

/paulc

Paul Cotton, Microsoft Canada 
17 Eleanor Drive, Nepean, Ontario K2E 6A3 
Tel: (613) 225-5445 Fax: (425) 936-7329 
<mailto:pcotton@microsoft.com> 


> -----Original Message-----
> From: Jeni Tennison [mailto:jeni@jenitennison.com]
> Sent: Monday, August 19, 2002 6:42 PM
> To: public-qt-comments@w3.org
> Subject: Data Model WD: Appendix D
> 
> 
> Hi,
> 
> (I seem to comment on this appendix in every draft, sorry!)
> 
> There are a couple of problems with the schema in Appendix D of the
> Data Model WD.
> 
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>            targetNamespace="http://www.example.com/PartSchema"
>            xmlns="http://www.example.com/PartSchema"
>            elementFormDefault="qualified">
>   <xs:element name="part" type="part-type"/>
>   <xs:complexType name="part-type">
>     <xs:sequence>
>       <xs:element name="mfg" type="xs:string"/>
>       <xs:element name="price" type="xs:decimal"/>
>     </xs:sequence>
>     <xs:attribute name="name" type="part-name"/>
>   </xs:complexType>
>   <xs:simpleType name="part-name">
>     <xs:restriction base="xsd:string">
>       <xs:pattern value="[A-Z]{2}-\d{3}-[A-Z]*"/>
>     </xs:restriction>
>   </xs:simpleType>
> </xs:schema>
> 
> First, in the part-name simple type definition, the xs:restriction
> element has a base attribute with the value 'xsd:string'. That should
> be 'xs:string', or you should add a namespace declaration associating
> the prefix 'xsd' with the XML Schema namespace.
> 
> Second, I think that the pattern for the part-name type should be:
> 
>   [A-Z]{2}-\d{3}-[a-z]*
> 
> At least, in the instance that you claim to be valid against this
> schema, the part-name is "NB-401-nutbolt" which doesn't match the
> pattern as currently specified.
> 
> If you make those changes it validates according to Xerces-J, and by
> eye.
> 
> There are also a couple of problems in the description of the data
> model generated from the instance and the schema.
> 
> First, dm:type(A1) (the type of the name attribute) should be
> 
>   xf:QName-from-uri("http://www.example.com/PartSchema",
>                     "part-name")
> 
> shouldn't it? Or was the invalidity on purpose? If it was, then
> surely dm:typed-value(A1) should be:
> 
>   dm:atomic-value("NB-401-nutbolt",
>       xf:QName-from-uri("http://www.w3.org/2001/XMLSchema",
>                         "anySimpleType"))
> 
> and dm:type(A1) should be:
> 
>   xf:QName-from-uri("http://www.w3.org/2001/XMLSchema",
>                     "anySimpleType")
> 
> Second, dm:string-value(A2) (the string value of the
> xsi:schemaLocation attribute) seems to have a '\' in it? I'm not sure
> what that's doing there, or is it meant to indicate that there's an
> insignificant line break?
> 
> Finally, in the picture, the schemaLocation attribute should probably
> be called xsi:schemaLocation, since the other qualified nodes use the
> prefix to indicate their namespace.
> 
> As it stands, this example is fairly straight-forward. It would be
> great if this example could be turned into something that really
> demonstrated some of the stickier features of the data model, such as:
> 
>   - partial validity
>   - union types
>   - list types
>   - lists of unions
>   - unions of lists
>   - whitespace normalisation of values
>   - the effect of xml:base
>   - anonymous types
>   - a schema with more than one level in the type hierarchy
> 
> I think that such an example would greatly illuminate the spec.
> 
> Cheers,
> 
> Jeni
> ---
> Jeni Tennison
> http://www.jenitennison.com/

Received on Tuesday, 20 August 2002 13:15:20 UTC