- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 11 Feb 2008 11:32:47 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5472
Summary: [XQuery 1.1] Requirement: validation by type
Product: XPath / XQuery / XSLT
Version: Working drafts
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: XQuery 1.1
AssignedTo: jonathan.robie@redhat.com
ReportedBy: mike@saxonica.com
QAContact: public-qt-comments@w3.org
I am raising this requirement on behalf of a Saxonica customer. Saxon
implements a pragma that allows type-based validation. This user is making
extensive use of the facility, which they find invaluable for processing FpML
documents in particular, and they have asked me to propose adding it to the
language.
Syntax for the facility might be something like
"validate" "as" type-name { Expr }
The effect is to validate Expr as an instance of the specified simple or
complex type (which must be a type defined in the static context). Detailed
semantics should be the same as validation-by-type in XSLT 2.0, see
http://www.w3.org/TR/xslt20/#validation-xsl-type
(The XSLT 2.0 capability allows validation of attributes, as well as elements.
This is useful, but not essential).
There are two main use-cases for this facility:
(a) where the vocabulary design places heavy reliance on xsi:type to
distinguish different document types using the same element names (as is the
case with FpML)
(b) where the schema makes extensive use of local element declarations with
global types: in this situation validation based on the element name alone is
not possible.
Note that as far as XML Schema is concerned, specifying a type name rather than
an element name as the parameter driving validation is very much a recognized
part of the specification.
Some use cases can be achieved by specifying "validate lax" and putting an
xsi:type attribute on the element to be validated. However, this doesn't have
equivalent semantics in all cases; in some cases the xsi:type attribute might
be unwanted or disallowed by a DTD; and it doesn't lend itself readily to
static type-checking.
Received on Monday, 11 February 2008 11:33:01 UTC