- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 14 Sep 2005 18:05:40 +0000
- To: www-xml-schema-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=2169
Summary: R-172: Questions viz. when fields match element with the
ur-type
Product: XML Schema
Version: 1.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: XSD Part 1: Structures
AssignedTo: ht@w3.org
ReportedBy: sandygao@ca.ibm.com
QAContact: www-xml-schema-comments@w3.org
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:
Is it valid for a <field> to match an element with the ur-type definition under
any circumstances?
If such a match may sometimes be valid (presumably when the element only
contains textual content):
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.
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?
[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
See:
http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002JulSep/0085.html
Henry's response:
http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002JulSep/0089.html
Received on Wednesday, 14 September 2005 18:06:18 UTC