Проблема XSD: Как ограничить использование элемента / атрибута только в другой схеме - PullRequest
2 голосов
/ 03 августа 2010

Мне нужно решить эту проблему и похоже, что мне нужна помощь.

Вот определение проблемы

У нас есть существующая схема X [X является схемой промышленного стандарта], для которой мы строим некоторые расширения в новой схеме Y (с другим целевым пространством имен].

Теперь проблема в том, что мы хотим ограничить использование элементов / атрибутов схемы Y только в качестве элементов определенных элементов / типов X. [ проверка схемы должна завершиться неудачно в случае недопустимого использования ] .

Как нам этого добиться? Каков наилучший способ сделать это?

RM

1 Ответ

0 голосов
/ 03 февраля 2011

Я бы сказал, что это зависит от того, насколько вы модифицируете и как выглядят схемы.Один из аспектов будет, если ваши расширения находятся рядом с корнем или рядом с листьями.

Вот общий подход для около корня.

X.xsd
element name=foo type=fooType

complexType fooType
  sequence
     element name=bar type=BarType

Y.xsd
import X.xsd namespace=xns

element name=foo type=foo2Type

complexType foo2Type
  sequence
     element name=bar type=xns:BarType
     element name=baz type=BazType

здесь вы добавили новый элемент baz вашего собственного определения, но bar будет содержать все дочерние элементы, требуемые отраслевым стандартом.

Импорт X в Y (с элементом import),

...