2

Atom フィード パーサーは、フィード内の次の XML 行をどのように処理する必要がありますか。

<title type="html"><![CDATA[Johnson &amp; Johnson]]></title>

議論のために、本来意図されたテキストが実際にはJohnson & Johnson. この問題に関するこのオンライン ディスカッションに出くわしましたが、2 つの異なる意見があるようです。

1. 意見 #1 - このコンテンツは二重にエンコードされていると主張しています。テキスト「Johnson & Johnson」テキストは、エンティティ エスケープされており、CDATA セクションでラップされることによって再度エンコードされています。彼は、適切に動作する xml パーサーは を返すと述べていますJohnson &amp; Johnson。これは、XML 仕様で CDATA エンコード データを処理する方法が規定されているためです。

  1. 意見 2 - Atom 仕様が優先されると主張する。彼は、CDATA がパススルーとして機能すると述べています。Johnson &amp; Johnsonとして出てきJohnson &amp; Johnsonます。これが単なる XML ドキュメントである場合は、そこで終わります。ただし、これは Atom であるため、適切な動作を判断するにはAtom 仕様を確認する必要があります。アトムの仕様では、type="html"contains エンティティ エスケープされた html を含むすべての要素が指定されています。したがって、それを自由に解読する必要があります。

事実として正しいのはどれ? 適切な Atom XML パーサーは以下を生成する必要があります か?Johnson & JohnsonまたはJohnson &amp; Johnson、この特定の状況を考えると?

4

3 に答える 3

1

どちらの意見も正しい:

  • テキストとしてエンコードされたタイトルはJohnson & Johnson.
  • HTMLとしてエンコードされたタイトルはJohnson &amp; Johnson
  • XMLでHTMLとしてエンコードされたタイトルは<![CDATA[Johnson &amp; Johnson]]>
于 2016-05-25T15:12:35.237 に答える