|
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectorg.xml.sax.helpers.DefaultHandler
org.opengion.fukurou.xml.HybsXMLHandler
public class HybsXMLHandler
このクラスは、拡張オラクル XDK形式のXMLファイルを処理するハンドラです。 オラクルXDK形式のXMLとは、下記のような ROWSET をトップとする ROW の 集まりで1レコードを表し、各ROWには、カラム名をキーとするXMLになっています。 <ROWSET> <ROW num="1"> <カラム1>値1</カラム1> ・・・ <カラムn>値n</カラムn> </ROW> ・・・ <ROW num="n"> ・・・ </ROW> <ROWSET> この形式であれば、XDK(Oracle XML Developer's Kit)を利用すれば、非常に簡単に データベースとXMLファイルとの交換が可能です。 XDK(Oracle XML Developer's Kit) 拡張XDK形式とは、ROW 以外に、SQL処理用タグ(EXEC_SQL)を持つ XML ファイルです。 また、登録するテーブル(table)を ROWSETタグの属性情報として付与することができます。 (大文字小文字に注意) これは、オラクルXDKで処理する場合、無視されますので、同様に扱うことが出来ます。 この、EXEC_SQL は、それそれの XMLデータをデータベースに登録する際に、 SQL処理を自動的に流す為の、SQL文を記載します。 この処理は、イベント毎に実行される為、その配置順は重要です。 このタグは、複数記述することも出来ますが、BODY部には、1つのSQL文のみ記述します。 <ROWSET tableName="XX" > <EXEC_SQL> 最初に記載して、初期処理(データクリア等)を実行させる。 delete from GEXX where YYYYY </EXEC_SQL> <MERGE_SQL> このSQL文で UPDATEして、結果が0件ならINSERTを行います。 update GEXX set AA=[AA] , BB=[BB] where CC=[CC] </MERGE_SQL> <ROW num="1"> <カラム1>値1</カラム1> ・・・ <カラムn>値n</カラムn> </ROW> ・・・ <ROW num="n"> ・・・ </ROW> <EXEC_SQL> 最後に記載して、項目の設定(整合性登録)を行う。 update GEXX set AA='XX' , BB='YY' where CC='ZZ' </EXEC_SQL> <ROWSET> DefaultHandler クラスを拡張している為、通常の処理と同様に、使用できます。 InputSource input = new InputSource( reader ); HybsXMLHandler hndler = new HybsXMLHandler(); SAXParserFactory f = SAXParserFactory.newInstance(); SAXParser parser = f.newSAXParser(); parser.parse( input,hndler ); また、上記の処理そのものを簡略化したメソッド:parse( Reader ) を持っているため、 通常そのメソッドを使用します。 HybsXMLHandler には、TagElementListener をセットすることができます。 これは、ROW 毎に 内部情報を TagElement オブジェクト化し、action( TagElement ) が呼び出されます。この Listener を介して、1レコードずつ処理することが 可能です。
フィールドの概要 | |
---|---|
static String |
EXEC_SQL
このハンドラで取り扱えるタグ名 "EXEC_SQL" |
static String |
MERGE_SQL
このハンドラで取り扱えるタグ名 "MERGE_SQL" |
static String |
ROW
このハンドラで取り扱えるタグ名 "ROW" |
static String |
ROW_NUM
このハンドラで取り扱える ROWタグの属性 "num" |
static String |
ROWSET
このハンドラのトップタグ名 "ROWSET" |
static String |
ROWSET_TABLE
このハンドラで取り扱える ROWSETタグの属性 |
コンストラクタの概要 | |
---|---|
HybsXMLHandler()
|
メソッドの概要 | |
---|---|
void |
characters(char[] buffer,
int start,
int length)
要素内の文字データの通知を受け取ります。 |
void |
endElement(String namespace,
String localName,
String qname)
要素の終了通知を受け取ります。 |
void |
parse(Reader reader)
パース処理を行います。 |
void |
setDefaultMap(Map<String,String> map)
TagElement オブジェクトを作成する時の 初期カラム/値を設定します。 |
void |
setTagElementListener(TagElementListener listener)
内部に TagElementListener を登録します。 |
void |
startElement(String namespace,
String localName,
String qname,
Attributes attributes)
要素の開始通知を受け取ります。 |
クラス org.xml.sax.helpers.DefaultHandler から継承されたメソッド |
---|
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final String ROWSET
public static final String ROWSET_TABLE
public static final String ROW
public static final String ROW_NUM
public static final String EXEC_SQL
public static final String MERGE_SQL
コンストラクタの詳細 |
---|
public HybsXMLHandler()
メソッドの詳細 |
---|
public void parse(Reader reader)
reader
- Readerpublic void setTagElementListener(TagElementListener listener)
listener
- TagElementListenerpublic void setDefaultMap(Map<String,String> map)
map
- Mappublic void characters(char[] buffer, int start, int length) throws SAXException
ContentHandler
内の characters
DefaultHandler
内の characters
buffer
- char[] XML 文書の文字start
- int 配列内の開始位置length
- int 配列から読み取られる文字数
SAXException
DefaultHandler.characters(char[] , int , int )
public void startElement(String namespace, String localName, String qname, Attributes attributes) throws SAXException
ContentHandler
内の startElement
DefaultHandler
内の startElement
namespace
- String 名前空間 URIlocalName
- String 前置修飾子を含まないローカル名。名前空間処理が行われない場合は空文字列qname
- String 前置修飾子を持つ修飾名。修飾名を使用できない場合は空文字列attributes
- Attributes 要素に付加された属性。属性が存在しない場合、空の Attributes オブジェクト
SAXException
DefaultHandler.startElement(String , String , String , Attributes )
public void endElement(String namespace, String localName, String qname) throws SAXException
ContentHandler
内の endElement
DefaultHandler
内の endElement
namespace
- String 名前空間 URIlocalName
- String 前置修飾子を含まないローカル名。名前空間処理が行われない場合は空文字列qname
- String 前置修飾子を持つ XML 1.0 修飾名。修飾名を使用できない場合は空文字列
SAXException
DefaultHandler.endElement(String , String , String )
|
openGion 5.0.0.1 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |