xml ベースのネットワーク プロトコルを設計して実装したいと考えています。それぞれ Java アプリを実行する 2 つのネットワーク マシンがあります。一方 (クライアント C) は XML シートをもう一方 (サーバー S) に送信します。S はいくつかのデータを処理し、別の XML シートを C に送り返します。
ここで、SAX を XML パーサーとして使用したいと考えています。parse()
SAXのルーチンを終了するには、ストリームの終わりが明確に定義されている必要があります。従来のファイル読み取りシナリオでは、これは些細なことです。
最初に、EOS を示すために靴下を終了しようとしましたが、応答が送信されなくなりました。
このスタックオーバーフローの質問では、同様の質問が尋ねられます。複数の解決策が存在するようです:
- リクエスト XML のルート要素が読み込まれるとすぐに、SAX が停止します ( 経由
SAXException
)。例外に依存してアルゴリズムを終了させるのは、私には悪いように思えます... これは悪いプログラミング スタイルだと思いますね。 - サーバーに送信されるバイト数をカウントし、この数値を XML ファイルの前に送信します。ただし、サイズを計算するために事前に XML を作成する必要があります。また、私の目にはベストプラクティスではありません。
それでは、これをできるだけ簡単かつエレガントに確立する方法のヒントを教えていただけますか?