questions viz. when fields match element with the ur-type

Hello all,

I have a couple of questions about what the behaviour of a schema processor
should be when it encounters a field that matches an element with an
undeclared type.  Consider the schema:

      <xsd:schema
        xmlns="http://schematests.com"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://tests.com">

        <xsd:element name="root">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="name" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:key name="nameKey">
                <xsd:selector xpath="./name"/>
                <xsd:field xpath="."/>
            </xsd:key>

        </xsd:element>

      </xsd:schema>

Since no type is declared for the local "name" element, by the properties
tableaus in [1], it must have the ur-type.

Consider the instance document

      <my:root
        xmlns:my="http://tests.com"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://tests.com idAnytype.xsd">
        <name>Jack Daniels</name>

        <name>Johnny Walker</name>

        <name>Sam Adams</name>
      </my:root>

From the 3rd point of [2]:

"3 For each node in the ·target node set· all of the
{fields}, with that node as the context node, evaluate to either an empty
node-set or a node-set with exactly one member, which must have a simple
type. "

[3] tells us that the ur-type can behave as a simpleType "according to
context":


"[Definition:]  A distinguished ur-type definition is present in each
·XML Schema·, serving as the root of the type definition hierarchy for that
schema. The ur-type definition, whose name is anyType, has the unique
characteristic that it can function as a complex or a simple type
definition, according to context."

This raises two questions:

1.  Is it valid for a <field> to match an element with the ur-type
definition under any circumstances?

2.  If such a match may sometimes be valid (presumably when the element
only contains textual content):

(a) If the element contains text, in which value space should the
schema-normalized value of the field be considered to lie?  This will be
significant in the case of keyref matches, especially in light of the
recent discussions concerning the incomparability of values from disjoint
value spaces.

(b) I presume that an error should be raised if the instance of the
ur-typed element actually contains element content?  Or should the <field>
match simply fail?

Thanks!
Neil

[1]:  http://www.w3.org/TR/xmlschema-1/#declare-element

[2]:
http://www.w3.org/TR/xmlschema-1/#section-Identity-constraint-Definition-Validation-Rules

[3]:
http://www.w3.org/TR/xmlschema-1/#key-urType

Neil Graham
XML Parser Development
IBM Toronto Lab
Phone:  905-413-3519, T/L 969-3519
E-mail:  neilg@ca.ibm.com

Received on Friday, 23 August 2002 11:53:59 UTC