Я создаю схему XML, в которой я хотел бы ограничить значения узлов типами или значениями их родительских узлов. Дело в том, что я не знаю ограничений во время создания схемы, потому что схема должна быть действительной для более чем одного такого приложения. Поэтому я хотел бы сохранить типы значений во внешнем документе (который, вероятно, будет создан автоматически до его редактирования).
Моя основная цель - упростить редактирование XML-файлов с помощью подкованных в XML инструментов (предпочтительно Eclipse) с автоматическим заполнением допустимых значений.
Вот вымышленный пример. Допустим, я хочу создать группу персонажей из одного комикса / мультфильма.
<team ref="marvel-heros">
<member ref="spiderman" />
<member ref="hulk" />
<member ref="batman" /><!-- illegal, not in marvel-heros -->
</team>
<team ref="pacman-ghosts">
<member ref="blinky" />
<member ref="inky" />
<member ref="pinky" />
<member ref="clyde" />
<member ref="qbert" /><!-- illegal, not in pacman-ghosts -->
</team>
Другие возможные наценки будут
<marvel-heroes>
<spiderman />
<hulk />
</marvel-heroes>
<pacman-ghosts>
<inky />
<pinky />
</pacman-ghosts>
Конечно, разметку можно изменить, а также использовать пространства имен (хотя я бы предпочел не использовать одно пространство имен на мультфильм / комикс, поскольку их много).
Обратите внимание, что команда marvel и призраки pacman могут появляться несколько раз в одном документе.
Есть ли разумный способ, которым я могу это сделать? Нужно ли создавать внешнюю схему для значений? Или есть способ решить эту проблему, используя сущности или xml включает?