2008-06 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Web サービスにおいて、システム間のデータのやり取りには、標準規格と
して XML を使用する。XML データを実際にやり取りするためのプロトコル
には、SOAP を使用する。SOAP は XML 文書をネットワーク経由で送受信す
るためのメッセージ仕様を定めた標準プロトコルである。
従来はプロトコルが統一されていなかったため、ファイアウォールを越え
てのインターネット接続は難しいものだった。SOAP は伝送プロトコルとし
て、HTTP, FTP, SMTP などの標準プロトコルをベースとするため、ファイ
アウォール越しの接続も容易になった。
- 手紙の本文→XML
- 封筒の形式→SOAP
- 配達の手段→HTTP, FTP, SMTP
- DOM
Document Objects Model の略。XML 文書を解析し、木構造でメモリに展
開する。展開されたデータのことを DOM ツリーと呼ぶ。
- SAX
Simples API for XML の略。その都度解析するので、DOM に比べて省メ
モリ。ただし、プログラムが複雑になってしまうことがある。
各要素に接頭辞となる任意の文字列を加えることにより、名前空間を定義
できる。各要素に加える都合上、DTD とは対応していない。
以下の例では、支店Aの金額は1ヶ月、支店Bの金額は1週間を示すため、
名前空間を分けている。
- 構文
<要素 xmlns:接頭辞="名前空間を示すURI">
- 例
<売上 xmlns:支店A="http://www.example.com/a" xmlns:支店B="http://www.example.com/b"> <支店A:金額>500000</支店A:金額> <支店B:金額>20000</支店B:金額> </売上>
- DTD
<!ENTITY xml "XML(eXtensible Markup Language)">
- XML インスタンス
<詳細>&xml;とは拡張可能なマークアップ言語のことです</詳細>
- 結果
<詳細>XML(eXtensible Markup Language)とは拡張可能なマークアップ言語のことです</詳細>
XML 文書内に直接記述する方法を「内部サブセット」、別ファイルに記述
する方法を「外部サブセット」と呼ぶ。外部 DTD は開発者が用意したもの
も、標準の DTD も使用することができる。前者の識別子として SYSTEM、
後者の識別子として PUBLIC が指定される。
両方使用することもできる。XML パーサは最初に内部、次に外部サブセッ
トを読み込む。もし同じ名前の要素が定義されていた場合は、内部が優先
されて使用される。
DTD では、以下の 4 つの定義を行うことができる。
- 要素型宣言(ELEMENT)
- 属性リスト宣言(ATTLIST)
- エンティティ宣言(ENTITY)
- 記法宣言(NOATION)
DTD のように XML 文書内にどのような要素名が含まれるのか、要素の出現
順序や属性などを事前に定義したものを「スキーマ」という。スキーマの
規格には「DTD」と「XML Schema」がある。
- 整形式 (well-formed) XML 文書
「開始タグと終了タグの対応が正しく取られている」「要素の親子関係も正
しく保たれている」を満たすもの。従って、全ての XML 文書は整形式 XML
文書でなければならない。
- 検証済み (valid) XML 文書
上記に加え、要素や属性が DTD の定義に従っているかどうかも検証した
XML 文書のこと。検証済み XML 文書は「妥当な XML 文書」とも呼ばれる。
- XML 宣言(省略可)
バージョンや文字エンコーディングの宣言
- DTD(省略可)
要素型、属性リスト、エンティティ、記法宣言
- XML インスタンス(必須)
実際のタグ付き文書
- インターネットに対応した世界標準である。
- 構造化データをテキスト形式で記述できる。
- テキストデータなので OS やプラットフォームに依存しない。
- タグの作成が自由に出来る。
- デザインデータは持たずに、スタイルシートとして分離している。
XML とは eXtensible Markup Language の略。拡張可能なマークアップ言
語である。ちなみに、XHTML とは、HTML を XML に準拠する形で再定義し
たマークアップ言語である。
SGML───┐ │ ↓ ↓ HTML XML──┐│ ↓↓ XHTML ↑Web用に整理・拡張 ↑インターネットに適合!
[2005-08-06-1] の訂正。日本語も問題なく表示できる。おそらく、"" で
括っていなかったのだと思う。以下、まとめ。
Emacs22 から ses-mode が使える。*.ses というファイルを開くと
ses-mode になる。
数字orEnterキー: カレントのセルに入力
TAB: 次の列を挿入
Ctrl-o: 次の行を挿入
計算は (+ A1 A2) などと Emacs Lisp と同じ前置記法で行う。文字列は
"あああ" などと囲む必要がある。詳しくは SES の Info を参照すること。
2008-06 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30