- From: C. M. Sperberg-McQueen <cmsmcq@acm.org>
- Date: Mon, 29 Jan 2007 14:20:41 -0600
- To: Zhiqiang Yu <yuzhiqiang@gmail.com>
- Cc: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>, www-ql@w3.org
On 21 Jan 2007, at 09:24 , Zhiqiang Yu wrote: > I am a software engineer and encounter some problem when reading the > spec of XQuery 1.0 and XPath 2.0 Data Model (XDM). > http://www.w3.org/TR/xpath-datamodel/#PSVI2Types > In the Chapter 3.3.1 ( Mapping PSVI addition to Node Propterties), > it says: > - The *[validity]* and *[validation attempted]* properties exist > and have the values "*valid* " and "*full*", respectively, the > schema type of an element or attribute information item is > represented by an > expanded-QName > <http://www.w3.org/TR/xpath-datamodel/#dt-expanded-qname%23dt- expanded-qname> > whose namespace and local name correspond to the first applicable > items in the following list: > - If the declared type exists and is a union and the actual > type is ….. > - If there is no declared type, and the actual type is a union, > then: …… > - Otherwise: …. > Regarding the second bullet, I can NOT understand in which cases > there will be no declared type? I think it is impossible. Since the > declared type reference the *[type definition] *associated with the > declaration, if an element/attribute is validated, it should be > already associated with a element/attribute declaration, which > should have the type definition. > could anyone give me some clarification on this? Thanks a lot in > advance! Thanks for your question. It's a good one that caused the Working Groups a few moments of head-scratching before we remembered why this clause is present. Elements may be validated against type definitions without having been validated against an element declaration in at least two cases: 1) Validation was initiated by a request to validate a particular element against a particular type. (In section 5.2 of XML Schema 1.0: Structures, this is item 1 in the list of ways validation can start. In 1.1, the term 'type-driven validation' is introduced to describe this way of starting validation.) 2) An element with no governing element declaration, being validated in lax validation mode, has an xsi:type attribute which identifies a type present in the schema. According to section 3.3.5 of XML Schema 1.0, the properties [validity] and [validation attempted] are present if "the schema-validity of an element information item has been assessed as per Schema-Validity Assessment (Element) (sec. 3.3.4)". In the absence of an element declaration and the presence of the type definition, clause 1.1 of Validation Rule: Schema-Validity Assessment (Element) does not apply, and clause 1.2 does. So it's possible to have [validity] = valid and [validation attempted] = full even when there is no governing element declaration and thus no declared type. I hope this helps. If you have further questions, please ask. If this answer doesn't seem satisfactory, please let us know; in that case, you might wish to open a bug report against the spec in the public instance of Bugzilla on the W3C site, at http://www.w3.org/Bugs/Public --C. M. Sperberg-McQueen on behalf of the XML Query and XSL Working Groups
Received on Monday, 29 January 2007 20:20:41 UTC