OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

emergency message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [emergency] Namespace


Rex Brooks wrote:
> A standard XML Schema Validation Service would be a fine
> help to start, but it would have to be verified as validating
> standards that demonstrably work successfully with the major
> web stacks, but most especially with the stacks that represent
> the vast majority of market share on the web, Apache with 
> ~62-67% and Microsoft ~22-27%:
	No, No, No!
	This would be good thinking if you were writing a product, but
this isn't a product. CAP is a *Standard*! It requires a different
kind of thinking.
	When writing a standard you must, as Len Bullard said, be
"tediously correct." This means that your normative clauses *must*
conform to the normative clauses of the standards that you reference.
Thus, if XML Schema says that local simpleTypes MUST NOT have "name"
attributes, then CAP MUST NOT be defined to use them even if *no*
software exists that can handle local simpleTypes without name
attributes.
	The reason for this is that standards "live forever" while
products are ephemeral. Standards define laws. Products do not.
Products come and go and change their capabilities from release to
release. There is always a tension between products and standards.
However, those who write standards best serve their constituencies by
writing their standards in the most unambiguous form possible. This
means that you must write every sentence with the precision that a
lawyer would and you must read every clause of your referenced
standards as though they were law. Only by following this method can
you hope to have consistent interpretations of standards.
	In the rare case that it is necessary to depart from an
existing standard, the correct way to do this is to either produce a
"profile" of the inadequate standard or, if the issue is product
specific, produce a non-normative implementation guide that
unambiguously explains how the standard is to be interpreted by users
of the product.
	You could, for instance, produce a profile that defined a
"CAP/XML Schema Language" which extended the XML Schema syntax to
include "name" attributes on local simpleTypes. However, doing this
would mean that standard XML Schema processors would not be able to
work with the CAP/XML Schema. This would also mean, of course, that
the Emergency TC would now "own" a standard with all the complexity of
XML Schema... Not a good thing. Doing something like this is rarely
the right thing to do.
	The more reasonable approach is to recognize that some set of
processors that have *bugs* that prevent them from processing Schemas
that conform to the XML Schema of Schemas. In this case, if Axis is
the offending processor, one could write a non-normative
implementation guide that defined exactly how the properly defined
normative XML Schema should be modified to address the bugs and
limitations of the offending processor. This might be done by
providing a non-normative restatement of the CAP Schema or by
producing something like an XSL template that deterministically
transforms the normative schema to one that the offending processor
can process. However, the XML Schema conformant version of the CAP
schema must always be the single normative expression of CAP.
	Sometimes, if you're lucky, you'll discover that a standard on
which you are dependent offers more than one way to accomplish some
purpose. And, you'll discover that popular or important processors of
the format are capable of handling one method but not the other. In
this case, it is sometimes appropriate to allow this knowledge of the
limitations of existing processors to push you to prefer one method
over the other. As long as there is an alternative that doesn't
compromise your ability to express your standard clearly and
unambiguously, it is ok to choose the alternative that is more
supported. However, this is *not* a slippery slope that leads to
adopting non-conforming syntax. You MUST stop this accommodation of
broken processors at the moment that such accommodation either
compromises the clarity of expression in your standard or at the point
where further accommodation requires violation of the referenced
standard.
	Naturally, in the context of product building, not standards
defining, these rules are completely different. When building a
product, one typically tries to be as accommodating as possible. But,
we're not building a product here...

		bob wyman



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]