トップ  > メモ一覧  > カテゴリ「XML」の絞り込み結果 : 2件

2件中 1 〜 2 表示  1 

No.3719【引用】■[HTML]CDATAセクションを正しくエスケープする方法

■ [ HTML ] CDATA セクションを正しくエスケープする方法
<! [CDATA[(ここ)]] >

(ここ)は確かにHTMLエスケープしなくてもいいんだけど、(ここ)に予期せぬ"]]>"が現れるとそこでCDATAセクションが終わってしまう。

だから(ここ)に"]]>"という字面が現れないようにしないといけないので、

全ての
]] >

]]]] > <! [CDATA[ >
に置き換える。

分断の仕方によって他にも書き方があって、パターンは以下の通りになる。

]]]] > <...

引用元

更新:2011/05/30 13:31 カテゴリ: web開発  > XML ▲トップ

No.2567 DTDとは

DTDとは
2003-07-20T15:13+09:00   matsu
XML文書の意味付けや構造はそのXML文書を使用する人(もしくはシステム)で合意がなされていればそれでよい.だが,プログラムでXML文書をために は何らかの表現方法があった方が便利である.DTDこの表現方法を提供する.また,人同士の合意を形成する上でも曖昧さを排除するのに役立つ.
XMLは整形式文書でなければならない.しかし,それだけでは足りない.
XMLではタグを自由に決められる.だから,そのタグが何を表すのかはそのタグを作った人にきかなけらばわからない.
そんなこんなでXML文書をやりとりする人同士でタグの取り決めを行う必要がある.この取り決めを行う仕様がDTD(Data Type Definition)やXML Schemaである.ただし,より上位の取り決め,例えばhogeタグが何を指すのかという問題は,DTDではなく別のドキュメントなどで取り決めておく 必要がある.DTDやXML Schemaはこの「より上位の取り決め」にもとづいて,XML文書の「構造」を定義するものである.そしてDTDやXML SchemaにしたがったXML文書を妥当性文書と呼ぶ.
DTDやXML Schemaではどんなタグ(要素)やそのタグの属性があるのかといったXML文書の構造をとりきめる.DTDはXMLとは異なる文法で記述する.XML SchemaはXMLに似た文法で記述する.ここではDTDについて説明する.
DTDはXMLファイルの頭に書いてもいいし,別ファイルに書いてXMLファイルから呼び出してもいい.DTDに書かれる内容は,
  • XML文書にどんなタグがあるのか.
  • それらのタグはどんな順番であらわれ,どんな属性があるのか.
以下の妥当なXML文書を例にしてDTDの書き方を説明する.
<?xml version="1.0" encoding="Shift_JIS" ?>

<!DOCTYPE linux[
<!ELEMENT linux (distribution)>
<!ELEMENT distribution (debian,redhat)>
<!ELEMENT debian (#PCDATA)>
<!ELEMENT redhat (#PCDATA)>
]>

<linux>
  <distribution>
    <debian>favorit</debian>
    <redhat>interest</redhat>
  </distribution>
</linux>
上のXML文書にはDTDがある.該当部分は,
<!DOCTYPE linux[
<!ELEMENT linux (distribution)>
<!ELEMENT distribution (debian,redhat)>
<!ELEMENT debian (#PCDATA)>
<!ELEMENT redhat (#PCDATA)>
]>
である.この部分は,
<!DOCTYPE linux[
.......
]>
となっている.!DOCTYPEを文書型宣言という.この中でXML文書の構造を取り決める.そして,<!DOCTYPEに続く"linux"の部分がルート要素名である.
ルート要素名以外は,
<!ELEMENT 要素名 内容 >
という形で指定する.これを要素型宣言という.そして,上の例の
<!ELEMENT distribution (debian,redhat)>
の部分では,distributionタグの内容には,debianタグとredhatタグが順に現れることを示している.同様に
<!ELEMENT debian (#PCDATA)>
では,debianタグの内容にはテキストデータ(#PCDATA)が現れることを示している.
とにかく,上記の例を試してみる.

xmllint -shell sample01.xml
xmllintコマンドはlibxml2_2.4.16-2_i386.debにある.

実行例.
$ xmllint -shell sample01.xml
/ > du
/
linux
  distribution
    debian
    redhat
/ > validate
/ > quit
上記のうち,validateコマンドが妥当性文書かどうかをチェックしてくれる.妥当性文書でない文書(多分正しく表示されません.ソースの表示でみてください.)をxmllintにかけた場合のvalidateの実行例を以下に示す.
xmllint -shell sample02.xml
/ > du
/
linux
  distribution
    debian
    turbo
    redhat
/ > validate
Element distribution content doesn't follow the DTD
Expecting (debian , redhat), got (debian turbo redhat )
No declaration for element turbo
/ > quit
ちなみに入力ファイルが整形式文書でない場合には,xmllintコマンド実行時点でエラーを返す.

引用元

更新:2010/05/28 19:41 カテゴリ: web開発  > XML ▲トップ
2件中 1 〜 2 表示  1 

FuelPHP

Mac

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0