2016-11-14 113 views
0

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

<!ELEMENT WARNING EMPTY> 

XML:

<WARNING /> 

или

<WARNING></WARNING> 

兩者都被解析器接受爲正確的。

+3

問題是什麼?事實上,這兩個元素都沒有內容,即它們是空的。這意味着''和''是合法的考慮你的DTD。 – potame

+0

@potame這不是問題。這是一個問題。如果兩個元素都合法,哪一個更喜歡? –

+1

我自己的偏好會去'',因爲它沒那麼冗長。但我會堅持:兩者都是一樣的。 – potame

回答

1

XML規範明確指出,您給出的兩種表單應視爲等同。見https://www.w3.org/TR/xml/#sec-starttags

它推薦(與A應)的配對標籤形式<e></e>用於聲明爲能夠有內容和元素的單標籤形式<e/>元素宣佈爲空。在既沒有DTD也沒有Schema的應用程序中,這種區別是不可用的,我沒有這樣的印象,即任何人都不關注規範在這個問題上的建議。 (這在當時似乎是個好主意。)

[附錄,稍後]我最近有機會再次看看規範的相關部分,一位朋友提醒我注意這樣一個事實, <e/>用於聲明爲EMPTY的元素標記爲「For interoperability」,該規範將其定義爲「爲了增加在XML之前成功與SGML軟件進行交互操作的可能性」。這似乎解釋了爲什麼很少有人遵循所描述的模式:現在很少有人需要與1998年以前開發的SGML軟件進行交互操作。