openGionopenGion
5.7.7.0

org.opengion.fukurou.xml
クラス JspSaxParser

java.lang.Object
  上位を拡張 org.xml.sax.helpers.DefaultHandler
      上位を拡張 org.xml.sax.ext.DefaultHandler2
          上位を拡張 org.opengion.fukurou.xml.JspSaxParser
すべての実装されたインタフェース:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.ext.EntityResolver2, org.xml.sax.ext.LexicalHandler

public class JspSaxParser
extends org.xml.sax.ext.DefaultHandler2

JSP/XMLファイルを読み取って、OGNode/OGElement オブジェクトを取得する、パーサークラスです。 自分自身が、DefaultHandler2 を拡張していますので、パーサー本体になります。 javax.xml.parsers および、org.w3c.dom の簡易処理を行います。 read で、トップレベルの OGNode を読み込み、write で、ファイルに書き出します。 通常の W3C 系の オブジェクトを利用しないのは、属性の並び順を保障するためです。 ただし、属性のタブ、改行は失われます。 また、属性値に含まれるCR(復帰), LF(改行), TAB(タブ)は、 半角スペースに置き換えられます。 これは、SAXParser 側での XML の仕様の関係で、属性は、正規化されるためです。

変更履歴:
5.1.8.0 (2010/07/01) 新規作成
5.1.9.0 (2010/08/01) static メソッドを廃止。通常のオブジェクトクラスとして扱います。
バージョン
5.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK6.0,

フィールドの概要
static java.lang.String CR
           
 
コンストラクタの概要
JspSaxParser()
           
 
メソッドの概要
 void addFilter(JspParserFilter filter)
          copyDirectry 処理で、OGDocument をフィルター処理するオブジェクトを登録します。
 void characters(char[] cbuf, int off, int len)
          要素内の文字データの通知を受け取ります。
 void comment(char[] cbuf, int off, int len)
          文書内の任意の位置にある XML コメントを報告します。
 void copyDirectry(java.io.File fromFile, java.io.File toFile)
          ディレクトリの再帰処理でパース処理を行います。
 void endCDATA()
          CDATA セクションの終わりを報告します。
 void endDTD()
          DTD 宣言の終わりを報告します。
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
          要素の終了通知を受け取ります。
 void endEntity(java.lang.String name)
          エンティティーの終わりを報告します。
 void ignorableWhitespace(char[] cbuf, int off, int len)
          要素コンテンツに含まれる無視できる空白文字の通知を受け取ります。
static void main(java.lang.String[] args)
          サンプルプログラムです。
 OGDocument read(java.io.File aFile)
          XMLファイルを読み込み、OGDocument を返します。
 void startCDATA()
          CDATA セクションの開始を報告します。
 void startDocument()
          文書の開始通知を受け取ります。
 void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
          DTD 宣言がある場合、その開始を報告します。
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
          要素の開始通知を受け取ります。
 void startEntity(java.lang.String name)
          内部および外部の XML エンティティーの一部の開始を報告します。
 OGDocument string2Node(java.lang.String str)
          XML形式で表現された、文字列(String) から、OGDocument を構築します。
 void warning(org.xml.sax.SAXParseException ex)
          パーサー警告の通知を受け取ります。
 void write(java.io.File aFile, OGDocument node)
          OGDocument を所定のファイルに、XML形式で書き出します。
 
クラス org.xml.sax.ext.DefaultHandler2 から継承されたメソッド
attributeDecl, elementDecl, externalEntityDecl, getExternalSubset, internalEntityDecl, resolveEntity, resolveEntity
 
クラス org.xml.sax.helpers.DefaultHandler から継承されたメソッド
endDocument, endPrefixMapping, error, fatalError, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CR

public static final java.lang.String CR
コンストラクタの詳細

JspSaxParser

public JspSaxParser()
メソッドの詳細

read

public OGDocument read(java.io.File aFile)
XMLファイルを読み込み、OGDocument を返します。 内部的には、SAXParserFactory から、SAXParser を構築し、Property に、 http://xml.org/sax/properties/lexical-handler を設定しています。 コメントノードを処理するためです。

パラメータ:
aFile - XMLファイル
戻り値:
ファイルから読み取って構築したOGDocumentオブジェクト
変更履歴:
5.1.9.0 (2010/08/01) static からノーマルに変更

