Lists Home |
Date Index |
Robin Berjon wrote,
> Miles Sabin wrote:
> > I simply can't make sense of the idea of typing without
> > enforcement. Types are constraints ... and an unenforced constraint
> > is no constraint at all. At best it's documentation.
> I think this is where we differ. To me a type is just an assertion
> about data. That it properly constrains/validates the data it is
> almost orthogonal.
> You may wish to call it documentation. Documentation can be very
> useful, notably when it's machine-readable.
So long as we're talking about programming languages we can differ
peaceably (on this list, at least).
> In another post you state:
> > Well, no. The basic lexical structure of an XML document instance
> > isn't a type _in_ XML ... in a sense it's the type _of_ XML. I
> > don't think that anyone's complaining that not all character
> > sequences count as well-formed XML.
> I think this is another point where understandings differ. Within the
> context of XML, I would consider what you call "the type _of_ XML"
> degree zero of typedness equivalent to the statement that "something
> is of type Thing", ie truistic metadata, pretty much useless as such
> and that can be considered as untyped.
I think you're just mistaken here. This is pretty much an object/meta-
language confusion. What I called "the type _of_ XML" is completely
specified by the XML 1.0 REC and serves to distinguish arbitrary
character sequences from well-formed XML document instances ... IOW, it
imposes constraints on _strings_, and that's the sine qua non of doing
XML at all. WXS, OTOH, operates at a different level: it imposes
constraints on XML document instances.
This isn't in and of itself a bad thing. Problems only arise when those
constraints are encoded _in_the_document_itself_ ... because encoding
one kind of type information in the instance almost inevitably excludes
alternative (or absent) type information ... in WXS, using standard
tools, you can't in general validate against an alternative schema
without editing the instance. That's WXS's sin.
That said, the original sin was committed by the XML REC (or, rather, by
SGML before it): embedded DTD public and system ids and internal
subsets are just as guilty. We can't wind back the clock and opt for
extrinsic typing across the board, but we don't have to make things any