パーザーNSGMLS


目次

はじめに ▼
コマンド ▼
オプション ▼

はじめに

 James Clark氏が開発したSP−nsgmlsは,国際標準ISO 8879(文書記述言語)に適合したSGMLシステムであり,SGML文書を解析・検証し,その要素構造情報集合(ESIS)と呼ばれる単純なテキスト表現を出力します。

 nsgmlsは,sgmlsの機能拡張版で,各種のUNIXに加えて,Windows95,WindowsNT,MS-DOS,Solaris(i386,sparc),OSF/1 V3.2(DEC Alpha),OS/2,Linux(i386)といったOSで実行可能です。

 nsgmlsを使ったSGML文書処理のワークフローは,図1のようになります。

図1 SGML文書処理のワークフロー

▲図1 SGML文書処理のワークフロー

 ここでは,Windows95におけるnsgmls(Win32版)の利用について説明します。そのバイナリーとソースコードは“ftp://ftp.jclark.com/pub/sp/win32/sp1_2_1u.zip”からダウンロードできます。


コマンド

 nsgmlsのコマンドラインは,次のとおりです。

nsgmls
 [ -BCdeglprsuv ]
 [ -alinktype ]
 [ -bbctf ]
 [ -ccatfile ]
 [ -Ddirectory ]
 [ -Emax_errors ]
 [ -ferrfile ]
 [ -iname ]
 [ -ooutput_option ]
 [ -trastfile ]
 [ -wwarning_type ]
 [ docfile... ]
 [ > esisfile ] 

 nsgmlsを起動するには,スタートメニュー→プログラム(P)→MS-DOSコマンドと選んでMS-DOSウインドウを開き,コマンドで指示します。又は,この形式に基づいたバッチファイルを用意しておいてドラッグ・アンド・ドロップを行ないます。

 nsgmlsのマニュアルの要約は,次のとおりです。

 nsgmlsは,SGML文書docfile[図2を参照]を解析・検証し,その要素構造情報集合(ESIS)のテキスト表現[図3を参照]をファイルesisfileへ出力します。一つ以上のファイル名docfileが指定されると,対応している実体は,文書実体を形作るために連結されます。文書実体は,幾つかのファイルに散らばっているかもしれません。例えば,SGML宣言と文書型定義と文書実現値は各々別々のファイルになっていることが多いでしょう。

<HTML>
<HEAD>
<TITLE>Jade - JamesのDSSSLエンジン</TITLE>
</HEAD>
<BODY BGCOLOR="ffffff">
<H1>Jade - JamesのDSSSLエンジン</H1>
<P>
James Clark著<BR>
・
・

▲図2 SGML文書

AVERSION CDATA -//W3C//DTD HTML 3.2 Final//EN
(HTML
(HEAD
(TITLE
-Jade - JamesのDSSSLエンジン
)TITLE
)HEAD
ABACKGROUND IMPLIED
ABGCOLOR CDATA ffffff
ATEXT IMPLIED
ALINK IMPLIED
AVLINK IMPLIED
AALINK IMPLIED
(BODY
AALIGN IMPLIED
(H1
-Jade - JamesのDSSSLエンジン
)H1
-\n
AALIGN IMPLIED
(P
-James Clark著
・
・

▲図3 ESIS

 例えば,バッチファイルは,一つの文書実現値のファイルだけをドラッグ・アンド・ドロップするであれば,次のようになるでしょう。

CD C:\NSGMLS\BIN
NSGMLS -f%1.ERR EUCJPN.DCL HTML32.DTD %1 > %1.ESI

ここで,“EUCJPN.DCL”はSGML宣言のファイル名,“HTML32.DTD”は文書型定義のファイル名,“.ERR”はエラーファイルの拡張子,“.ESI”はESISファイルの拡張子とします。

 例えば,このバッチファイルに文書実現値ファイルSAMPLEをドラッグ・アンド・ドロップすると,ESISファイルSAMPLE.ESIが得られます。もしエラーが生じればエラーファイルSAMPLE.ERRが得られるでしょう。


オプション

 次のオプションが利用できます。

-alinktype

 連結型linktypeを活性にします。

-bbctf
-bencoding

 このオプションは,出力のために使用される符号化encodingを決定する,とマニュアルに記載されていますが,Win32版の現在のバージョンではシフトJIS符号系に固定されていますので,指定しても無効です。

-B

 コマンドラインで別々に指定された各docfile…を連結しないで,解析します。

-ccatfile

 対応表公開識別子と実体は,カタログ記述ファイルcatfileを介して参照されます。

-C catfile

 catfile…は,カタログ記述ファイルを指定します。

-Ddirectory

 文書実体ファイルのためのディレクトリーdirectoryが探されます。

-e

 エラーメッセージにおいて,開いている実体を表示します。

-Emax_errors

 nsgmlsは,エラーがmax_errors個生じると終了します。

-ferrfile

 エラーをファイルerrfileに出力します。

-g

 エラーメッセージにおいて,開いている要素の共通識別子を表示します。

-iname

 <!ENTITY % name "INCLUDE">がSGML文書実体における文書型宣言部分集合の開始点において繰り返すとみなします。

-ooutput_option

 次のoutput_optionによる追加情報をESISに出力します。

entity

 ENTITY属性かENTITIES属性で参照された又は名付けられたデータ又は副文書実体だけでない,すべての一般実体についての定義を出力します。

id

 識別子宣言された値がIDである属性を区別します。

line

 現在の行番号とファイル名を与えたLコマンドを出力します。

included

 含まれた部分要素のために,iコマンドを出力します。

empty

 終了タグを持てない要素のために,eコマンドを出力します。

notation-sysid

 システム識別子がその表記法のために生成できた場合は,Nコマンドの前のfコマンドを出力します。

nonsgml

 固定的な文字集合モードにおいて,非SGMLデータ文字のためにエスケープシーケンス“\%”を出力します。

-p

 前書きだけを解析します。

-s

 出力を抑えますが,エラーメッセージは印刷されます。

-trastfile

 ISO/IEC 13673:1995によって定義されるRASTをファイルrastileへ出力します。

-v

 バージョン番号を表示します。

-wwarning_type

 警告とエラーを次のwarning_typeで制御します。

mixed

 #PCDATAを許さない混合した内容モデルについて警告します。

sgmldecl

 SGML宣言における種々の曖昧な構造について警告します。

should

 ISO 8879にある種々の勧告に文書が従っていないことについて警告します。

default

 省略された参照について警告します。

duplicate

 重複した実体宣言について警告します。

undefined

 定義されていない要素について警告します。

unclosed

 閉じていない開始タグと終了タグについて警告します。

empty

 空の開始タグと終了タグについて警告します。

net

 簡略可能な開始タグと無効の終了タグについて警告します。

min-tag

 最小化された開始タグと終了タグについて警告します。

unused-map

 使用していない短縮参照対応表について警告します。

unused-param

 文書型定義で定義されているが,使用されていない引数実体について警告します。

notation-sysid

 いかなるシステム識別子も生成できなかった表記法について警告します。

all

 通常避けられるべきであった条件について警告します。

no-idref

 そのIDを持たない要素のID参照値をエラーとしません。

no-significant

 参照具象構文で重要な文字でないとした文字がSGML宣言における表記で生じる場合,エラーとしません。

no-valid

 定義されない要素型又は定義されない属性のために見逃した文書型定義をエラーとしません。

(1998年1月記)


(c)1998 JAGAT