6.2.2. PSGML(EmacsのSGML文書編集モード)

 PSGMLはEmacs(Mule, XEmacs)上でSGML文書を編集するためのシステムです。読み込んだDTDに従ってタグ付けを効率的に行うことができます。 SGML文書を検証するのには外部のSPパーサを呼び出す機能を持ちます。
 PSGMLはEmacs Lispパッケージになっており、以下の場所から入手できます。

http://www.lysator.liu.se/projects/about_psgml.html
使用環境: GNU Emacs19.34、20.3以上、XEmacs19.9以上

 現在のPSGMLは、正式版とアルファ版に分かれています。正式版の最新バージョンは1.0.3です。HTMLにも対応しています。アルファ版の最新バージョンは1.1.6 です。こちらは安定系バージョンではありませんが、XMLに対応しています。

<起動方法>

 Emacsを起動し、”.dtd”、”.sgm”、”.sgml”のいずれかの拡張子のついたファイルを読み込めば、自動的にSGMLモードになります。そのほか、”M−x sgml−mode”というコマンドを入力する方法もあります。

<基本的な使い方>

1. DTDを検証する。

 メニューバー”DTD”で”Parse DTD”を選択すると、SPのパーサ(sgmls/nsgmls)を呼び出します。検証の結果正しいと認められたDTDは、Emacsに読み込みやすい形にプリコンパイルされています。このDTDをメニューバー”DTD”の”Save Parsed DTD”を選択して保存します。検証されたプリコンパイルDTDは、”.ced”という拡張子を付けて保存されます。

2. 検証済みDTDを読み込む。

 メニューバー”DTD”で”Load Parsed DTD”を選択します。

3. 読み込んだDTDに従ってタグ付けを行う。

 タグ付けなどの操作にはEmacsコマンドを使うこともできますが、慣れないうちはメニューバーを使うのがわかりやすい方法です。

<SGMLモードの操作メニュ(一部)>

メニューバーの項目名 コマンド 実行内容

SGML

  • Show Context “C−c C−c” カーソル位置のデータの位置付けを表示
  • What Element “C−c C−w” カーソル位置の要素が何かを表示
  • List Valid Tags “C−c C−t” 現カーソル位置に挿入できるタグ一覧を表示
  • Validate “C−c C−v” nsgmlsを呼び出してSGML文書を検証

Modify(修正)

  • Change Element Name “C−c =” 要素の名前変更
  • Edit Attribute “C−c C−a”属性を編集
  • Kill Markup “C−c C−k”次のタグを消去
  • Kill Element “C−M−k” 次の要素を消去
  • Untag Element “C−c −” 要素の開始タグと終了タグを消去

Move(移動)

  • Next trouble spot “C−c C−o” 次の文法誤りのある場所へ移動
  • Next data field “C−c C−d”次データ入力点(開始タグと終了タグ間)に移動
  • Forward element “C−M−f” 次の終了タグの後へ移動
  • Backward element “C−M−b” 前の開始タグの前に移動
  • Up element “C−c C−n” 親要素の終わりに移動
  • Down element “C−M−d” 子要素の中に移動
  • Backward up element “C−M−u”親要素のはじめに移動
  • Beginning of element “C−M−a” データ(タグ内容)のはじめに移動
  • End of element “C−M−e” データの終わりに移動

Markup(タグ付け)

  • Insert Element “C−c C−e”要素を入れるため開始タグ終了タグを同時記入
  • Insert Start−tag “C−c <“開始タグを記入
  • Insert End−tag “C−c /” 終了タグを記入
  • Insert Attribute “C−c +” 属性を記入

表示

  • Hide Tags “sgml−hide−tags” SGML文書の全てのタグを非表示にする
  • Show All Tags 非表示にしたタグを表示する

DTD

  • Parse DTD “C−c C−p” DTDを検証
  • Info 検証結果の詳細を表示
  • Save Parsed DTD 検証したDTDを保存
  • Load Parsed DTD 検証したDTDを読み込む

<<prev      next>>