2009-11-16 2 views
5

Я изучаю группы подстановок в XML-схеме, и я не могу найти официальную спецификацию. может ли кто-нибудь указать мне на это?XML-схема: группы подстановки

Я интересно, если элемент с атрибутом подстановки группы может заменить элемент внутри комплекса или только глобальные элементы, как w3schools претензий:

«Обратите внимание, что все элементы в substitutionGroup (головной элемент и замещаемые элементы) должен быть объявлен как глобальный элемент , иначе он не будет работать! "

Вышеуказанное утверждение верно?

поскольку глобальные элементы могут быть корнем экземпляра XML - какова точка определения групп замещения на них?

ответ

6

Группы замещения - очень сложный зверь. По существу, то, что он дает, является альтернативным способом выражения структур <xs:choice>, без необходимости перечислять все возможные варианты. Это означает, что вы можете прийти позже и дополнительные варианты выбора, не изменяя исходную схему.

Варианты использования, где это действительно полезно, очень мало и далеко друг от друга, ограничиваясь схемами, которые предназначены для расширения третьими сторонами. На самом деле с ними очень сложно работать, и их очень трудно понять (см. here для получения дополнительных причин, чтобы избежать их).

+0

Это правда, но я пишу инструмент, который должен поддерживать группы замещения. можете ли вы указать мне спецификацию? – Gady

+0

Ну, спецификация находится в http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/#SubsGroups. Однако удача в том, что она имеет смысл. – skaffman

+0

Я думаю, это зависит. Использование подстановочных групп на абстрактном «родительском» элементе дает более приятные классы, созданные JAXB, чем использование выбора или последовательностей. – Marc

Смежные вопросы