XSD: атрибуты с одинаковыми именами из разных схем - PullRequest
1 голос
/ 17 августа 2011

Можно ли написать xsds для следующего xml:

<list add:type="single" view:type="multi"/>

, где можно добавить и просмотреть различные схемы?Затем я буду использовать имя схемы для фильтрации требуемого значения атрибута.

1 Ответ

1 голос
/ 24 августа 2011

Для этого вы будете использовать три документа схемы.

  • Документ схемы 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" для ссылки на атрибут или элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...