org.opengion.plugin.io

## クラス TableWriter_XML

- java.lang.Object
- - org.opengion.hayabusa.io.AbstractTableWriter
  - - org.opengion.plugin.io.TableWriter_Default
    - - org.opengion.plugin.io.TableWriter_XML

- すべての実装されたインタフェース:
    TableWriter

      public class TableWriter_XML
      extends TableWriter_Default

       TableWriter をXML形式で出力する為の実装クラスです。
       DefaultTableWriter を継承していますので，ラベル，名前，データの出力部のみ
       オーバーライドして，XML形式ファイルの出力機能を実現しています。

       出力のXML形式は、拡張オラクル ＸＤＫ形式のＸＭＬファイルです。
       オラクルＸＤＫ形式のＸＭＬとは、下記のような ROWSET をトップとする ROW の
       集まりで１レコードを表し、各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)

       拡張ＸＤＫ形式とは、ROW 以外に、SQL処理用タグ(EXEC_SQL)を持つ XML ファイルです。
       これは、オラクルXDKで処理する場合、無視されますので、同様に扱うことが出来ます。
       この、EXEC_SQL は、それそれの XMLデータをデータベースに登録する際に、
       SQL処理を自動的に流す為の、SQL文を記載します。
       この処理は、イベント毎に実行される為、その配置順は重要です。
       このタグは、複数記述することも出来ますが、BODY部には、１つのSQL文のみ記述します。

         <ROWSET tablename="GEXX" >
             <EXEC_SQL>                    最初に記載して、初期処理(データクリア等)を実行させる。
                 delete from GEXX where YYYYY
             </EXEC_SQL>
             <MERGE_SQL>                   このSQL文で UPDATEして、結果が０件なら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='XX' where YYYYY
             </EXEC_SQL>
         <ROWSET>

  機能分類
    ファイル出力
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド org.opengion.hayabusa.io.AbstractTableWriter

      `BUFFER_MIDDLE, clmNo, CR, dbColumn, dbType, isKeyLbl, NUMBER, numberOfColumns, NVAR, STRING, table`

    - ### インタフェースから継承されたフィールド org.opengion.hayabusa.io.TableWriter

      `CSV_SEPARATOR, TAB_SEPARATOR`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `TableWriter_XML()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `setParam(java.util.List listParam)` パラメーターリストをセットします。
    `protected void` | `writeData(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に DBTableModelのテーブル情報を書き込みます。
    `void` | `writeDBTable(java.io.PrintWriter writer)` DBTableModel から データを作成して,PrintWriter に書き出します。
    `protected void` | `writeHeader(java.io.PrintWriter writer)` PrintWriter に DBTableModelのヘッダー情報を書き込みます。

    - ### クラスから継承されたメソッド org.opengion.plugin.io.TableWriter_Default

      `writeDBTable`

    - ### クラスから継承されたメソッド org.opengion.hayabusa.io.AbstractTableWriter

      `checkParam, createDBColumn, getDBTableModel, getEncode, getHeaderSequence, getSeparator, isAppend, isDebug, isExcel, isUseNumber, isUseRenderer, quotation, quotation2, setAddTitleSheet, setAppend, setColumns, setDBTableModel, setDebug, setEncode, setFileBreakColumn, setFilename, setFontName, setFontPoint, setHeaderSequence, setHyperLinkColumn, setOmitNames, setPageBreakColumn, setRecalcSheetName, setRefFilename, setRefSheetName, setSeparator, setSheetName, setSheetOverwrite, setSkipRowCount, setUseActiveWorkbook, setUseAutoCellSize, setUseCellStyle, setUseNumber, setUseRenderer, writeClass, writeLabel, writeName, writeSeparator, writeSize`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### TableWriter_XML

          public TableWriter_XML()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### writeDBTable

          public void writeDBTable(java.io.PrintWriter writer)

      DBTableModel から データを作成して,PrintWriter に書き出します。
      定義:
        `writeDBTable` インタフェース内 `TableWriter`
      オーバーライド:
        `writeDBTable` クラス内 `TableWriter_Default`
      パラメータ:
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
        3.5.4.3 (2004/01/05) 引数に PrintWriter を受け取るように変更します。

    - #### writeHeader

          protected void writeHeader(java.io.PrintWriter writer)

      PrintWriter に DBTableModelのヘッダー情報を書き込みます。 XML のヘッダーは、<?xml version='1.0' encoding='encode値'?> になります。 encoding属性には、encode値をセットします。 encoding属性に設定できる値は、"UTF-8","UTF-16","Shift_JIS" です。
      オーバーライド:
        `writeHeader` クラス内 `AbstractTableWriter`
      パラメータ:
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
        4.0.0.0 (2005/01/31) XML宣言部のencoding属性を、encode値をセットする。

    - #### writeData

          protected void writeData(DBTableModel table,
                                   java.io.PrintWriter writer)

      PrintWriter に DBTableModelのテーブル情報を書き込みます。 出力のXML形式は、ORACLE XDK での出力ファイルと同じ形式ですので、直接データベースに 登録することができます。
      オーバーライド:
        `writeData` クラス内 `TableWriter_Default`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
        3.8.0.1 (2005/06/17) DBTypeが NVAR の場合は、元のUnicodeに戻します。
        4.0.0.0 (2005/01/31) EXEC_SQL タグ機能の追加
        5.1.6.0 (2010/05/01) DbType の初期値(dbType)を利用する。
        5.2.1.0 (2010/10/01) useRenderer 対応
        5.6.6.1 (2013/07/12) MERGE_SQL 対応
        5.6.7.0 (2013/07/27) 改行処理の見直し
        6.0.1.2 (2014/08/08) カラム飛ばしできる機能を追加
        6.0.4.0 (2014/11/28) データ出力用のレンデラー

    - #### setParam

          public void setParam(java.util.List listParam)

      パラメーターリストをセットします。 内部は、HybsEntry クラスを持っています。 引数が、null の場合は、何もしません。
      定義:
        `setParam` インタフェース内 `TableWriter`
      オーバーライド:
        `setParam` クラス内 `AbstractTableWriter`
      パラメータ:
        `listParam` - HybsEntryリスト
      変更履歴:

        4.0.0.0 (2005/01/31) 新規追加
        5.6.6.1 (2013/07/12) MERGE_SQL 対応
        5.6.6.1 (2013/07/12) keys の整合性チェックを行います。

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