12239


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

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

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


CC BY-SA 3.0
2015-07-10T01:40:02.190
12236
2015-07-11T00:28:42.620
2015-07-10T01:53:25.280
2238
10471
question
xml
ソケットなどでXML文書を複数を転送する場合の区切り文字


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

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

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


CC BY-SA 3.0
2015-07-10T03:13:04.190
12239
2015-07-10T03:13:04.190
2930
12236
answer


SMTPの本文送信の決まりがまさしくこれです。  
パースしやすいというか、明確にブロックが終わりとわかれば受信スレッドとパーススレッドを分けることができるのでパフォーマンスは上がるでしょう。  
必要性を感じないなら無理に作ることはないのではないでしょうか。


CC BY-SA 3.0
2015-07-11T00:28:42.620
12267
2015-07-11T00:28:42.620
8136
12236
answer