概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.8.6.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.fukurou.xml
クラス JspSaxParser

    java.lang.Object
      org.xml.sax.helpers.DefaultHandler
          org.xml.sax.ext.DefaultHandler2
              org.opengion.fukurou.xml.JspSaxParser

すべての実装されたインタフェース:
  ContentHandler, DTDHandler, EntityResolver, ErrorHandler, DeclHandler, EntityResolver2, LexicalHandler

    public class JspSaxParser

extends 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 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(File fromFile, File toFile)` ディレクトリの再帰処理でパース処理を行います。
`void` | `endCDATA()` CDATA セクションの終わりを報告します。
`void` | `endDTD()` DTD 宣言の終わりを報告します。
`void` | `endElement(String uri, String localName, String qName)` 要素の終了通知を受け取ります。
`void` | `endEntity(String name)` エンティティーの終わりを報告します。
`void` | `ignorableWhitespace(char[] cbuf, int off, int len)` 要素コンテンツに含まれる無視できる空白文字の通知を受け取ります。
`static void` | `main(String[] args)` サンプルプログラムです。
`OGDocument` | `read(File aFile)` XMLファイルを読み込み、OGDocument を返します。
`void` | `startCDATA()` CDATA セクションの開始を報告します。
`void` | `startDocument()` 文書の開始通知を受け取ります。
`void` | `startDTD(String name, String publicId, String systemId)` DTD 宣言がある場合、その開始を報告します。
`void` | `startElement(String uri, String localName, String qName, Attributes attributes)` 要素の開始通知を受け取ります。
`void` | `startEntity(String name)` 内部および外部の XML エンティティーの一部の開始を報告します。
`OGDocument` | `string2Node(String str)` XML形式で表現された、文字列(String) から、OGDocument を構築します。
`void` | `warning(SAXParseException ex)` パーサー警告の通知を受け取ります。
`void` | `write(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 String CR

コンストラクタの詳細

### JspSaxParser

    public JspSaxParser()

メソッドの詳細

### read

    public OGDocument read(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(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(File aFile,
                      OGDocument node)

  OGDocument を所定のファイルに、XML形式で書き出します。

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

### copyDirectry

    public void copyDirectry(File fromFile,
                             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(String[] args)
                     throws Exception

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

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

### startDocument

    public void startDocument()

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

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

### startElement

    public void startElement(String uri,
                             String localName,
                             String qName,
                             Attributes attributes)

  要素の開始通知を受け取ります。 インタフェース ContentHandler 内の startElement

  定義:
    インタフェース `ContentHandler` 内の `startElement`
  オーバーライド:
    クラス `DefaultHandler` 内の `startElement`
  パラメータ:
    `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

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

### startCDATA

    public void startCDATA()

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

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

### endCDATA

    public void endCDATA()

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

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

### startDTD

    public void startDTD(String name,
                         String publicId,
                         String systemId)

  DTD 宣言がある場合、その開始を報告します。 start/endDTD イベントは、ContentHandler の start/endDocument イベント内の最初の startElement イベントの前に出現します。 インタフェース LexicalHandler 内の startDTD

  定義:
    インタフェース `LexicalHandler` 内の `startDTD`
  オーバーライド:
    クラス `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

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

### startEntity

    public void startEntity(String name)

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

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

### endEntity

    public void endEntity(String name)

  エンティティーの終わりを報告します。 インタフェース LexicalHandler の記述: ※ ここでは、inEntity=false を設定するだけです。

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

### ignorableWhitespace

    public void ignorableWhitespace(char[] cbuf,
                                    int off,
                                    int len)

  要素コンテンツに含まれる無視できる空白文字の通知を受け取ります。 インタフェース ContentHandler 内の ignorableWhitespace

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

### comment

    public void comment(char[] cbuf,
                        int off,
                        int len)

  文書内の任意の位置にある XML コメントを報告します。 インタフェース LexicalHandler の記述:

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

### endElement

    public void endElement(String uri,
                           String localName,
                           String qName)

  要素の終了通知を受け取ります。

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

### warning

    public void warning(SAXParseException ex)

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

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

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.8.6.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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