2017-03-06 78 views
1

我用Java序列化的對象,而我得到了以下XML:XML的根結束標記是必需的嗎?

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.8.0_92" class="java.beans.XMLDecoder"> 
    <object class="...." id="SmartLayout0"> 
    <!-- ... --> 
    </object> 

正如你看到的,根標記<java>未關閉。

XML中不合法關閉此根標籤嗎? XML標準是否明確允許這樣的快捷方式?

+1

這是不合法的。如果您使用的是XMLEncoder,我懷疑您忘記調用XMLEncoder.close(),我認爲它會生成結束標記。 – Joe

+0

@Joe你說得對,缺少'close()'是個問題,但由於解析器對於這樣的XML是可以的,我不確定結束標記是否完全是強制性的。 – Xenos

回答

2

是的,與HTML的非XHTML版本不同,XML中的所有標籤都必須關閉或自閉合。

所有elements in XML必須是自閉或必須包含匹配開始和結束標記的:

element ::= EmptyElemTag | STag content ETag