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


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: XML Schemas and extension

[ Lists Home | Date Index | Thread Index ]
  • From: ht@cogsci.ed.ac.uk (Henry S. Thompson)
  • To: Jeff Rafter <jeffrafter@earthlink.net>
  • Date: Thu, 21 Sep 2000 16:17:21 +0100

Jeff Rafter <jeffrafter@earthlink.net> writes:

> I know that we seemed to finish the "ref'ing vs. inlining" discussion and
> all seemed pretty satisfied, but I was wondering how all of this fits into
> type derivation when using extension.
> I know that,
>  "A complex type which extends another does so by having additional content
> model particles at the end of the other definition's content model, or by
> having additional attribute declarations, or both.
> NOTE: This specification allows only appending, and not other kinds of
> extensions. This decision simplifies application processing required to cast
> instances from derived to base type. Future versions may allow more kinds of
> extension, requiring more complex transformations to effect casting. "
> I have read through the spec. and can't seem to come up with an answer to
> the following, unless it fits into the above cited "future revision" caveat
> : Can an element in be redeclared in a derived (by extension) complexType?
> <complexType name="Foo">
>   <element name="bar" type="int">
> </complexType>
> <complexType name="Foo2" base="Foo" derivedBy="extension">
>   <element name="bar" type="int">
>   <element name="bar2" type="int">
> </complexType>
> I apologize if there is an obvious answer in the specification that I am
> missing or not comprehending.

Derivation by extension can be understood as syntactic sugar.  It's
the effective type definition that has to satisfy the constraints on
types such as no-duplicate-elt-name-with-different-types.  So consider 
the effective type definition:

<complexType name="Foo2">
   <element name="bar" type="int">
   <element name="bar" type="int">
   <element name="bar2" type="int">

Nothing wrong with that, so the derivation is OK.

  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/


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

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