string2Node

public OGDocument string2Node(java.lang.String str)
XML形式で表現された、文字列(String) から、OGDocument を構築します。 処理的には、#read( File ) と同じで、取り出す元が、文字列というだけです。 XMLファイルからの読み込みと異なり、通常は、Element を表現した文字列が作成されますが、 返されるのは、OGDocument オブジェクトです。

パラメータ:
str - XML形式で表現された文字列
戻り値:
ファイルから読み取って構築した OGDocumentオブジェクト
変更履歴:
5.1.9.0 (2010/08/01) static からノーマルに変更

write

public void write(java.io.File aFile,
                  OGDocument node)
OGDocument を所定のファイルに、XML形式で書き出します。

パラメータ:
aFile - 書き出すファイル
node - 書き出す OGDocument

copyDirectry

public void copyDirectry(java.io.File fromFile,
                         java.io.File toFile)
ディレクトリの再帰処理でパース処理を行います。

パラメータ:
fromFile - 読み取りもとのファイル/フォルダ
toFile - 書き込み先のファイル/フォルダ
変更履歴:
5.1.9.0 (2010/08/01) static からノーマルに変更

addFilter

public void addFilter(JspParserFilter filter)
copyDirectry 処理で、OGDocument をフィルター処理するオブジェクトを登録します。 内部リストへフィルターを追加します。 フィルター処理は、追加された順に行われます。 内部リストへの追加はできますが、削除はできません。

パラメータ:
filter - フィルターオブジェクト
変更履歴:
5.1.9.0 (2010/08/01) 新規追加

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
サンプルプログラムです。 引数の IN がファイルの場合は、OUTもファイルとして扱います。 IN がフォルダの場合は、階層にしたがって、再帰的に処理を行い、OUT に出力します。 フォルダ階層をパースしている最中に、XMLとして処理できない、処理中にエラーが発生した などの場合は、バイナリコピーを行います。 "Usage: JspSaxParser <inFile|inDir> <outFile|outDir> [<JspParserFilter1> ・・・ ]"

パラメータ:
args - コマンド引数配列
例外:
java.lang.Exception - なんらかのエラーが発生した場合

startDocument

public void startDocument()
文書の開始通知を受け取ります。 インタフェース ContentHandler 内の startDocument

定義:
インタフェース org.xml.sax.ContentHandler 内の startDocument
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の startDocument
関連項目:
DefaultHandler.startDocument(), ContentHandler.startDocument()

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes attributes)
要素の開始通知を受け取ります。 インタフェース ContentHandler 内の startElement

定義:
インタフェース org.xml.sax.ContentHandler 内の startElement
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の startElement
パラメータ:
uri - 名前空間 URI。要素が名前空間 URI を持たない場合、または名前空間処理が実行されない場合は null
localName - 前置修飾子を含まないローカル名。名前空間処理が行われない場合は空文字列
qName - 接頭辞を持つ修飾名。修飾名を使用できない場合は空文字列
attributes - 要素に付加された属性。属性が存在しない場合、空の Attributesオブジェクト
関連項目:
DefaultHandler.startElement(String,String,String,Attributes), ContentHandler.startElement(String,String,String,Attributes)

characters

public void characters(char[] cbuf,
                       int off,
                       int len)
要素内の文字データの通知を受け取ります。 エンティティー内かどうかを判断する、inEntity フラグが true の間は、 何も処理しません。 インタフェース ContentHandler 内の characters

定義:
インタフェース org.xml.sax.ContentHandler 内の characters
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の characters
パラメータ:
cbuf - 文字データ配列
off - 文字配列内の開始位置
len - 文字配列から使用される文字数
関連項目:
DefaultHandler.characters(char[],int,int), ContentHandler.characters(char[],int,int)

startCDATA

public void startCDATA()
CDATA セクションの開始を報告します。 CDATA セクションのコンテンツは、正規の characters イベントを介して報告されます。 このイベントは境界の報告だけに使用されます。 インタフェース LexicalHandler 内の startCDATA

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の startCDATA
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の startCDATA
関連項目:
DefaultHandler2.startCDATA(), LexicalHandler.startCDATA()

endCDATA

public void endCDATA()
CDATA セクションの終わりを報告します。 インタフェース LexicalHandler 内の endCDATA

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の endCDATA
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の endCDATA
関連項目:
DefaultHandler2.endCDATA(), LexicalHandler.endCDATA()

