Re: XML Schema WG comments on RDF documents

At 11:29 AM +0200 4/28/03, Jeremy Carroll wrote:

>       * Each member of the value space may be paired with any number
>         (including zero) of members of the lexical space (lexical
>         representations for that value).

>As far as I remember, the motivation for the "(including zero)" is
>because of our understanding of XML Schema Union datatypes.
>Hence I am seeking clarification.
>
>An XML Schema example:
>=====================
>
><xsd:element name="foo">
>   <xsd:simpleType>
>     <xsd:union memberTypes="xsd:string xsd:int"/>
>   </xsd:simpleType>
></xsd:element>
>
>The lexical space of the first type masks the lexical space of the second.
>Thus no integers have a corresponding lexical form.
>
>Then the lexical mapping maps no values to the integer 2, but it is in the
>value space since
>    <foo xsi:type="xsd:int">2</foo>
>
>conforms with this type, and accesses the hidden part of the value space.

In order to map the lexical representation '2' to either the integer 2 or
the string '2', one must first determine the datatype; in the case of a
union datatype, one must first determine the appropriate member type.
Only then is the lexical mapping *of that member type* used to map the
lexical representation to the value.

Thus a union datatype has several "potential" lexical mappings, one of which
becomes "operant" when, either by trial and error (running down the ordered
list of member types) or by fiat (using xsi:type), the operant member
datatype is found.

The point is that '2' would have to somehow be mapped to 2 or the example
you give would be broken.  For union datatypes, a character string in
the lexical space can be the lexical representation of more than one
value in the union's value space.  Your confusion on this point will
encourage us to explain it more carefully in the Schema 1.1 writeup.
-- 
Dave Peterson
SGMLWorks!, for IDEAlliance

davep@iit.edu

Received on Monday, 28 April 2003 09:40:51 UTC