6.2.3. perlSGML

 Earl Hood氏が開発した、SGML文書を処理するためのPerlプログラムとライブラリの集まりです。

使用環境: Perlの使えるあらゆるOS

 perlSGMLはフリーウェアであり、以下の場所からダウンロードできます。

http://www.oac.uci.edu/indiv/ehood/perlGML.html

 perlSGMLの日本語版は以下の場所にあります。

http://www.jagat.or.jp/article/sgmlpage/

 perlSGMLの全内容は以下の通りです。

プログラム

  • dtd2html 1.5.1 (DTD解析結果のHTML文書生成プログラム)
  • dtddiff 1.2.1 (DTD変更一覧作成プログラム)
  • dtdtree 1.3.1 (内容階層ツリー出力プログラム)
  • dtdview 0.5.1 (対話形式DTD照会ツール)
  • stripsgml 2.0.0 (文書インスタンスタグ除去プログラム)

ライブラリ(Perl4)

  • dtd.pl 2.4.1 (DTDパーサ)
  • sgml.pl 1.0.0 (文書インスタンスパーサ)

モジュール(Perl5)

  • SGML::DTD 0.02 (DTDパーサ)
  • SGML::EntMan 0.01 (エンティティマネージャ)
  • SGML::FSI 0.04 (フォーマルシステム識別子処理ルーチン)
  • SGML::ISO8859 0.01 (ISO 8859文字集合処理ルーチン)
  • SGML::OPT 0.0 (コマンドラインオプション解析)
  • SGML::Parser 0.11 (文書インスタンスパーサ)
  • SGML::SOCat 0.02 (オープンカタログパーサ)
  • SGML::stripParser 0.01 (文書インスタンスタグ除去パーサ)
  • SGML::Util 0.04(SGML処理関数群)

(a) プログラム

dtd2html

 DTDを解析し、その解析結果を見るためのHTML文書を生成するプログラムです。
 以下のようなHTML文書が生成されます。

  • DTD−HOME.html (最初のページ)
  • TOP−ELEM.html (最上位要素の一覧)
  • ALL−ELEM.html (すべての要素の一覧)
  • ENTS.html (一般実体の一覧)
  • DTD−TREE.html (最上位要素の内容階層ツリー)
  • 要素名.html (各要素についての情報)
  • 要素名.attr.html (各要素の属性の情報)
  • 要素名.cont.html (各要素の内容の情報)

コマンド

% dtd2html [options] DTDファイル名

dtddiff

 2つのDTD間の変更情報を一覧表示します。新しい要素と属性、古い要素と属性、要素と属性の変更、内容規則の変更などの情報を表示します。

コマンド

% dtddiff [options] 古いDTD 新しいDTD

dtdtree

 DTDで定義されたSGML要素の内部階層ツリーをテキストファイルに出力します。

コマンド

% dtdtree [options] 要素名 要素名 ...

dtdview

 要素の内容規則や属性へのアクセス、DTDの構造の探索のためのコマンドラインインタフェイスを提供します。

コマンド

% dtdview [<options>] [DTDファイル名]

DTDファイル名を指定してdtdviewを実行すると、次のようなプロンプトが現れます。( )内にはDTD名が表示されます。

(mydtd) −>

このプロンプトでdtdview専用のコマンドを入力して操作を行います。

stripsgml

 文書インスタンスからタグを取り除き、標準特殊文字実体参照をASCIIに変換します。

コマンド

% stripsgml [options] 文書ファイル名 変換後ファイル名

(b) ライブラリ(Perl4)

dtd.pl

 DTDを解析し、DTDの内容をPerlデータ構造で表したものを作成するPerlライブラリです。
 このライブラリにはPerl4の構文のみが使われていますが、Perl5システムでも利用できます。

 使い方:ルーチンにアクセスするためにPerlで次のように記述します。

require "dtd.pl";

 文書インスタンスを解析するPerlライブラリです。
 使い方:ルーチンにアクセスするためにPerlで次のように記述します。

require "sgml.pl";

(c) モジュール(Perl5)

SGML::DTD

 SGML::DTDはDTDパーサです。SGML::EntManを一緒に使う必要があります。

SGML::EntMan

 SGML実体マネージャです。実体のカタログとしてSGML::SOCatを利用します。

SGML::FSI

 フォーマルシステム識別子を扱うモジュールです。

SGML::ISO8859

 ISO 8859文字データを実体参照に置き換えるルーチンを含みます。

SGML::OPT

 SGMLプログラムのコマンドラインオプションを解析します。

SGML::Parser

 単純な文書インスタンスのパーサです。

SGML::SOCat

 SGMLオープンカタログです。SGML::EntManによって使われます。

SGML::stripParser

文書インスタンスのタグを取り除き、特殊文字やASCII文字の実体参照を翻訳します。

SGML::Util

SGML文書処理に使われる関数群です。

日本語版について

 perlSGMLの日本語版は、dtd2htmlとdtd.plを翻訳したものです。使用するには先にPerlインタプリタをインストールする必要があります。
 使用環境:Windows95, MacOS

DtdHtmlJ.pl(dtd2html, dtd.plを翻案)

 DtdHtmlJはdtd2htmlをもとにしており、1つ以上のDTDを読み込んで解析し、結果をHTML文書として出力します。

使い方

 Windows95の場合、MS−DOSプロンプトからコマンド”PERL DTDHTMLJ.PL DTDファイル名”を実行します。
 MacOSの場合、DtdHtmlJのアイコンにDTDファイルをドラッグアンドドロップします。
 解析結果は出力用ディレクトリへ一括して出力されます。

DtdJ.pl(dtd.plを翻案)

 DtdJはdtd.plをもとにしており、DTDを読んで解析し、結果を返します。

<<prev      next>>