startDTD

public void startDTD(java.lang.String name,
                     java.lang.String publicId,
                     java.lang.String systemId)
DTD 宣言がある場合、その開始を報告します。 start/endDTD イベントは、ContentHandler の start/endDocument イベント内の最初の startElement イベントの前に出現します。 インタフェース LexicalHandler 内の startDTD

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の startDTD
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の startDTD
パラメータ:
name - 文書型名
publicId - 宣言された外部 DTD サブセットの公開識別子。 宣言されていない場合は null
systemId - 宣言された外部 DTD サブセットのシステム識別子。 宣言されていない場合は null。 ドキュメントのベース URI に対しては解決されないことに 注意すること
関連項目:
DefaultHandler2.startDTD( String , String , String ), LexicalHandler.startDTD( String , String , String )

endDTD

public void endDTD()
DTD 宣言の終わりを報告します。 このメソッドは、DOCTYPE 宣言の終わりを報告するメソッドです。 ここでは、何もしません。 インタフェース LexicalHandler 内の endDTD

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の endDTD
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の endDTD
関連項目:
DefaultHandler2.endDTD(), LexicalHandler.endDTD()

startEntity

public void startEntity(java.lang.String name)
内部および外部の XML エンティティーの一部の開始を報告します。 インタフェース LexicalHandler の記述: ※ ここでは、&lt; などの文字列が、lt という名のエンティティーで 報告されるため、元の&付きの文字列に復元しています。 エンティティー内かどうかを判断する、inEntity フラグを true にセットします。 inEntity=true の間は、#characters(char[],int,int) は、何も処理しません。

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の startEntity
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の startEntity
パラメータ:
name - エンティティーの名前
関連項目:
LexicalHandler.startEntity(String)

endEntity

public void endEntity(java.lang.String name)
エンティティーの終わりを報告します。 インタフェース LexicalHandler の記述: ※ ここでは、inEntity=false を設定するだけです。

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の endEntity
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の endEntity
パラメータ:
name - エンティティーの名前
関連項目:
LexicalHandler.endEntity(String)

ignorableWhitespace

public void ignorableWhitespace(char[] cbuf,
                                int off,
                                int len)
要素コンテンツに含まれる無視できる空白文字の通知を受け取ります。 インタフェース ContentHandler 内の ignorableWhitespace

定義:
インタフェース org.xml.sax.ContentHandler 内の ignorableWhitespace
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の ignorableWhitespace
パラメータ:
cbuf - 文字データ配列(空白文字)
off - 文字配列内の開始位置
len - 文字配列から使用される文字数
関連項目:
ContentHandler.ignorableWhitespace(char[],int,int)

comment

public void comment(char[] cbuf,
                    int off,
                    int len)
文書内の任意の位置にある XML コメントを報告します。 インタフェース LexicalHandler の記述:

定義:
インタフェース org.xml.sax.ext.LexicalHandler 内の comment
オーバーライド:
クラス org.xml.sax.ext.DefaultHandler2 内の comment
パラメータ:
cbuf - 文字データ配列(コメント文字)
off - 配列内の開始位置
len - 配列から読み取られる文字数
関連項目:
DefaultHandler.characters(char[],int,int)

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
要素の終了通知を受け取ります。

定義:
インタフェース org.xml.sax.ContentHandler 内の endElement
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の endElement
パラメータ:
uri - 名前空間 URI。要素が名前空間 URI を持たない場合、または名前空間処理が実行されない場合は null
localName - 前置修飾子を含まないローカル名。名前空間処理が行われない場合は空文字列
qName - 接頭辞を持つ修飾名。修飾名を使用できない場合は空文字列
関連項目:
DefaultHandler.endElement(String,String,String), ContentHandler.endElement(String,String,String)

warning

public void warning(org.xml.sax.SAXParseException ex)
パーサー警告の通知を受け取ります。 インタフェース org.xml.sax.ErrorHandler 内の warning ここでは、パーサー警告の内容を標準エラーに表示します。

定義:
インタフェース org.xml.sax.ErrorHandler 内の warning
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の warning
パラメータ:
ex - 例外として符号化された警告情報
関連項目:
ErrorHandler.warning(SAXParseException)

openGion 5.7.7.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.