key = element key { type, value }
type = element type { text }
value = element value { text }
特此任何 XML 文档,如
<key>
<type>someType</type>
<value>someValue</value>
</key>
将被确认为格式正确。现在我想设置一些约束,例如元素值之间的一些依赖关系。例如
if type:text = "digit" then value:text = "[0-9]" else
if type:text = "letter" then value:text = "[a-z]"
这将过滤掉一些无效的文档,例如
<key>
<type>letter</type>
<value>7</value>
</key>
<!-- illegal - 7 is not a letter ! -->
Relax NG 的语法没有提供一个明确的机制来编写条件运算符,所以我的问题是如何模拟这种行为并实现某些元素和属性的值之间的依赖关系?
如果您向我展示一种使用经典 DTD 执行此操作的方法,我将不胜感激。
任何帮助将不胜感激。提前致谢。