Для этого вы будете использовать три документа схемы.
- Документ схемы 1 будет иметь targetNamespace для пространства имен add и объявит глобальный атрибут с именем "type".
- Документ схемы 2 будет иметь targetNamespace для пространства имен представления и объявит глобальный атрибут с именем "type".
- В схеме документа 3 будут импортированы два пространства имен. Он также объявляет complexType с двумя атрибутами, определенными с использованием ссылок на атрибуты «add: type» и «view: type». Элемент «список» будет такого типа. Вы обязательно включите объявления пространств имен xmlns: add = "..." и xmlns: view = "..." в область определения атрибутов.
По сути, всякий раз, когда вам нужны элементы или атрибуты из других пространств имен, у вас есть другой документ схемы с целевым пространством имен этого пространства имен. Там элементы или атрибуты для этого пространства имен объявляются глобально. Затем, когда вы хотите использовать эти атрибуты или элементы в каком-либо другом документе схемы, вы 1) импортируете пространство имен (xs: import) 2) объявляете префикс ns для пространства имен и 3) используете ref = "nsprefix: attr_or_elem_name" для ссылки на атрибут или элемент.