xml,三个属性,其中一个是必需的

时间:2014-03-03 19:17:51

标签: xml dtd

想知道在dtd中是否可以使用树属性,但是当使用一个时,所有其他都成为可选:

<!ELEMENT train (CDATA) >

<!ATTLIST train seconds CDATA #REQUIRED !>
<!ATTLIST train minutes CDATA #REQUIRED !>
<!ATTLIST train hours CDATA #REQUIRED !>

我想知道如何制作,当使用其他属性时,其他属性变为可选

1 个答案:

答案 0 :(得分:1)

您可以单独使用DTD来应用规则。您必须按照建议在所有属性中使用#IMPLIED,并在代码中处理该限制。

XML Schema 1.0也不支持,除非你使用Schematron等标准扩展,它允许通过XPath进行断言。

您可以使用断言(<xs:assert>在XML Schema 1.1中执行此操作,与Schematron非常相似,但您可能无法找到支持它的解析器。