タイプが複合タイプの XML ファイルに要素が存在する場合は、XML エディターの xsi:type サポートにより、 複合タイプとそれから派生された他の任意の複合タイプの間で選択できます。
XML スキーマ仕様では、拡張によりタイプを派生できます。たとえば、XML スキーマを使用していて、Address と呼ばれる 複合タイプを作成します。 次に、streetName や city などのなんらかの基本的 な要素を Address に追加します。
この後、2 つの新しい複 合タイプを Address から (拡張によって) 派生させます 。これらは、USAddress と UKAddress です。新しい要素 state を USAddress に追加し、新しい要素 postcode を UKAddress に追加します。
この処理が完了したら、さらに 2 つの要素 (billTo と shipTo) を Address タイプとして作成します。
billTo や Address などの要素の XML インスタンス文書を作成すると、 xsi:type 属性がそれに自動的に追加されます。例:
<billTo xsi:type="ipo:Address">
xsi:type 属性は、派生された複合タイプ (と、派生元の複合タイプ) を特定するのに使用されます。
XML エディターの設計ビューでは、リストが使用可能であり、適切なタイプ定義 (Address、USAddress、または UKAddress) を選択できます。 コンテンツ・モデルのガイド付き編集に、選択したタイプ定義が反映されます。たとえば、USAddress を選択すると、billTo 要素に state 要素を含めることができますが、postcode 要素は含めることができません。
XML サンプル「XML ファイルの編集と検証」は、xsi:type サポートを示しています。
xsi:type の詳細については、「XML Schema Part 0: Primer」の『Using Derived Types in Instance Documents』のセクションを参照してください。
xsi:type を使用する際の検証セマンティクスの詳細については、「XML Schema Part 1: Structures」の『Schema-Related Markup in Documents Being Validated』のセクションを参照してください。