Lists Home |
Date Index |
> > 5) RNG allows a (simple) datatype to be restricted not only by facet,
> > but by explicit extension and exception. One can write 'xsd:integer -
> > "0"' to mean a nonzero integer (although unfortunately "00" will still
> > validate), or 'xsd:integer | "Inf" | "+Inf" | "-Inf"' when a value may
> > be integral or infinite.
> Wow! I was knocked out by this one. What good are datatypes if one can
> [not] work in terms of the value space of the type rather than the lexical
In RNG, you can work in terms of the value space. If you want a non-zero
integer, you can say
xsd:integer - xsd:integer "0"
> As imperfect as XML Schemas may or may not be, I believe the distinction
> between lexical and value spaces is critically important, which is why
> the constraining facets defined in Part II work in terms of value space,
> not lexical space (with pattern being the unique hybrid).
RNG has the notion of a value space (though it doesn't use that term).
> I've found that the most important difference between RNG and XML
> Schemas is wrt the underlying type model.
> Specifically, XML Schema uses named types to implicitly convey intention
> as well as structure (a la Java, C++, C#). Anonymous types are 2nd class
> citizens in XML Schema (they're type-equivalent with nothing).
> Relax NG has a much looser model (a la Perl) in which two things are
> compatible if they share structure independent of a common, named type
> Each approach appeals to its own community of users in very deep ways.
I agree that the emphasis on named typing in W3C XML Schema is a profound
difference from RNG. One interesting question is whether it would be
possible to build a schema language that supports named typing yet still has
(at least most of) the simplicity and power of RNG. However, I still have
my doubts that named typing is appropriate for XML. I would speculate that
named typing is part of what makes use of DCOM and CORBA lead to the kind of
relatively tight coupling that is exactly what I thought we were all trying
to avoid by moving to XML.