1

XML プロローグのどこかにカスタム情報を追加することは合法ですか? たとえば、私の場合、XML の作成に使用されたシリアライザーのバージョンを示すインジケーターを追加して、XML を受信するクライアントが対応する適切なデシリアライザーを自動的に選択できるようにします。

ルート タグの属性として情報を追加することもできますが、標準の XML バージョンのように、プロローグに情報を追加する方がクリーンだと思いました。

<?xml version="1.0"?>

何かのようなもの:

<?serialiser version="1.0"?>

それとも、プロローグは W3C によって指定されたものだけのために予約されていますか?

4

2 に答える 2

3

などの処理命令を追加できます。

<?serialiser version="1.0"?>

XML 宣言の後、DOCTYPE 宣言の前後、またはドキュメントの末尾。実際、処理命令はどこにでも現れる可能性があります。

于 2012-10-15T21:34:34.903 に答える
2

スペックから:

prolog     ::=       XMLDecl? Misc* (doctypedecl Misc*)?
XMLDecl    ::=      '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
Misc       ::=       Comment | PI | S
PI         ::=      '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
PITarget   ::=       Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))  

したがって、XMLDecl(オプションの)部分は変更できませんが、のMisc部分 prolog、特にPI(処理命令)は、を含め、任意の部分にすることができます<?serialiser version="1.0"?>

于 2012-10-15T15:59:59.123 に答える