- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Wed, 16 Mar 2005 09:38:30 +0000
- To: www-xml-schema-comments@w3.org
> I still have a question concerning a similar issue: If restricting the
> value of the whitespace facet of the base type, what whitespace
> value is actually used for validation, the inherited or the restricted?
Should be the restricted, otherwise what's the point?
> Example:
>
> <?xml version="1.0"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema">
> <element name="foo">
> <simpleType>
> <restriction base="string">
> <enumeration value="hel lo"/>
> <whiteSpace value="collapse"/>
> </restriction>
> </simpleType>
> </element>
> </schema>
>
> <?xml version="1.0"?>
> <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > hel lo </foo>
>
> Xerces uses the inherited whitespace value for normalization [of the
> enumeration value]:
>
> "(Error) cvc-enumeration-valid: Value 'hel lo' is not facet-valid with
> respect to enumeration '[hel lo]'. It must be a value from the
> enumeration."
That's a bug in the spec., in my opinion, with hindsight. The
spec. says the enumeration values must be valid (and as a consequence,
normalized with respect to) the base type defn, not the type defn
itself. It's simpler that way, but at best confusing (as in your
example) and at worst bizarre:
<simpleType>
<restriction base="string">
<maxLength value="1"/>
<enumeration value="xx"/>
</restriction>
</simpleType>
is a legal, unsatisfiable, type definition, per the spec.
I _think_ I'd prefer to see the checking and normalization done
against the type defn itself.
ht
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
Received on Wednesday, 16 March 2005 09:38:31 UTC