escaped markup

escaped markup

[13] エスケープされたマーク付け (escaped markup) とは、 (主に HTML を) データとして (主に XML に) 埋め込むことを言います。埋め込まれる前の元のマーク付けエスケープされた状態で埋め込まれることからこのように呼ばれています。

[14] 例えば「こんにちは、<strong>世界</strong>。」という HTML 片をデータとして XML に埋め込むと、

<data>こんにちは、&lt;strong>世界&lt;/strong>。</data>
... となります。

Escaped markup が使われる場所

[15] escaped markup は次の場所で使われます。

関連

[23] RDF/XML/HTML注釈も参照してください。

歴史

[20] escaped markup は当初平文HTML か曖昧な文脈で使われることが多かったことや、 タグが更にエスケープされる状況が不自然に思えること、 テキストデータとしての構文と DOM のようなデータモデルとの違いの理解が十分なされなかったことなどから批判の対象となってきました。

[21] RSSdescription 要素 (>>16) は、平文と解釈する実装と HTML として解釈する実装が混在しており、現在も混乱した状況にあります。

[22] Atom (>>18) は type によって異なり、 html の時は escaped markup となった HTML ですが、 xhtml の時は Atom と同じ文書における要素として XHTML が埋め込まれる形になります。

メモ

[1] Escaped markup considered harmful。

Escaped markup ってのは例えば

<content:encoded>
  &lt;p&gt;Escaped markup ってのは要は、
  タグでも何でも詰め込めるものは詰め込んじゃえば
  いいってことですな。&lt;/p&gt;
  &lt;ul>
  &lt;li>このように、&lt;/li>
  &lt;li>リストだって&lt;/li>
  &lt;li>&lt;img src="something" alt="画像"/>だって&lt;/li>
  &lt;li>&lt;iframe src="something">行内フレーム&lt;/iframe>だって&lt;/li>
  &lt;li>なんでもありなんですよ!&lt;/li>
  &lt;li>&lt;font size="7" color="red">
    すばらしいでしょ!!!&lt;/font>&lt;/li>
  &gt;/ul>
</content:encoded>

みたいな感じのやつです。

stago を一々 escape するのが面倒なので全部丸ごと CDATA区間に突っ込んじゃうのが通のやり方。 だけどうっかり ]]> を入れてしまうと整形式じゃなくなっちゃう諸刃の剣。素人には(ry

[2] で、 XML なんだから素直に名前空間使えばいいのに、 この escaped markup には (特定の実装者が手抜きできる以外に) どういう利点があるんですかね?

[3] Escaped markup の内容はちゃんと XML宣言とか文書型宣言も入れといたほうがよくないですか?

<content:encoded>
  <![CDATA[
    <?xml version="1.0"?>
    <!DOCTYPE p SYSTEM "path/to/dtd">
    <p>説明。</p>
  ]]>
</content:encoded>

みたいに(w

[4] >>3 皮肉になってないって。

[5] そふぃあたんにこてこてにこき下ろして欲しい・・・

[6] >>3 それってもろ、 XML data island じゃんw

<XML ID="XMLDATA">
    <?xml version="1.0"?>
    <p>説明。</p>
</XML>

[7] XML.com: Escaped Markup Considered Harmful http://www.xml.com/pub/a/2003/08/20/embedded.html

なんかそのまんまなのがありました。

[8] Escaped Markup: Still Harmful http://norman.walsh.name/2003/09/16/escmarkup (名無しさん [sage])

[9] Escaped Markup Considered Harmful ...from Robert Hahn: inspired by integration http://www.tenletters.com/rhahn/Internet/Markup/XML/EscapedMarkupHarmful.html (名無しさん [sage])

[10] Escaped markup を復号するために (??)、CDATA区間内の文字参照文字に置換する実装があります。 その結果、マーク付けの例が実際のマーク付けであるかのように扱われてしまうことがあります。 (名無しさん 2006-05-21 22:09:25 +00:00)

[11] descriptioncontent:encoded も、提供元によって escape されていたりいなかったり、 CDATA区間内なのに更に escape されていたり、滅茶苦茶ですねぇ。。。

(名無しさん 2006-05-21 22:11:44 +00:00)

[12] XLIFF 1.2 Representation Guide for HTML ( 版) http://docs.oasis-open.org/xliff/v1.2/xliff-profile-html/xliff-profile-html-1.2-cd02.html#IncludingEscapedMarkup

[28] RFC 2801 - Internet Open Trading Protocol - IOTP Version 1.0, , https://tools.ietf.org/html/rfc2801#section-3.7.1