Re: Constraints in XML Schema

Hi Noah,

you are right that validation must be performant. Maybe I stated my view on
XPath constraints not clearly enough because it invoked your strong
disagreement.

First: I never said that validation should be processor dependent. Any
conformant processor must check all constraints contained in a schema with the
same result. I suggested that if performance is a matter then people must
carefully decide for example if they really need idendity constraints causing the
evaluation of XPaths during validation.

Second: I proposed that the XPaths used in XPath constraints might be of a
restricted form. Therefore (also in order to ease the implementation of
streaming processors) the ancestor, preceding, or following axes might not be
allowed.

I think that special co-occurence constraints should not be introduced into
XML schema because it would either catch only very simple cases or be rather
complex. Complexity is already a strong argument that many people raise
against XML schema. In contrast, XPath is already widely accepted and would not
introduce much additional complexity for schema authors.

I could imagine that XPath in the context of validation is augmented with
extension functions that are taylored for common situations of schema
constraints. For example to check that exactly one of two attributes is present the
following general XPath has to be evaluated:

test="@at1 and not(@at2) or not (@at1) and @at2"

This might be checked with an xor extension function:

test="xs:xor(@at1, @at2)"

Such extension functions might improve performance.


--Stefan

> > About performance: I think performance matters should
> > not guide the decision about wheter XPath-Constraints
> > should be added to the schema specification or not. If
> > performance is a matter then people can switch of
> > validation (or use only simple constraints).
> 
> Here I respectfully but strongly disagree.  It's
> essentially that my customers and those with whom they
> do business get consistent results when they validate a
> given document with a given schema.  If they say "Well,
> it was valid with XYZ-Corp.'s high performanc processor
> but not ABC's" we've got a mess.  The main reason to
> use XML is universal consistency and interop.  High
> performance schema processing is very, very important
> to IBM's customers, as is consistency of semantics.  I
> think we can get better co-occurrence constraints
> without sacrificing performance.
> 
> ------------------------------------------------------------------
> Noah Mendelsohn                              Voice: 1-617-693-4036
> IBM Corporation                                Fax: 1-617-693-8676
> One Rogers Street
> Cambridge, MA 02142
> ------------------------------------------------------------------
> 
> 

Received on Tuesday, 7 January 2003 04:53:39 UTC