Se nel file XML si dispone di elementi il cui tipo è un tipo complesso, il supporto xsi:type nell'editor XML consente di scegliere tra il tipo complesso e qualsiasi altro tipo complesso da esso derivato.
La specifica dello schema XML consente di derivare i tipi mediante estensione. Ad esempio, si dispone di uno schema XML e si crea un tipo complesso denominato Address. Alcuni elementi di base vengono aggiunti a Address, ad esempio, streetName e city.
Quindi, due nuovi tipi complessi vengono derivati (mediante estensione) da Address, - USAddress e UKAddress. Un nuovo elemento viene aggiunto a USAddress, denominato state e un nuovo elemento viene aggiunto anche a UKAddress, denominato postcode.
Quindi, vengono creati altri due elementi, billTo e shipTo, come tipi Address.
Quando si crea un documento di istanza XML per un elemento quale billTo o Address, un attributo xsi:type viene aggiunto automaticamente. Ad esempio:
<billTo xsi:type="ipo:Address">
L'attributo xsi:type viene utilizzato per identificare i tipi complessi derivati (nonché i tipi complessi da cui sono derivati).
Nella vista Progettazione dell'editor XML, sarà disponibile un elenco, che consente di selezionare la definizione di tipo appropriata (Address, USAddress o UKAddress). La modifica guidata per il modello di contenuto riflette la definizione di tipo selezionata. Ad esempio, se si seleziona USAddress, l'elemento billTo può contenere un elemento state, ma non può contenere un elemento postcode.
L'esempio XML "Modifica e convalida di file XML" illustra il supporto xsi:type.
Per ulteriori informazioni su xsi:type, fare riferimento alla sezione Using Derived Types in Instance Documents in XML Schema Part 0: Primer.
Per ulteriori informazioni sulla convalida della semantica quando viene utilizzato xsi:type, fare riferimento alla sezione Schema-Related Markup in Documents Being Validated in XML Schema Part 1: Structures