Я не придумал хорошего, чистого способа сделать это, поэтому я принесу вам свои беды!
Я хочу представить конфигурацию в XML. У меня есть несколько полей, некоторые обязательные, некоторые нет, большинство со строгими ограничениями. У меня есть базовая конфигурация, которую я буду представлять как config.xml, который может иметь некоторое содержимое, подобное этому:
...
<config>
<element-a value="3.2" />
<element-b value="hello world" />
</config>
...
Есть связанная схема, которая говорит, что оба из этих полей являются обязательными. Один - это поплавок, а другой - строка. Теперь у меня есть другая конфигурация, которая похожа на первую с одним небольшим изменением. Я хотел бы представить это так:
...
<include base-config="config.xml">
<config>
<element-a value="1.5" />
</config>
...
По сути, эта новая конфигурация извлекает все элементы из базового файла конфигурации и указывает только то, что она переопределяет. Я не могу использовать одну и ту же схему для этого, потому что теперь все элементы являются необязательными, но я хочу сохранить те же ограничения на данные (желательно без необходимости создания новой схемы с теми же элементами, которые все сделали «необязательными»).
Есть ли XML-совместимый способ сделать это? Или кто-нибудь сделал это с какой-либо удачей? Может быть, у вас есть шаблон дизайна, которым вы хотели бы поделиться?
В настоящее время я ожидаю иметь две копии каждой схемы, и на этапе обработки я буду загружать базу, а затем перегружать обновленные элементы. Это громоздкий метод, так что, надеюсь, есть что-то лучшее.