Мы используем XML для определения схемы для управления содержимым, которое может отображаться в инструменте построения диаграмм. Файл схемы определяет, какие виды объектов могут быть размещены на диаграмме, как они могут быть связаны друг с другом и какие свойства имеют эти объекты (то есть какие настраиваемые свойства применяются в редакторе).
Когда требуется диаграмма нового типа, пишется новая схема и проверяется на соответствие .xsd. Чтобы сделать файл схемы более модульным и более простым в обслуживании, мы используем объявления для включения отдельных файлов. Списки свойств и т. Д., Которые принадлежат определенному элементу диаграммы, но могут иметь место в нескольких местах схемы, записываются в отдельный XML-файл и затем включаются в соответствующее место. Скажи:
<!-- Nameing etc. just as an example -->
<!ENTITY CommonProerties1 SYSTEM "file:../CommonProperties1.xml">
<!ENTITY CommonProerties2 SYSTEM "file:../CommonProperties2.xml">
и затем где-нибудь в схеме:
<Node shape="Square">
&CommonProperties1;
<!-- Specific properties go here -->
</Node>
Это предотвращает большое количество копируемых материалов, что затрудняет обслуживание, и позволяет совместно использовать свойства commmpn с несколькими схемами.
Проблема в том, что теперь некоторые из общих свойств также имеют базовые элементы, такие как группы флагов и перечислений и т. Д. Я хотел бы, чтобы каждый файл (например, «CommonProperties1.xml») мог включать из другого базовый набор, такой как "CommonEnums.xml", но я не думаю, что это возможно с помощью объявлений! ENTITY.
Вы не можете объявить! ENTITY за пределами заголовка! DOCTYPE, и если вы добавите заголовок, это сделает файл верхнего уровня недействительным, поскольку он получает объявление заголовка 1.2 через файл.
Кто-нибудь когда-нибудь пытался делать подобные вещи, и что вы делали, чтобы обойти / решить проблему? Есть ли лучший вариант, который мне не хватает?
Ура за любую помощь,
1019 * Xan *