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, resolveEntitypublic 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 - 書き出す OGDocument| 6.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.ContentHandlerstartDocument クラス内 org.xml.sax.helpers.DefaultHandlerDefaultHandler.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.ContentHandlerstartElement クラス内 org.xml.sax.helpers.DefaultHandleruri - 名前空間 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.ContentHandlercharacters クラス内 org.xml.sax.helpers.DefaultHandlercbuf - 文字データ配列off - 文字配列内の開始位置len - 文字配列から使用される文字数DefaultHandler.characters(char[],int,int),
ContentHandler.characters(char[],int,int)public void startCDATA()
startCDATA インタフェース内 org.xml.sax.ext.LexicalHandlerstartCDATA クラス内 org.xml.sax.ext.DefaultHandler2DefaultHandler2.startCDATA(),
LexicalHandler.startCDATA()public void endCDATA()
endCDATA インタフェース内 org.xml.sax.ext.LexicalHandlerendCDATA クラス内 org.xml.sax.ext.DefaultHandler2DefaultHandler2.endCDATA(),
LexicalHandler.endCDATA()public void startDTD(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
startDTD インタフェース内 org.xml.sax.ext.LexicalHandlerstartDTD クラス内 org.xml.sax.ext.DefaultHandler2name - 文書型名publicId - 宣言された外部 DTD サブセットの公開識別子。 宣言されていない場合は nullsystemId - 宣言された外部 DTD サブセットのシステム識別子。 宣言されていない場合は null。
ドキュメントのベース URI に対しては解決されないことに 注意することDefaultHandler2.startDTD( String , String , String ),
LexicalHandler.startDTD( String , String , String )public void endDTD()
endDTD インタフェース内 org.xml.sax.ext.LexicalHandlerendDTD クラス内 org.xml.sax.ext.DefaultHandler2DefaultHandler2.endDTD(),
LexicalHandler.endDTD()public void startEntity(java.lang.String name)
startEntity インタフェース内 org.xml.sax.ext.LexicalHandlerstartEntity クラス内 org.xml.sax.ext.DefaultHandler2name - エンティティーの名前LexicalHandler.startEntity(String)public void endEntity(java.lang.String name)
endEntity インタフェース内 org.xml.sax.ext.LexicalHandlerendEntity クラス内 org.xml.sax.ext.DefaultHandler2name - エンティティーの名前LexicalHandler.endEntity(String)public void ignorableWhitespace(char[] cbuf,
int off,
int len)
ignorableWhitespace インタフェース内 org.xml.sax.ContentHandlerignorableWhitespace クラス内 org.xml.sax.helpers.DefaultHandlercbuf - 文字データ配列(空白文字)off - 文字配列内の開始位置len - 文字配列から使用される文字数ContentHandler.ignorableWhitespace(char[],int,int)public void comment(char[] cbuf,
int off,
int len)
comment インタフェース内 org.xml.sax.ext.LexicalHandlercomment クラス内 org.xml.sax.ext.DefaultHandler2cbuf - 文字データ配列(コメント文字)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.ContentHandlerendElement クラス内 org.xml.sax.helpers.DefaultHandleruri - 名前空間 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.ErrorHandlerwarning クラス内 org.xml.sax.helpers.DefaultHandlerex - 例外として符号化された警告情報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.