W3C home > Mailing lists > Public > xmlschema-dev@w3.org > March 2002

RE: Alternative versions of an element within one schema

From: Lehmann, Steen <slehmann@silverstream.com>
Date: Thu, 7 Mar 2002 10:18:55 +0100
Message-ID: <FD8A740186525243807FBCDB7E739D0585F2FF@EXBE1.silverstream.be>
To: "'paul@pnlassociates.com'" <paul@pnlassociates.com>
Cc: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>

Unfortunately there seems to be no way to do exactly what you want within
W3C XML Schemas as such - it is not a problem to allow <a> to hold different
kinds of content, but you can't make it depend on the attribute value.

A few workarounds were suggested on the list a short while ago, I believe
one of them involved using the xsi:type attribute on the <a> element to
specify what type you wanted, e.g.

<root xmlns:xsi=(schema instance namespace)>
	<a version="1.0" xsi:type="a_v1">
		...
	</a>
</root>

and

<root xmlns:xsi=(schema instance namespace)>
	<a version="2.0" xsi:type="a_v2">
		...
	</a>
</root>

and declaring the a_v1 and a_v2 complex types as appropriate, but of course
this does not make the instance document any prettier. All the other
workarounds require you to change the name of the element or use another
schema language.

Regards,

Steen

/**
 * Steen Lehmann - <mailto:slehmann@silverstream.com>
 * Senior Software Engineer (R&D), SilverStream Software 
 * <http://www.silverstream.com>
 */ 

> -----Original Message-----
> From: Paul B. Anderson [mailto:paul@pnlassociates.com]
> Sent: Thursday, March 07, 2002 12:08 AM
> To: xmlschema-dev@w3.org
> Subject: Alternative versions of an element within one schema
> 
> 
> Hi:
> 
> I'm trying to find a way to handle multiple versions of an element
> definition within a single schema.  I keep running into UPA problems
> (among others) so I was wondering if anyone has solved this problem.
> 
> I want to allow a single schema to validate instance documents like
> 
> <root>
>   <a version="1.0">
>     ... some complex content
>   </a>
> </root>
> 
> or
> 
> <root>
>   <a version="2.0">
>     ... complex content but different from version 1.0 in some way
>   </a>
> </root>
> 
> I have tried defining two groups, a10 and a20, that each have a fixed
> value of attribute version.  These are then listed in the schema under
> <root> within a choice element.
> 
> How can I make this work?  It seems as if it is an important 
> situation.
> 
> Thanks,
> 
> Paul
> 
> 
Received on Thursday, 7 March 2002 04:24:42 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:29 GMT