[xmlschemata] Re: Headaches w/ XDOTs

From: Cyril Jandia <cjandia@logfi.fr>
Date: Fri Jul 05 2002 - 13:47:38 UTC

> From : Rick Jelliffe
> To : xmlschemata@xmlschemata.org
> Subject : [xmlschemata] Re: Headaches w/ XDOTs
>
> From: "Cyril Jandia" <cjandia@logfi.fr>
>
> > I guess (hope) this is now a little clearer :
> > http://xml-dot.org/#xdot-type-assignment-definition
>
> Yes, but it is still fuzzy :-)

> Would it be fair to say that you think that WXS does not go far
> enough in adopting OO techniques,

Yes... and nope, Rick:

Yes: WXS, IMHO, in some sense, went effectively (and I was pleased to hear
similar remarks from Eric on this, BTW) much too far in trying to
"object-orient" XML documents/data streams;
I mean, it made too much assumptions to build its meta-model nearly *from
scratch* -a martian would say- (is Meyer read, at W3C?), and I think it has
introduced *too many*, *non-orthogonal notions* - what is more, it *did* impose
a rather ad hoc way to implement all of them (arrghh... ;=)

More precisely:

(what struck me most) :

* Simple / complex data types

* Primitive types
* Derived data types

* Atomic types
* List types
* Union types

... and all the various cases where "you can do that, except but for..." (you
see ;=)

(I only find the datatypes' facets notions related to the lexical/value space
interesting, mainly)

So I could maybe put it like this :
for instance, why on earth limit us to lists/unions ?
Concretely, taking the risk to shock you, I'm pretty sure they are useful cases
where all of the following nodes (marked with "(*)") could be considered as
being *mere representation particles* of the very same, single, data type
instance :

...
<foobar foobar-att(*)="..."
  <gee(*)>...</gee>
  <gizmo
    <acme acme-att(*)="..." >...</acme>
    (*)....
  </gizmo>
</foobar>
...

Can we expect WXS to handle this ? Or even RNG w/ its datatype library-plug-in
capabilities?...

But also, nope: Meyer's object-orientation is *far* much simpler as well as more
*complete* and *consistent* :

1) client relation - direct and indirect (the latter, for closure of
dependencies between types and their usage of features);

2) inheritance relation - direct and indirect again; w/ support for multiple
inheritance (disciplined to avoid feature names' clashes)

3) then, he defined conformance between types : either class types or generic
class types - the latters being eventually, always instantiated (in the type
space) as "normal" class types (with actual generics mapped to formal
generics) - and it is now relatively well-known that Eiffel is much less tricky
than those C++'s template types, BTW;

Then, Eiffel's way of handling genericity w/ compound types is not limited to
those "list/union" ad hoc WXS's restrictions/extensions...

E.g, Eiffel's OO model allows to have the class type STRING to inherit from
ARRAY[CHARACTER].

4) finally, he defined clearly what polymorphism's supposed to be, as well as
feature redefinition (always explicit- see disciplined inheritance, in pt 3
above) with relating both to (2) and (3) *very* consistently;

5) IMO, remaining characteristics such as Eiffel's feature export policies
(equiv. to private/protected/public in other OOLs) are irrelevant, for now, for
XDOTs

> and with XDOT you want to explore a more pure approach? =20

Yep: that's exactly the point:
to be (as "pure" as possible) type-centric - well, I admit, from a particular,
arbitrarily chosen PoV: i.e, object-orientation.

> Which of Bertrand Meyer's ideas in particular do you think are
> promising here, if Eiffel is you inspiration?

(See above)

> Programming by contract in general?

Yes... and nope, Rick (bis ;=)

Yes : matter of fact, I think that equivalents to Meyer's assertions (pre-,
post-conditions, invariants - you know: all that DBC -Design By Contract-
stuff - by the way, a registered TM ;=)- *actually* are interesting to map to
local and/or global reference integrity, and co-occurrence issues we happen to
find w.r.t XML schema/typing languages;

But also, nope: these are *not* amongst the very first XML-DOT's priorities I'm
contemplating; neither is value defaulting (so I stay into your layered model,
you see, of "the State of the Art of Schema languages" ;=)

For me, the very first "new" issue to explore (i.e, my interest ;=) is this one:
OK : we now have an elegant way (conservative towards XML 1.0 DTD, but also,
evolutionary) to define content-models w/ namespace awareness - namely: RELAX
NG, at least - but...

... What on earth do we use content models, for? Does the way we use them to
depict structured data types instances w/in XML documents is actually adapted to
the various ways in which we can model our system at higher levels (e.g, UML) ?
I think that this question still is not clearly answered to, as of today, 2002 :
and I expect we could discover interesting things/properties in a near future to
automate this - safely, consistently, efficiently -provided we have a
well-designed tool (XML-DOT, why not? ;=)- for it...

> Cheers
> Rick Jelliffe

Best,
--CJ
Received on Fri Jul 5 15:47:39 2002

This archive was generated by hypermail 2.1.8 : Fri Dec 03 2004 - 14:29:47 UTC