XML DTD。空元素
问题描述:
如何在一个XML文件中指定空元素: DTD:XML DTD。空元素
<!ELEMENT WARNING EMPTY>
XML:
<WARNING />
или
<WARNING></WARNING>
?
两者都被解析器接受为正确的。
答
XML规范明确指出,您给出的两种表单应视为等同。见https://www.w3.org/TR/xml/#sec-starttags
它推荐(与A应)的配对标签形式<e></e>
用于声明为能够有内容和元素的单标签形式<e/>
元素宣布为空。在既没有DTD也没有Schema的应用程序中,这种区别是不可用的,我没有这样的印象,即任何人都不关注规范在这个问题上的建议。 (这在当时似乎是个好主意。)
[附录,稍后]我最近有机会再次看看规范的相关部分,一位朋友提醒我注意这样一个事实, <e/>
用于声明为EMPTY的元素标记为“For interoperability”,该规范将其定义为“为了增加在XML之前成功与SGML软件进行交互操作的可能性”。这似乎解释了为什么很少有人遵循所描述的模式:现在很少有人需要与1998年以前开发的SGML软件进行交互操作。
问题是什么?事实上,这两个元素都没有内容,即它们是空的。这意味着' '和' '是合法的考虑你的DTD。 –
potame
@potame这不是问题。这是一个问题。如果两个元素都合法,哪一个更喜欢? –
我自己的偏好会去' ',因为它没那么冗长。但我会坚持:两者都是一样的。 –
potame