Re: [xml-dev] Type substitution vs. element substitution (aka substitution groups)

From
Boris Kolpackov <>
To
Farrukh Najmi <>
Date
2008-11-24T14:42:16Z
ID
<20081124144216.GC12314@karelia>
Thread
Re: [xml-dev] Type substitution vs. element substitution (aka substitution groups)
Hi Farrukh,

Farrukh Najmi <> writes:

> Is there a suggested best practice to choose between type substitution 
> and element substitution for XML schemas that wish to support extension 
> via inheritance?

Conceptually, they are the same thing. With the type substitution
the element name stays the same and the type information is supplied
in the xsi:type attribute. With substitution groups, the type
information is embedded in the element name.

I personally think that the substitution groups approach results
in a cleaner vocabulary. Consider:

<person name="John Doe"/>
<person xsi:type="superman" name="James 007 Bond" can-fly="false"/>
<person xsi:type="batman" name="Bruce Wayne" can-fly="true" wing-span="10"/>

Vs:

<person name="John Doe"/>
<superman name="James 007 Bond" can-fly="false"/>
<batman name="Bruce Wayne" can-fly="true" wing-span="10"/>

Boris

-- 
Boris Kolpackov, Code Synthesis Tools   http://codesynthesis.com/~boris/blog
Open source XML data binding for C++:   http://codesynthesis.com/products/xsd
Mobile/embedded validating XML parsing: http://codesynthesis.com/products/xsde