XML DTD。空元素

时间:2016-11-14 19:42:31

标签: xml xml-parsing xml-dtd

如何在XML文件中指定空元素: DTD:

<!ELEMENT WARNING EMPTY> 

XML:

 <WARNING /> 

или

<WARNING></WARNING> 

解析器接受的都是正确的。

1 个答案:

答案 0 :(得分:1)

XML规范明确指出,您提供的两种形式将被视为等效形式。见https://www.w3.org/TR/xml/#sec-starttags

建议(应该)应该将配对标记格式<e></e>用于声明为能够拥有内容的元素,将单标记格式<e/>用于声明为空的元素。在既没有DTD也没有架构的应用程序中,这种区别是不可用的,而且我没有任何人在这个问题上关注规范建议的印象。 (当时这似乎是一个好主意。)

[附录,稍后]我最近有机会再次查看规范的相关部分,并且一位朋友提请我注意这样一个事实,即<e/>被用于声明EMPTY的元素的建议被标记“对于互操作性”,规范定义为“为了增加与XML之前的SGML软件成功互操作的机会”。这似乎可以解释为什么很少有人遵循所描述的模式:现在很少有人需要与1998年之前开发的SGML软件进行互操作。