[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

EquivClass & Derived Type

  • From: Michael Anderson <michael@r...>
  • To: xml <xml-dev@x...>
  • Date: Thu, 17 Feb 2000 14:32:01 +1100

equivclass
Hi,
Thanks for all the replies to my previous questions on equivClass.  I
now have a new problem based on my new understanding.  At the moment
there exists equivClass and derived type, but I do not see why both are
necessary as derived type could do the same job.

In a previous message (on this topic about 2 weeks ago), I used the
following example:

<element name="A" type="Atype"/>

<element name="B" type="Btype"/>
<type name="Btype" source="Atype" derivedBy="extension">
    <element name="notimportant"/>
</type>

<element name="C" >
   <type>
       <element ref="A"/>
   </type>
</element>

I expected that it was okay to declare in the document instance:
<C>
  <B> B stuff in here </B>
</C>
I will call this instance 1 thereafter.  I thought that this was what
most people would expect from other OO systems.  Also, if I remember
correctly, this was also supported by archetype in the previous XML
Schema WDs.

Subsequent responses to me pointed out that I should have written
<C>
  <A xsi:type="Btype"> B stuff in here </A>
</C>
I would call this instance instance 2.

I take that this means instance 1 is not valid.  It is not clear to me
why it is not supported.  There may be good reasons, but the reasons are
not apparent in the WD.  There is mention of ambiguity issues, but these
will not occur if instance 1 is allowed as the B stuff is tagged as B
and not as A (as in instance 2).

It does not seem to me that there is any difficulty in supporting
instance 1 technically.  Indeed, by simply changing the definition of
element B to:
        <element name="B" type="BType" equivClass="A" />
The instance becomes valid.

By separating equivalence from inheritance, are we saying that even
elements of the same type or subtypes of the same type are not
necessarily substitutable by one another in every context.  For
instance, even if elements "name" and "account number" are both of type
string, they could not be used in place of one another in most context.
Is this the main reason behind the separation of inheritance and
equivalence?

Michael.


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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.