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 メソッドを廃止。通常のオブジェクトクラスとして扱います。 |
コンストラクタと説明 |
---|
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形式で書き出します。
|
attributeDecl, elementDecl, externalEntityDecl, getExternalSubset, internalEntityDecl, resolveEntity, resolveEntity
public OGDocument read(java.io.File aFile)
aFile
- XMLファイル5.1.9.0 (2010/08/01) static からノーマルに変更 |
public OGDocument string2Node(java.lang.String str)
str
- XML形式で表現された文字列5.1.9.0 (2010/08/01) static からノーマルに変更 |
public void write(java.io.File aFile, OGDocument node)
aFile
- 書き出すファイルnode
- 書き出す OGDocument6.3.8.0 (2015/09/11) FileUtil#getPrintWriter( File,String ) を使用。 |
public void copyDirectry(java.io.File fromFile, java.io.File toFile)
fromFile
- 読み取りもとのファイル/フォルダtoFile
- 書き込み先のファイル/フォルダ5.1.9.0 (2010/08/01) static からノーマルに変更 |
public void addFilter(JspParserFilter filter)
filter
- フィルターオブジェクト5.1.9.0 (2010/08/01) 新規追加 |
public void startDocument()
startDocument
インタフェース内 org.xml.sax.ContentHandler
startDocument
クラス内 org.xml.sax.helpers.DefaultHandler
DefaultHandler.startDocument()
,
ContentHandler.startDocument()
6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。 |
public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
startElement
インタフェース内 org.xml.sax.ContentHandler
startElement
クラス内 org.xml.sax.helpers.DefaultHandler
uri
- 名前空間 URI。要素が名前空間 URI を持たない場合、または名前空間処理が実行されない場合は nulllocalName
- 前置修飾子を含まないローカル名。名前空間処理が行われない場合は空文字列qName
- 接頭辞を持つ修飾名。修飾名を使用できない場合は空文字列attributes
- 要素に付加された属性。属性が存在しない場合、空の AttributesオブジェクトDefaultHandler.startElement(String,String,String,Attributes)
,
ContentHandler.startElement(String,String,String,Attributes)
public void characters(char[] cbuf, int off, int len)
characters
インタフェース内 org.xml.sax.ContentHandler
characters
クラス内 org.xml.sax.helpers.DefaultHandler
cbuf
- 文字データ配列off
- 文字配列内の開始位置len
- 文字配列から使用される文字数DefaultHandler.characters(char[],int,int)
,
ContentHandler.characters(char[],int,int)
public void startCDATA()
startCDATA
インタフェース内 org.xml.sax.ext.LexicalHandler
startCDATA
クラス内 org.xml.sax.ext.DefaultHandler2
DefaultHandler2.startCDATA()
,
LexicalHandler.startCDATA()
public void endCDATA()
endCDATA
インタフェース内 org.xml.sax.ext.LexicalHandler
endCDATA
クラス内 org.xml.sax.ext.DefaultHandler2
DefaultHandler2.endCDATA()
,
LexicalHandler.endCDATA()
public void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
startDTD
インタフェース内 org.xml.sax.ext.LexicalHandler
startDTD
クラス内 org.xml.sax.ext.DefaultHandler2
name
- 文書型名publicId
- 宣言された外部 DTD サブセットの公開識別子。 宣言されていない場合は nullsystemId
- 宣言された外部 DTD サブセットのシステム識別子。 宣言されていない場合は null。
ドキュメントのベース URI に対しては解決されないことに 注意することDefaultHandler2.startDTD( String , String , String )
,
LexicalHandler.startDTD( String , String , String )
public void endDTD()
endDTD
インタフェース内 org.xml.sax.ext.LexicalHandler
endDTD
クラス内 org.xml.sax.ext.DefaultHandler2
DefaultHandler2.endDTD()
,
LexicalHandler.endDTD()
public void startEntity(java.lang.String name)
startEntity
インタフェース内 org.xml.sax.ext.LexicalHandler
startEntity
クラス内 org.xml.sax.ext.DefaultHandler2
name
- エンティティーの名前LexicalHandler.startEntity(String)
public void endEntity(java.lang.String name)
endEntity
インタフェース内 org.xml.sax.ext.LexicalHandler
endEntity
クラス内 org.xml.sax.ext.DefaultHandler2
name
- エンティティーの名前LexicalHandler.endEntity(String)
public void ignorableWhitespace(char[] cbuf, int off, int len)
ignorableWhitespace
インタフェース内 org.xml.sax.ContentHandler
ignorableWhitespace
クラス内 org.xml.sax.helpers.DefaultHandler
cbuf
- 文字データ配列(空白文字)off
- 文字配列内の開始位置len
- 文字配列から使用される文字数ContentHandler.ignorableWhitespace(char[],int,int)
public void comment(char[] cbuf, int off, int len)
comment
インタフェース内 org.xml.sax.ext.LexicalHandler
comment
クラス内 org.xml.sax.ext.DefaultHandler2
cbuf
- 文字データ配列(コメント文字)off
- 配列内の開始位置len
- 配列から読み取られる文字数DefaultHandler.characters(char[],int,int)
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
endElement
インタフェース内 org.xml.sax.ContentHandler
endElement
クラス内 org.xml.sax.helpers.DefaultHandler
uri
- 名前空間 URI。要素が名前空間 URI を持たない場合、または名前空間処理が実行されない場合は nulllocalName
- 前置修飾子を含まないローカル名。名前空間処理が行われない場合は空文字列qName
- 接頭辞を持つ修飾名。修飾名を使用できない場合は空文字列DefaultHandler.endElement(String,String,String)
,
ContentHandler.endElement(String,String,String)
public void warning(org.xml.sax.SAXParseException ex)
warning
インタフェース内 org.xml.sax.ErrorHandler
warning
クラス内 org.xml.sax.helpers.DefaultHandler
ex
- 例外として符号化された警告情報ErrorHandler.warning(SAXParseException)
public static void main(java.lang.String[] args) throws java.lang.ReflectiveOperationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException
args
- コマンド引数配列java.lang.ClassNotFoundException
- クラスが見つからない場合java.lang.InstantiationException
- インスタンスを生成できなかった場合java.lang.IllegalAccessException
- 不正なアクセスがあった場合java.lang.NoSuchMethodException
- 特定のメソッドが見つからないjava.lang.reflect.InvocationTargetException
- 呼び出されるメソッドまたはコンストラクタがスローする例外をラップする、チェック済み例外java.lang.ReflectiveOperationException
6.3.9.1 (2015/11/27) A method/constructor shouldnt explicitly throw java.lang.Exception(PMD)。 |
6.4.3.3 (2016/03/04) リフレクション系の例外の共通クラスに置き換えます。 |
6.8.2.3 (2017/11/10) java9対応(cls.newInstance() → cls.getDeclaredConstructor().newInstance()) |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.