OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: Schema concepts

[ Lists Home | Date Index | Thread Index ]
  • From: ht@cogsci.ed.ac.uk (Henry S. Thompson)
  • To: haustein@kimo.cs.uni-dortmund.de
  • Date: 16 Feb 2000 18:13:54 +0000

[sorry for empty reply a moment ago ;-[

Stefan Haustein <haustein@kimo.cs.uni-dortmund.de> writes:

> "Henry S. Thompson" wrote:
> > 
> > You can get very close to this now.  I don't consider the difference
> > between the above and what follows substantive:  it's a matter of
> > making explicit some things which are implicit in the above:
> > (...)
> Is your example really valid? The specs say "The type 
> of every member of an equivalence class must be the 
> same as or derived from the type of the exemplar". 
> That does not hold for your example. BTW: I should
> have added color as attribute of pictureElement in
> my example.

Sorry, I was moving too fast this morning, you're right.
Here's a corrected fragment

<type name="pictureType">
 <element minOccurs="0" maxOccurs="*" ref="pictureElement"/>

<element name="picture" type="pictureType"/>

<element name="circle" equivClass="pictureElement"/>
 <type source="pictureType" derivedBy="extension">
  <attribute name="color" type="..."/>

> Furthermore, your example ignores the following 
> requirement:
> > > The circle and line elements cannot just have
> > > annonymous types since I may want to reuse
> > > their structure.

I addressed that in the second version, further down.

> > By separating the 'Address' type definition from the <shipTo> element
> > declaration, it becomes possible to add a <billTo> element to my
> > PurchaseOrderType definition:
> > 
> >   <element name="shipTo" type="po:Address"/>
> >   <element name="billTo" type="po:Address"/>
> That would also be possible with (abstract) elements instead
> of types, e.g.: 
>    <element name="shipTo" source="po:Address"/>
>    <element name="billTo" source="po:Address"/>

Assuming you meant

     <element name="shipTo" equivClass="po:Address"/>
     <element name="billTo" equivClass="po:Address"/>

where po:Address is now an abstract element, no, that's asserts they
are indifferently substitutable for 'Address' wherever it is allowed
in a content model, which is _not_ what you mean.

> > without pretending that they are in some way the same element: they're
> > not, they just share a content model and attribute set.  
> In OOP the derived class normally is a specialization, 
> thus not the same, so where is the problem? 

This is not OOP.  <shipTo> and <billTo> are not subclasses of an
<Address> element, they are elements which have necessarily identical
content and attributes but are _not_ allowed wherever their parent
would be.

> > Similar to the difference between structure definitions 
> > and variable type declarations in a programming language.  
> Hm. Are you talking about struct vs. class? 
> In modern programming languages you do not neccessarily 
> have a difference between classes and structs. I think 
> it's more a compatibility thing in C++. 

No, exactly what I said.  When I define a struct or a class in C++
no-one confuses that with declaring a variable to contain _instances_
of that struct or class.  The parallel isn't exact, but complex types
are similar to structs or classes, and content model particles/local
element declarations are similar to variable declarations in so far as 
the parallel goes through.

> I claim that the artificial type/element distinction makes xml
> schema more complicated than needed.

I'm sorry I haven't explained clearly enough why we think it's not an
articial distinction.

  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
          W3C Fellow 1999--2001, part-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/

This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/threads.html


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS