5

お客様のアプリケーションとの対話には、XML ドキュメントを使用します。つまり、HTTP 経由で XML を送信し、同じ方法で応答 XML ドキュメントを受信します。顧客は、要求と応答の両方の形式を記述する 2 つの XML スキーマを指定しました。ある日、顧客が応答 XML で CDATA セクションを使用し始めるまで、すべてが正常に機能していました。CDATA セクションを無視してパーサーを設定したため、それらを解釈できませんでした。

私の質問は次のとおりです。誰がここで間違いを犯したのですか? XML 標準で答えを見つけようとしましたが、まだわかりません。XSD で CDATA を使用するか使用しないかを規定することはできないと思いますが、そうですか? もしそうなら、XSD に同意するだけでは十分ではなく、CDATA セクションについて別の同意を行う必要がありますか? それとも、CDATA と通常のテキストも解析する準備をしなければなりませんか?

私はあなたの個人的な見解と公式声明の両方に興味があります. ありがとうございました!

4

2 に答える 2

6

多くのXMLパーサーは、テキストとCDATAを分離しますが、これは残念なことです。間違いはあなた次第でした。通常のテキストチャンクとCDATAの間に意味上の違いはないため、送信者は手元のテキストのニーズに基づいて自由に選択できるはずです。

良いニュースは、コードを適応させるのは簡単なことです。

于 2010-05-21T11:54:51.660 に答える
6

CDATA は XML の基本部分です。サポートに失敗すると、パーサーが壊れていることを意味します (実際の XML パーサーではありません (テキスト、CDATA、エンティティ、その他の要素、コメントなどを含む要素を処理できる))。

別の回答のコメントで言及したので、ここで繰り返したいと思います。XML で CDATA を期待しないことは、海で魚を期待しないようなものです。

于 2010-05-21T11:49:16.963 に答える