- From: Philip Wadler <wadler@research.bell-labs.com>
- Date: Fri, 18 Feb 2000 12:59:16 -0500
- To: www-xml-schema-comments@w3.org, ht@cogsci.ed.ac.uk (Henry S. Thompson)
Henry S. Thompson (ht@cogsci.ed.ac.uk) writes:
> Philip Wadler <wadler@research.bell-labs.com> writes:
>
> > If all elements are declared via top-level `element' declarations,
> > then I think that I understand how equivalence classes work. Can
> > someone please explain how equivalence classes work in the presence
> > of element declarations nested within type declarations?
>
> 'equivClass' is incoherent on a nested (or 'local') element
> declaration, because of the asymmetry pointed out below. This should
> be made clear in the spec. -- I agree it is not clear now.
I don't see what this has to do with assymetry.
Let me try my question again.
First, let's review ordinary equivalence classes with top-level elements.
<element name="b">
<type>
<element name="a-in-b" type="a-in-b-type"/>
</type>
</element>
<element name="c">
<type>
<element name="a-in-c" type="a-in-c-type"/>
</type>
</element>
<element name="a-in-b-prime" type="a-in-b-prime-type" equivClass="a-in-b"/>
<element name="a-in-c-prime" type="a-in-c-prime-type" equivClass="a-in-c"/>
This says that we can use an "a-in-b-prime" element anywhere an
"a-in-b" element may appear, and an "a-in-c-prime" element anywhere an
"a-in-c" element may appear. (It assumes "a-in-b-prime-type" is
derived from "a-in-b-type", and "a-in-c-prime" type is derived from
"a-in-c-type".)
Now, let's say we modify the first part of the above to use the
element name "a" in place of both "a-in-b" and "a-in-c".
<element name="b">
<type>
<element name="a" type="a-in-b-type"/>
</type>
</element>
<element name="c">
<type>
<element name="a" type="a-in-c-type"/>
</type>
</element>
What is the corresponding modification for the remainder? That is,
how can I specify that "a-in-b-prime" can replace the occurrences of
"a" within "b", and that "a-in-c-prime" can replace the occurrence of
"a" within "c"? Or is this not possible? If it's not possible, what
was the rationale for omitting it? -- P
Received on Friday, 18 February 2000 13:00:05 UTC