Re: A sixth space needed for xs:NOTATION?

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.

Correct.

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

Yes.

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