ソケットなどでXML文書を複数を転送する場合の区切り文字


ソケットなど、ストリームで複数のXML文書を順次転送する際の定石について質問です。  
それぞれのXML文書は互いに関係が無いものである場合、文書の区切りは、それぞれのルートタグで十分だと考えています。

しかし、juliusの仕様を見ると「行頭の'.'」をデータ終端とするようです。このように「特別な区切り文字」のメリットはどのようなものでしょうか？また、この実装は一般的なものでしょうか？このような「特別な区切り文字」を実装すべきかどうか判断しかねているので、みなさんの意見を教えてください。

<http://julius.osdn.jp/juliusbook/ja/desc_module.html>




メリットはそのjuliusのドキュメントにあるように「クライアントがパーズしやすくする」ことではないでしょうか。思いつく範囲で挙げてみます。

  * XML文書を、XML構造の解析（ルート要素の閉じタグの認識）なしで分割できるようになると思います。
  * XML文書が、タグが正しく閉じられていないケースや、タグが途中で切れているケースなどでも、終端を見つけてその文書は破棄し、次の文書の処理に移れそうです。
  * SAXモデルではなく、文書全体が揃ってからまとめて解析する、DOMモデルでも扱えそうです。

3点目は「その方が[DOCTYPE宣言](https://msdn.microsoft.com/ja-
jp/library/ms256059.aspx)の扱いや、文書のバリデーションなどはしやすいかも」ぐらいですが、1、2点目については、流されるデータが「常に正しいこと」を期待するのもちょっとリスキーかも、という気がします。




メリットはそのjuliusのドキュメントにあるように「クライアントがパーズしやすくする」ことではないでしょうか。思いつく範囲で挙げてみます。

  * XML文書を、XML構造の解析（ルート要素の閉じタグの認識）なしで分割できるようになると思います。
  * XML文書が、タグが正しく閉じられていないケースや、タグが途中で切れているケースなどでも、終端を見つけてその文書は破棄し、次の文書の処理に移れそうです。
  * SAXモデルではなく、文書全体が揃ってからまとめて解析する、DOMモデルでも扱えそうです。

3点目は「その方が[DOCTYPE宣言](https://msdn.microsoft.com/ja-
jp/library/ms256059.aspx)の扱いや、文書のバリデーションなどはしやすいかも」ぐらいですが、1、2点目については、流されるデータが「常に正しいこと」を期待するのもちょっとリスキーかも、という気がします。

