XMLの勉強 #1 (「10日でおぼえるXML入門教室」 第0日)

XMLの機能と特徴

XMLとはなにか

データが飛んだので省略。。。
自動バックアップが欲しい…。

SGML/HTMLとの比較

データが飛んだので(ry

XMLを取り囲む豊富な周辺技術
  • XSLT
    • XML文書変換用言語
    • 汎用的なXML文書用のスタイルシート「XSL(eXtensible Stylesheet Language)」から重要な文書変換部分のみを切り取ったもの
  • XSL
    • XSLT
    • FO(Formating Objects)
      • スタイル指定の役割から担う仕様
  • DOM
    • XML文書に含まれる各ノード(要素や属性、テキストなど)を汎用的に操作するオブジェクト群
    • DOMを介することではじめて文書モデルにアクセスすることができる
  • XSLTとDOMの違い
    • XSLTXML文書を静的に変換、切り出す仕組み
    • DOMはXML文書を動的に操作する仕組み
  • DTD
    • 柔軟な記述方法を縛る規則
    • Document Type Definition(文書型宣言)
    • 文書の中に記述できる要素、属性の種類、構造関係を定義するもの
    • 「Valid(妥当)なXML」と呼ばれる
      • XMLの規則である「Well-Formed(整形式) XML」と区別して呼ばれる
      • 自由に記述されているXML文書はWell-Formed XMLであり、ValidなXMLではない
  • DTDの欠点
    • XML構文とは異なる形式で記述される
<!ELEMENT books (owner,book+)>
<!ELEMENT owner (#PCDATA)>
<!ELEMENT book (name,auther,category)>
      • DTDの構文規則も学ぶ必要が出てくる
      • パーサやその他の処理プログラムにもXMLを読み取る仕組みの他にDTDを読み取るための別の仕組みを用意する必要がある
      • だから処理が重くなる
      • XML Schema登場
  • XML Schema
    • XMLの構造規則に則って記述される「XML文書」
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="title" type="xsd:string" />
</xsd:schema>
  • DTDはデータ型を持たない
    • DTDSGML時代に開発された規格
    • 「#PCDATA」と呼ばれる文字列型がかろうじてデータ型と呼べる
    • XML時代である現代はデータベース的な様々なデータの集合体を含む
      • 数値であるか日付であるか、あるいは数値であっても整数か負の値か、など
      • DTDでは全部「#PCDATA」
    • XML Schemaは基本データ型として文字列型、数値型、日付型、真偽型などデータベースで扱えるような型が用意されている
    • 個別に定義も可能
      • 文字列型なら文字列長が何桁以上なのかとか、数値型なら整数なのか小数なのかとか
      • その時々の用途に応じて変動する詳細な定義を厳密に定義できる
  • DTD名前空間をサポートしない
    • 名前空間とは一意でない要素(属性)名の前にプレフィックス(接頭辞)を付け、どの文書規則に従っているかを定めるもの
      • 書籍XMLのnameは書名、著者XMLのnameは著者名