我没有想出一个干净利落的方法来做这件事,所以我会把你的困境带给你!
我想用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>
...
实际上,这个新配置从基本配置文件中提取所有元素,并仅指定它覆盖的内容。我不能为此使用相同的模式,因为现在所有元素都是可选的,但我想在数据上保持相同的约束(最好不必创建具有相同元素的新模式,所有元素都是“可选的”)。 / p>
是否有符合XML标准的方法?或者有没有人运气好吗?也许你有一个你想分享的设计模式?
目前,我预计每个架构都有两个副本,在处理步骤中,我将加载基础,然后重载更新的元素。这是一种繁琐的方法,所以希望有更好的方法。
答案 0 :(得分:0)
如果您模块化模式以便使用全局类型定义限制,则可以在定义基本配置模式(需要每个元素/大多数元素)和可选配置模式(每个模式)时重新使用这些类型元素是可选的)。这种方法可能也可以使用全局元素,然后在序列中引用它们。
但是,xml架构无法帮助您阅读实际配置文件并执行重载内容。