2012-01-25 7 views
2

"あなたが受け入れるものは自由で、送信するものは控えめなものにしてください。" - Jon PostelDOMParser:多重定義された属性について泣かせることはできますか?

今はChromeのブラウザを使用していますが、これまでFirefoxでこれまでと同じことを経験しています。

JSコードのような...

(new DOMParser).parseFromString("<doc attr=\"foo\" attr=\"foo\" />","text/xml") 

ではなく、何か役に立つのpukey parsererrorページを返します。

現在、私は実際にはこの問題を抱えているXML文書のように表面的に見えるものを消費しています。つまり、一部の要素には同じ属性が2回あります。

上記の原則に従って、私は自分のプログラム(ブラウザのDOMParserオブジェクトに基づいて作成されています)は、これらのような入力に直面するだけで良いのです。

属性の最初の値、最後の値、またはそれ以外の値が使用されているかどうかは気にしません。

質問:パーサーの方が厳しくはありませんか?

答えて

1

XMLの考え方は、常にPostelの法則の逆です:あなたが受け入れるものについて自由であれば、これはコンテンツ制作者が作成するものを怠ってしまうことを助長します。あなたが受け入れる内容が厳しい場合、コンテンツ制作者は制作者に厳格にされなければなりません。そうでない場合、制作者は無駄になります。この非XMLファイルを生成したプロセスを修正してください。 (XMLドキュメントの場合は、そのようなオブジェクトを "XMLドキュメント"と呼ぶのは間違いではありません)。

+0

この洞察に感謝します。私はあなたがここで言ったことに基づいて質問を改善しました。 – Harold

関連する問題