[
Lists Home |
Date Index |
Thread Index
]
John,
In my view, the key point of having inheritance mechanisms built into the
schema language is that a processing application is only fed events that it
can understand. This means that I can create a document using elements based
on a bunch of derived types (or derived elements, I guess), and a processor
that was designed to work with only the base types and base elements won't
choke on it. If I understand correctly, your approach lets people achieve
re-use through inheritance, but not polymorphism.
I'm not sure about your assertion that Unix did not have a killer app. I'm
hardly an expert on Unix, but I think that RDBMS were the killer app.
Regarding your offer to look at some of the type derivation issues with XSD
that we have unearthed, I'm going to take you up on that. It's too
complicated to get into here; I'll write a fully fledged position paper (or
maybe another rant would be more appropriate...) about this.
Cheers,
Matt
> -----Original Message-----
> From: John Cowan [mailto:jcowan@reutershealth.com]
> Sent: Tuesday, March 26, 2002 5:18 PM
> To: matthew.gertner@schemantix.com
> Cc: jcowan@reutershealth.com; xml-dev@lists.xml.org
> Subject: Re: [xml-dev] RELAX NG Marketing (was RE: [xml-dev]
> Do Names Matt
>
>
> Matthew Gertner scripsit:
>
> > No, I meant type derivation. Sorry, should have been more
> explicit about
> > this. I'd be very interested in your view.
>
> Well, I think XSD-style type derivation is just a fairly trivial usage
> pattern, with the exception of deriving complex types by restriction,
> which is not straightforward in RNG.
>
> Extending complex types is just grouping. If we have a rule
>
> foo = bar, baz, zam
> bar = element bar {...}
> baz = element baz {...}
> zam = element zam {...}
>
> then we can create foo1 thus:
>
> foo1 = foo, quux
> quux = element quux {...}
>
> Similarly, you can extend simple types like this:
>
> optint = xsd:int | "N/A"
>
> and restrict them so:
>
> bignum = xsd:long - xsd:int
>
> and of course lists are built in:
>
> tokens = list {token}
>
> If you exercise some care, you can create easy-to-redefine content
> models:
>
> foo = element foo {this, that, gap}
> this = element this {...}
> that = element that {...}
> gap = empty
>
> and then include them thus:
>
> include "foo.rng" {gap = tother}
> tother = element tother {...}
>
> > RNG (John, you're strengthening my case by abbreviating the
> > name!)
>
> Well, it saves typing. "XSD" isn't an official name either.
>
>
> The *ix family of operating systems have done fairly well for
> themselves,
> at least in the server space, on technical merit, without killer apps.
> When there are multiple competing platforms, it's almost
> always possible
> to do what you want on any of them *somehow*, if you are
> willing to kludge
> heavily enough, and of course people do.
>
> > I think this killer app might be related to type
> derivation. There are a lot
> > of problems with XSD derivation that are coming to light as
> real-world cases
> > like UBL are addressed.
>
> Give me a problem and I'll worry it a bit.
>
> --
> John Cowan <jcowan@reutershealth.com> http://www.reutershealth.com
> I amar prestar aen, han mathon ne nen, http://www.ccil.org/~cowan
> han mathon ne chae, a han noston ne 'wilith. --Galadriel, _LOTR:FOTR_
>
|