- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Wed, 24 Oct 2001 16:53:47 +0200
- To: xmlschema-dev@w3.org
3.2.19 NOTATION "[Definition:] NOTATION represents the NOTATION attribute type from [XML 1.0 (Second Edition)]. The ·value space· of NOTATION is the set QNames. The ·lexical space· of NOTATION is the set of all names of notations declared in the current schema. Schema Component Constraint: enumeration facet value required for NOTATION It is an ·error· for NOTATION to be used directly in a schema. Only datatypes that are ·derived· from NOTATION by specifying a value for ·enumeration· can be used in a schema." Doesn't it mean that the lexical space in the instance document is different (NCName defined as notation) than the lexical space used in the facets in the schema (QName) and that we need to differentiate these two spaces? Since the lexical space is "the set of all names of notations declared in the current schema" and XML Namespaces forbids colons in notation names, the lexical space is unqualified. To transform these unqualified names into a value space which is the set QNames, which namespace URI do we add? Probably the namespace URI of the element or attribute having the datatype xs:NOTATION, but isn't it a problem when the attribute is unqualified and is included in an element having a namespace? To take an example already used on this list, if I have in an instance document: <picture xmlns="http://example.org/pictures" pictype="jpeg">... with pictype having a type xs:NOTATION, what's the value of pictype? Is-it {NULL, "jpeg"} or {"http://example.org/pictures", "jpeg"} ? It makes probably more sense to say that it's {NULL, "jpeg"}. If I copy and adapt the schema given in the same post: <xs:schema targetNamespace="http://example.org/pictures" xmlns:pic="http://example.org/pictures" <xs:notation name="jpeg" SYSTEM="pw.exe"/> <xs:simpleType name="myNotation"> <xs:restriction base="NOTATION"> <xs:enumeration value="pic:jpeg"/> </xs:restriction> </xs:simpleType> <xs:element name="picture"> <xs:complexType> <xs:complexContent> <xs:extension base="xs:binary"> <xs:attribute name="pictype" type="myNotation" form="unqualified"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> This would match {"http://example.org/pictures", jpeg} and the instance document would not be valid. To match {NULL, jpeg}, the notation would have to be defined in a schema with no target namespace. Is this the expected behavior? Finally, I assume that the length facet as no more meaning on xs:NOTATION than on xs:QName... Thanks Eric -- Rendez-vous à Paris pour le Forum XML. http://www.technoforum.fr/Pages/forumXML01/index.html ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com http://xsltunit.org http://4xt.org http://examplotron.org ------------------------------------------------------------------------
Received on Wednesday, 24 October 2001 10:53:21 UTC