- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 25 Jun 2001 15:47:05 +0100
- To: www-xml-schema-comments@w3.org
ht@cogsci.ed.ac.uk (Henry S. Thompson) writes: > From: afo@zurich.ibm.com > > I would like to have your point of view on the way QName appearing in XPath > expression for a <field> should be interpreted. As specified by the XPath REC [1] > Here is an example extracted from the primer : > > <schema targetNamespace="http://www.example.com/Report" > xmlns="http://www.w3.org/2001/XMLSchema" > xmlns:r="http://www.example.com/Report" > xmlns:xipo="http://www.example.com/IPO" > elementFormDefault="qualified"> > > <import namespace="http://www.example.com/IPO"/> > > <element name="purchaseReport"> > <complexType> > <sequence> > <element name="regions" type="r:RegionsType"> > <keyref name="dummy2" refer="r:pNumKey"> > <selector xpath="r:zip/r:part"/> > <field xpath="@number"/> XPath is very clear -- all unprefixed names are interpreted as unqualfied. So this will match 'number' attributes with no namespace name. > </keyref> > </element> > > <element name="parts" type="r:PartsType"/> > </sequence> > <attribute name="period" type="duration"/> > <attribute name="periodEnding" type="date"/> > </complexType> > > </element> > > <complexType name="RegionsType"> > <sequence> > <element name="zip" maxOccurs="unbounded"> > <complexType> > <sequence> > <element name="part" maxOccurs="unbounded"> > <complexType> > <complexContent> > <restriction base="anyType"> > <attribute name="number" type="xipo:SKU"/> This does _not_ define a qualified attribute. Accordingly, in conformant instances, the actual AII will have no namespace name. > <attribute name="quantity" type="positiveInteger"/> > </restriction> > </complexContent> > </complexType> > </element> > </sequence> > <attribute name="code" type="positiveInteger"/> > </complexType> > </element> > </sequence> > </complexType> > </schema> > > In <field xpath="@number"/>, since the default namespace (the namespace > without prefix) is http://www.w3.org/2001/XMLSchema, I think "@number" > refers to the qualified attribute > {http://www.w3.org/2001/XMLSchema}{number}. But it doesn't, see above. > However, there is no such > attribute in {http://www.example.com/Report}{zip}/ > {http://www.example.com/Report}{part} ("number" attribute defined there is > unqualified). According to me, this example extracted from the primer is > invalid. You have misunderstood how XPath interprets names. Note that the type of the 'xpath' attribute of <xs:field> and <xs:selector> is _not_ QName, but a rather xs:token restricted by an appropriate regexp. ht [1] http://www.w3.org/TR/xpath -- 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 Monday, 25 June 2001 10:47:03 UTC