想知道在dtd中是否可以使用树属性,但是当使用一个时,所有其他都成为可选:
<!ELEMENT train (CDATA) >
<!ATTLIST train seconds CDATA #REQUIRED !>
<!ATTLIST train minutes CDATA #REQUIRED !>
<!ATTLIST train hours CDATA #REQUIRED !>
我想知道如何制作,当使用其他属性时,其他属性变为可选
答案 0 :(得分:1)
您可以单独使用DTD来应用规则。您必须按照建议在所有属性中使用#IMPLIED
,并在代码中处理该限制。
XML Schema 1.0也不支持,除非你使用Schematron等标准扩展,它允许通过XPath进行断言。
您可以使用断言(<xs:assert>
在XML Schema 1.1中执行此操作,与Schematron非常相似,但您可能无法找到支持它的解析器。