今日はちょっと趣向を変えてXML【Extensible Markup Language】のお勉強をしてみました。

DTD【Document Type Difinision】がイマイチよく分かってなかったので、
お勉強してみる。
MDB2のDTD【Document Type Difinision】探してたのに見当たらない。
作るか!

ちなみにMDB2は、PEARの1つで、PEAR DB と Metabase php データベース抽象化レイヤーを
統合したものらしいです。
http://pear.plus-server.net/package.database.mdb2.intro.html
より

今日はちょっとZendFrameworkはお休み。
あ、Zend_DBは調べました。
でもスキーマ関連のメソッドが見当たらない・・・。
取得はできるみたいだけど。


なるほど、ある技術(プロファイル)の上位技術を
スーパーセット、下位技術をサブセットって呼ぶんですね。
スーパークラスとサブクラス、スーパータイプとサブタイプと同じですね。
オブジェクト指向っぽい!

で、XMLとHTML【Hyper Text Markup Language】は兄弟で、
そのスーパーセットが、SGML【Standard Generalized Markup Language】なんですね。
で、XHTMLはHTMLのサブセットではなく、XMLのサブセットなんですね。
一度悪いものが普及すると再定義するしかなくなる。
しかも矛盾する。
でも最初から完璧なものを作ろうとすると終わらない。
バランスって難しいですね。

XMLには2つのランクがあります。
1つが整形式XML【well-formed XML document】
こいつはXMLの形式、要素が開始タグと終了タグがきちんと対応してるもの。
そして要素がオーバーラップしてないこと。
例えば、こういうのはなし。
<h1
test
<font id="test">
test
</h1>
</font>
XMLを理解してないデザイナーさんとかから、よくこういうXHTMLもらいますけどね。 (^^

それから、要素がきちんと値を持っていること。省略はなし。
だから、
<option name="test" value="test" selected />
はwell-formedじゃないんですね。要素に値がないから。
<option name="test" value="test" selected="selected" />
としないといけない。

もう一つが、valid XML document
これはwell-formed XML documentのうち、DTD等できちんとした定義をもっているもの。
で、今MDB2で出力されたをvalid XMLにしたいんだけど、DTDが見当たらないと。
定義がない言葉を使うのはキライです。

こうすると面倒だから、整形式XMLをみとめたっぽい。
でも定義は大事だと思うよ。ボクは。

こういう性格してると、やりたいことがなかなか進まないですね。