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

Re: A sixth space needed for xs:NOTATION?

From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
Date: 25 Oct 2001 09:07:26 +0100
To: Eric van der Vlist <vdv@dyomedea.com>
Cc: xmlschema-dev@w3.org
Message-ID: <f5b4roo3zy9.fsf@cogsci.ed.ac.uk>
Eric van der Vlist <vdv@dyomedea.com> writes:

> 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?

I _think_ you're confused here.  For better or worse, W3C XML Schema
NOTATION is not a complete reconstruction of XML 1.0 DTD NOTATION.  In 
particular, being declared as a NOTATION in a DTD does _not_ make
something a legal value for a item declared to be of
(constrained base) type NOTATION in a schema.  So NCNames don't enter
in to the matter at all.  

> 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.

Again, DTD NOTATIONs are covered by that constraint, but XML Schema
NOTATIONs are not.

> <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"} ?

The latter.

> It makes probably more sense to say that it's {NULL, "jpeg"}.

Why?  It's a QName, so it obeys the namespace rules (see previous
discussion with you!).

> 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.

It will be valid, because {"http://example.org/pictures", jpeg} is
what gets matched against.

> To match {NULL, jpeg}, the notation would have to be defined in a schema with
> no target namespace.


> Finally, I assume that the length facet as no more meaning on
> xs:NOTATION than on xs:QName...


  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, 25 October 2001 04:06:41 GMT

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