Se você tiver elementos em seu arquivo XML cujo tipo seja um tipo complexo, o suporte a xsi:type no editor XML permitirá escolher entre o tipo complexo e quaisquer outros tipos complexos derivados dele.
A especificação do Esquema XML permite derivar tipos por extensão. Por exemplo, você tem um esquema XML e cria um tipo complexo para ele chamado Address. É possível incluir então alguns elementos básicos em Address, como streetName e city.
Depois disso, você deriva (por extensão) dois novos tipos complexos de Address - USAddress e UKAddress. Você inclui um novo elemento em USAddress denominado state e também um novo elemento em UKAddress denominado postcode.
Depois disso, você cria mais dois elementos - billTo e shipTo - como os tipos Address.
Quando você criar um documento da instância XML para um elemento como billTo ou Address, um atributo xsi:type será automaticamente incluído nele. Por exemplo:
<billTo xsi:type="ipo:Address">
O atributo xsi:type é utilizado para identificar tipos complexos derivados (bem como tipos complexos que foram derivados de).
Na visualização Design do editor XML, estará disponível uma lista, permitindo selecionar a definição de tipo apropriada (Address, USAddress ou UKAddress). A edição orientada para o modelo de conteúdo refletirá a definição de tipo escolhida. Por exemplo, se você selecionar USAddress , seu elemento billTo poderá conter um elemento state, mas não poderá conter um elemento postcode.
O exemplo XML "Editando e Validando Arquivos XML" demonstra o suporte a xsi:type.
Para obter informações adicionais sobre xsi:type, consulte a seção Using Derived Types in Instance Documents em XML Schema Part 0: Primer.
Para obter informações adicionais sobre a validação de semântica quando xsi:type é utilizado, consulte a seção Schema-Related Markup in Documents Being Validated em XML Schema Part 1: Structures