[
Lists Home |
Date Index |
Thread Index
]
Eric,
Yes, the error messages in this case can be hard to understand. But this is merely an inconvenience - some users will have to figure out what's going on the first time they see this type of errors. If this is a concern to schema authors, they can annotate the schema to provide some help. I agree with Michael this doesn't seem to be a good argument for not using uniqueness constraints to solve the problem.
The second issues, as Robin pointed out, can be a problem when schemas need to be used with different processors. This is a much bigger issue and applies to Xml Schema spec in general, not just in this specific case. If there is a schema processor that doesn't support a certain part of the spec and is intended to be used with a given schema, then I agree - schema authors should avoid using that part of the spec.
Relax NG is not the best way to solve these kinds of problems. We know about the problems listed above because Xml Schema and various processors have been extensively tested and used in real world. A lot of corner cases were found and software was adjusted to handle them. The most popular schema processors are much closer to the spec today than they were a year or two ago. I don't know if various Relax NG engines have gone through similar real world usage and cleanup. How confident are you that if Howard starts using Relax NG, he wouldn't be in the same situation? Also, does RELAX NG have enough conformant implementations on different languages and platforms to make data defined with RELAX NG truly portable? XSD has a lot of problems, but it is fairly ubiquitous. JXML's main advantage over other data representation formats is the fact that it is supported by all vendors on all platforms, and that's XSD's practical advantage over RELAX NG, even if one acknowledges that it is better suited than XSD for this particular problem.
Stan Kitsis
Microsoft Corporation
-----Original Message-----
From: Eric van der Vlist [mailto:vdv@dyomedea.com]
Sent: Wednesday, June 28, 2006 2:52 AM
To: Michael Kay
Cc: xml-dev@lists.xml.org
Subject: RE: [xml-dev] Restrictions on existence of attributes?
Le mercredi 28 juin 2006 à 10:32 +0100, Michael Kay a écrit :
> > 1) the error messages that you get when there are several
> > attributes would be misleading for end users
>
> That doesn't seem a convincing argument. Saxon says:
>
> Validation error on line 1 column 20 of file:/c:/temp/test.xml:
> Identity constraint {uniqueAtt}: the field selects more than one node (See
> http://www.w3.org/TR/xmlschema-1/#cvc-identity-constraint clause 3)
>
> Not exactly ideal for "end users", but it's no more obscure than the error
> messages for many other validation errors.
No, I wish all schema processors could be so clear.
> > 2) W3C XML Schema processors differ in their interpretation
> > of the spec on this point and this leads to interoperability issues.
Xerces-J which is not perfect but usually decent used to raise an error
(with a more obscure message than the one you've copied) but recent
versions (for a year of two) do not consider that as an error any
longer.
> That's an even less convincing argument. If a schema processor doesn't
> conform to the spec, then don't use it.
I am not sure that this would leave any choice (except maybe Saxon) and
the best way to follow this recommendation would be to migrate to RELAX
NG!
More seriously, I have tried to fight so that my customers use only
conform implementations for years hoping that the situation would
improve but that's not the case. You can't deny that people have to live
with the choices they get whether these choices are conform to an
obscure recommendation or not.
Eric
--
GPG-PGP: 2A528005
Have you ever thought about unit testing XSLT templates?
http://xsltunit.org
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
|