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

Re: Schema Question


Re:  Schema Question

Dan White writes:
> I have a situation where the incoming XML will have an element/attribute
> specifying one of four enumerated choices.  Depending on the value of that
> choice, the elements that follow will be different.
> 
> Like this:
> <foo>
>   <mode>one</mode>
>   <data1>aaa</data1>
>   <data2>bbb</data2>
> </foo
> 
> <foo>
>   <mode>two</mode>
>   <data3>ccc</data3>
>   <data4>ddd</data4>
> </foo>
> 
> or
> <foo mode="one">
>   <data1>aaa</data1>
>   <data2>bbb</data2>
> </foo
> 
> <foo mode="two">
>   <data3>ccc</data3>
>   <data4>ddd</data4>
> </foo>
> 
> How does one set up the schema to validate the appropriate sequence of
> elements based on the value of the "controlling" element/attribute ?

If you are committed to the particular attribute names or the use of elements,
then you cannot do this with XML Schema. You could layer Schematron or
something similar on top of it.

If you use xsi:type as your attribute, you can get the effect of this by
defining a type for each of the variants and using the name of that type as the
value of the xsi:type attribute. The types will all have to derive from a
common base, but that base can be nothing, and they can all extend from it.

Or, you can use different element names for the different variants, drop the
extra attribute and use substitution groups, e.g.

<one>
  <data1>aaa</data1>
  <data2>bbb</data2>
</one>
 
<two>
  <data3>ccc</data3>
  <data4>ddd</data4>
</two>

The deal with substitution groups is that you don't have to put a big explicit
choice into the element that uses these, but just ref the root of the
substitution group.

See http://www.mathling.com/xsd/ for gory details and extended examples.

	-- Mary
	   Holstege@m...



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.