2017-03-06 6 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でOKだったので、閉じタグが完全に必須かどうかはわかりませんでした。 – Xenos

答えて

2

はい、HTMLの非XHTMLバージョンとは異なり、XMLのすべてのタグを閉じるか、自己終了する必要があります。

すべてelements in XMLは自動閉鎖のどちらかでなければならないか、開始タグと終了タグのマッチングで構成されている必要があります

element ::= EmptyElemTag | STag content ETag 
関連する問題