XML Schema support for Interoperability?

Michael Anderson michael at research.canon.com.au
Fri Jan 28 00:47:12 GMT 2000


Hello all,
Roger was interested in discussing XML Schema support for
interoperability.  Unfortunately my discussion is only questions and no
answers, sorry.  In general my questions involve the hierarchical
relationship between elements declared with equivalent classes.


1. In an XML document instance we want to be able to use <guys> or
<boys> (using Roger's example) depending upon our preference.  So is
equivClass bi-directional when we declare it in our Schema?  To me, the
syntax appears more like a uni-directional relationship.
i.e.
> With XML Schemas we can create an element (called the exemplar) and
then
> create other elements which state that they are equivalent to the
> exemplar.  For example,
>
> <element name="boys" type="string"/>
> <element name="guys" equivClass="friends:boys" type="string"/>
>
> XML Schemas enables us to explicitly state that guys is equivalent to
> boys.
>
> If I write an application which expects a <boys> element, and I get an

> XML document which contains a <guys> element then I can go to the XML
> Schema document to see if <guys> is equivalent to the expected <boys>
> element.  Thus, the schema is acting as an "interoperability schema".

If however, I write an application which expects a <guys> element, and I

get an XML document which contains a <boys>, then when I go to the XML
Schema document I do not find that <boys> is equivalent to the expected
<guys>.  Should the application know that <guys> is equivalent or should

we just be careful to always use the exemplar class in the Schema?
Could we alternatively declare them equivalent to each other? i.e..

<element name="boys" equivClass="friends:guys" type="string"/>
<element name="guys" equivClass="friends:boys" type="string"/>



2. Is equivClass transitive?
i.e. If we declare the following:

<element name="group" type="string"/>
<element name="boys" equivClass="friends:group" type="string"/>
<element name="guys" equivClass="friends:boys" type="string"/>

If in the Schema we declare <group>, an XML document instance can
contain <boys>, but could it also contain <guys>?


3. Can an element be declared with more than one equivClass?
i.e.
<element name="group" type="string"/>
<element name="males" type="string"/>
<element name="boys" equivClass="group males"  type="string"/>

I assume not as 'equivClass' is just a single attribute of the "element"

type defined in the XML Schema Schema WD 17/12/99.  But is there some
way of implementing this concept anyway?


I hope these questions raise issues about the support for
interoperability.

Thanks for your time.
 Michael




Roger wrote:

Date: Thu, 20 Jan 2000 15:56:43 -0500
From: "Roger L. Costello" <costello at mitre.org>
Subject: XML Schema support for Interoperability?

Hi Folks,

I am interested in discussing what support XML Schemas provide for
enabling interoperability.  Below I present my understanding of the
support that XML Schemas provide.  If there are other ways that XML
Schemas enable interoperability I would be interested in hearing them.

...

Oftentimes in daily conversation there are several ways to express
something.
  - For example, "The boys went hiking." or "The guys went hiking".
     . Thus, "boys" and "guys" are equivalent.  Which word is used
       may depend upon what part of the country you live in, what
       mood you're in, or any number of factors.

We would like to be able to express this "equivalence" capability in XML

Schemas.
  - We would like to be able to declare in the schema an element
    called "boys", an element called "guys", and state that "guys"
    is equivalent to "boys".  Thus, instance documents can use
    either "boys" or "guys", depending on their preference.

With XML Schemas we can create an element (called the exemplar) and then

create other elements which state that they are equivalent to the
exemplar.  For example,

<element name="boys" type="string"/>
<element name="guys" equivClass="friends:boys" type="string"/>

XML Schemas enables us to explicitly state that guys is equivalent to
boys.

If I write an application which expects a <boys> element, and I get an
XML document which contains a <guys> element then I can go to the XML
Schema document to see if <guys> is equivalent to the expected <boys>
element.  Thus, the schema is acting as an "interoperability schema".

A nice feature of the equivClass capability is that over time new
elements can be added to the schema and declared to be equivalent to the

<boys> element.  For example,

<element name="fellas" equivClass="friends:boys" type="string"/>

Without any change, the application will continue to seemlessly work as
it consults the interoperability schema for equivalences.

Pretty cool, aye?  /Roger





xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ or CD-ROM/ISBN 981-02-3594-1
Unsubscribe by posting to majordom at ic.ac.uk the message
unsubscribe xml-dev  (or)
unsubscribe xml-dev your-subscribed-email at your-subscribed-address

Please note: New list subscriptions now closed in preparation for transfer to OASIS.





More information about the Xml-dev mailing list