Re: XML Schema working with DTDs?

"Henry S. Thompson" wrote:
> 
> "Joseph M. Reagle Jr." <reagle@w3.org> writes:
> 
> > I used to both schema and DTD validate, but I didn't realize these things
> > had moved. I'll try using these URLs and see if it still works. However,
> > this policy of locating the schema and DTD at the namespace is pretty
> > confusing. I appreciate you don't want to change the namespace every time
> > you issue a new draft and I hope you would try every time you made a
> > substantive change, because now the result is that even if I write my XML
> > instance that (today) validates under [1,2] next time you pout out a new
> > draft it won't! Before, not updating your namespace violated a philosphical
> > point (but the actual dtd and schema were in a more specific (month) date
> > space). Now you are violating a more practical point, if I have an example
> > that works now based on something in date space it won't in the future. (I
> > think, right?)
> >
> > [1] http://www.w3.org/1999/XMLSchema.dtd
> > [2] http://www.w3.org/1999/XMLSchema.xsd
> 
> Well, it's a difficult point.  I'd say we don't _have_ a namespace
> yet, we're just working towards having one, and using the same name so
> people will get used to it as the XML Schema namespace.

Really? That seems like an odd way of looking at things, to me.
It's quite clear to me that we have a namespace; the definition
is what you get back from http://www.w3.org/1999/XMLSchema.

And if we change the definition, it's sort of antisocial
to re-use the old address, as Joseph has observed. Though this
is work-in-progress stuff, and we don't really plan to support drafts
once they've been superceded, we might as well avoid
the sort of problems Reagle is having when it's easy
to do.

> I appreciate your point about things going stale -- if we ever make a
> backwards incompatible change, we'll put the old schema and dtd
> somewhere in date space and you can use them for your stale documents.

Again, that seems backwards; if we make backwards-incompatible
changes, the thing to do is to leave the old one alone
and use a new identifier for the new definition. It's not
really fair to expect folks to change pointers in old documents.

If we decide to break their old documents, i.e. to not
support them, that's one thing.
But the way to support them, if we're going to go to
any trouble at all, is to just leave the old
definition in place if we make a new, incompatible one.


> We're in new territory here (never before has there been a definitive
> and operational anything _at_ a namespace URI before),

I don't really see how this is all that novel... namespaces
are just like any other resource, and Joseph is just
reminding us that immutable resources solve a lot of
versioning problems. COM uses this idea:

"Interfaces are immutable contracts — you cannot
define a new version of an old interface and give it the
same identifier. Adding or removing methods of an
interface, or changing semantics creates a new
interface, not a new version of an old interface. Therefore
a new interface cannot conflict with an old interface."
	-- Interface Pointers and Interfaces
	January 05, 2000
	http://msdn.microsoft.com/library/psdk/com/com_37w3.htm


Ted Nelson calls it "stable publishing". 

The RDF spec uses this idiom too:

"Since changing the logical structure of
         a schema risks breaking other RDF models which depend on that
schema, this
         specification recommends that a new namespace URI should be
declared
         whenever an RDF schema is changed. "
http://www.w3.org/TR/2000/CR-rdf-schema-20000327/#s4.1.2

> Dan and I have
> been making policy by the seat of our pants, by all means lets keep
> discussing this, but move the archiving to the public comments list
> (see addresses above).

to the exclusion of xmlschema-dev? why pass up the opportunity for
mutual education?

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Friday, 28 April 2000 18:48:46 UTC