[Home] [By Thread] [By Date] [Recent Entries]

  • From: Boris Kolpackov <boris@c...>
  • To: Farrukh Najmi <farrukh@w...>
  • Date: Mon, 24 Nov 2008 16:42:16 +0200

Hi Farrukh,

Farrukh Najmi <farrukh@w...> 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


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member