我有一个包含如下内容的 XML 结构:
<goal id="doStuff" .. />
<score goal="doStuff" value="true" points="10" />
效果很好......直到输入变得更加复杂:分数现在可以依赖于多个目标。我们考虑过:
<goal id="doStuff" .. />
<goal id="doOtherStuff" .. />
<goal id="dontDoThis" .. />
<score goal1="doStuff" value1="true" points="10" />
<score goal1="doOtherStuff" value1="true" goal2="dontDoThis" value2="false" points="20" />
但是得分可以依赖的目标数量没有限制,因此在某些时候这种格式可能会中断。最后我们想出了:
<goal id="doStuff" .. />
<goal id="doOtherStuff" .. />
<goal id="dontDoThis" .. />
<score doStuff="true" points="10" />
<score doOtherStuff="true" dontDoThis="false" points="20" />
这适用于应用程序本身,但我一直无法弄清楚如何编写 XML Schema 来正确验证它;似乎不可能为另一个元素定义的元素提供有效名称(我不得不承认只阅读了 XML Schema 规范的第 0 部分,我只在第 1 部分和第 2 部分扔了几个 Ctrl+F)。
分数必须根据我无法控制的规则计算;例如,改变目标的定义方式不是一种选择。我唯一的灵活性是 XML 的结构。有人可以建议一种将给定结构编码为 XML 的方法,以便可以使用 XML Schema 进行验证?