パッケージ org.opengion.hayabusa.taglib

# クラス DirectXMLSaveTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.DirectXMLSaveTag

すべての実装されたインタフェース:
  `BodyTag`, `IterationTag`, `JspTag`, `Tag`, `TryCatchFinally`, `Serializable`

public class DirectXMLSaveTag extends CommonTagSupport
指定の拡張XDK形式ﾌｧｲﾙを直接ﾃﾞｰﾀﾍﾞｰｽに登録するﾃﾞｰﾀ入力ﾀｸﾞです。 このｸﾗｽは、ｵﾗｸﾙ XDKの oracle.xml.sql.dml.OracleXMLSave ｸﾗｽと ほぼ同様の目的で使用できる org.opengion.fukurou.xml.XMLFileLoader のﾗｯﾊﾟｰｸﾗｽです。 拡張XDK形式のXMLﾌｧｲﾙを読み込み、ﾃﾞｰﾀﾍﾞｰｽに INSERT します。 拡張XDK形式の元となる ｵﾗｸﾙ XDK(Oracle XML Developer's Kit)については、以下の ﾘﾝｸを参照願います。 XDK(Oracle XML Developer's Kit) このﾀｸﾞでは、keys,vals を登録することにより、XMLﾌｧｲﾙに存在しないｶﾗﾑを 追加したり、XMLﾌｧｲﾙの情報を書き換えることが可能になります。 例えば、登録日や、登録者、または、ﾃﾝﾌﾟﾚｰﾄより各ｼｽﾃﾑID毎に 登録するなどです。 拡張XDK形式とは、ROW 以外に、SQL処理用ﾀｸﾞ(EXEC_SQL)を持つ XML ﾌｧｲﾙです。 また、登録するﾃｰﾌﾞﾙ(table)を ROWSETﾀｸﾞの属性情報として付与することができます。 (大文字小文字に注意) これは、ｵﾗｸﾙXDKで処理する場合、無視されますので、同様に扱うことが出来ます。 この、EXEC_SQL は、それそれの XMLﾃﾞｰﾀをﾃﾞｰﾀﾍﾞｰｽに登録する際に、 SQL処理を自動的に流す為の、SQL文を記載します。 この処理は、ｲﾍﾞﾝﾄ毎に実行される為、その配置順は重要です。 このﾀｸﾞは、複数記述することも出来ますが、BODY部には、1つのSQL文のみ記述します。 6.0.0.0 (2014/04/11) 指定のﾌｧｲﾙがﾌｫﾙﾀﾞの場合は、以下のﾌｧｲﾙすべて(拡張子はxml)を対象に読込-登録します。 また、拡張子が、zip の場合は、zip内部の xml ﾌｧｲﾙを読込-登録します。 ※ このﾀｸﾞは、Transaction ﾀｸﾞの対象です。 <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='XX' where YYYYY </EXEC_SQL> <ROWSET>

関連項目:
  - 直列化された形式
変更履歴:
  4.0.0.0 (2007/03/08) 新規追加, 6.0.0.0 (2014/04/11) 単体ﾌｧｲﾙ以外(ﾌｫﾙﾀﾞ、ZIPﾌｧｲﾙ)への対応
機能分類
  ﾌｧｲﾙ入力
形式ｻﾝﾌﾟﾙ:
  ●形式:<og:directXMLSave fileURL="[･･･]" ･･･ /> ●body:なし ●Tag定義: <og:directXMLSave dbid 【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT) fileURL 【TAG】読み取り元ﾃﾞｨﾚｸﾄﾘ名を指定します (初期値:FILE_URL[=filetemp/]) filename 【TAG】ﾌｧｲﾙを作成するときのﾌｧｲﾙ名をｾｯﾄします (初期値:null) displayMsg 【TAG】query の結果を画面上に表示するﾒｯｾｰｼﾞIDを指定します(初期値:MSG0003[ﾌｧｲﾙの登録が完了しました。]) keys 【TAG】XMLﾌｧｲﾙを読み取った後で指定するｷｰをCSV形式で複数指定します vals 【TAG】XMLﾌｧｲﾙを読み取った後で指定する値をCSV形式で複数指定します useTimeStamp 【TAG】XMLﾌｧｲﾙの読み取りで、ﾀｲﾑｽﾀﾝﾌﾟ管理を行うかどうか[true:行う/false:行わない]指定します(初期値:false) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=])。 caseKey 【TAG】このﾀｸﾞ自体を利用するかどうかの条件ｷｰを指定します(初期値:null) caseVal 【TAG】このﾀｸﾞ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ｾﾞﾛ文字列 でない場合(Not Null=NN)は、このﾀｸﾞは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ｾﾞﾛ文字列 の場合は、このﾀｸﾞは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このﾀｸﾞは使用されます(初期値:判定しない) debug 【TAG】ﾃﾞﾊﾞｯｸﾞ情報を出力するかどうか[true/false]を指定します(初期値:false) /> ●使用例 <og:directXMLSave dbid = "ORCL" 接続ﾃﾞｰﾀﾍﾞｰｽID(初期値:DEFAULT) fileURL = "{@USER.ID}" 読み取り元ﾃﾞｨﾚｸﾄﾘ名 filename = "{@filename}" 読み取り元ﾌｧｲﾙ名 displayMsg = "MSG0003" 登録完了後のﾒｯｾｰｼﾞ />
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

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

  `BR, BUFFER_MIDDLE, CR`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport

  `bodyContent`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport

  `id, pageContext`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag

  `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag

  `EVAL_BODY_AGAIN`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag

  `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `DirectXMLSaveTag()`
  ﾃﾞﾌｫﾙﾄｺﾝｽﾄﾗｸﾀｰ

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int`
  `doEndTag()`
  Taglibの終了ﾀｸﾞが見つかったときに処理する doEndTag() を ｵｰﾊﾞｰﾗｲﾄﾞします。
  `protected void`
  `release2()`
  ﾀｸﾞﾘﾌﾞｵﾌﾞｼﾞｪｸﾄをﾘﾘｰｽします。
  `void`
  `setDbid(String id)`
  【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT)。
  `void`
  `setDisplayMsg(String id)`
  【TAG】query の結果を画面上に表示するﾒｯｾｰｼﾞIDを指定します(初期値:MSG0003[ﾌｧｲﾙの登録が完了しました])。
  `void`
  `setFilename(String fname)`
  【TAG】ﾌｧｲﾙを作成するときのﾌｧｲﾙ名をｾｯﾄします(初期値:null)。
  `void`
  `setFileURL(String url)`
  【TAG】読み取り元ﾃﾞｨﾚｸﾄﾘ名を指定します (初期値:FILE_URL[=])。
  `void`
  `setKeys(String key)`
  【TAG】XMLﾌｧｲﾙを読み取った後で指定するｷｰをCSV形式で複数指定します。
  `void`
  `setUseTimeStamp(String flag)`
  【TAG】ﾀｲﾑｽﾀﾝﾌﾟ管理を行うかどうか[true:行う/false:行わない]を指定します(初期値:false)。
  `void`
  `setUseTimeView(String flag)`
  【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=])。
  `void`
  `setVals(String val)`
  【TAG】XMLﾌｧｲﾙを読み取った後で指定する値をCSV形式で複数指定します。
  `String`
  `toString()`
  このｵﾌﾞｼﾞｪｸﾄの文字列表現を返します。

  ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

  `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport

  `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport

  `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

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

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

  ### インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag

  `getParent, setPageContext, setParent`

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

  - ### DirectXMLSaveTag

    public DirectXMLSaveTag()
    ﾃﾞﾌｫﾙﾄｺﾝｽﾄﾗｸﾀｰ
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### doEndTag

    public int doEndTag()
    Taglibの終了ﾀｸﾞが見つかったときに処理する doEndTag() を ｵｰﾊﾞｰﾗｲﾄﾞします。
    定義:
      `doEndTag` インタフェース内 `Tag`
    オーバーライド:
      `doEndTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示
    変更履歴:
      4.0.0.0 (2007/10/18) ﾒｯｾｰｼﾞﾘｿｰｽ統合( getResource().getMessage ⇒ getResource().getLabel ), 4.0.0.1 (2007/12/03) try ～ catch ～ finally をきちんと行う。, 5.1.9.0 (2010/08/01) Transaction 対応, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.5.2.6 (2012/05/25) findbugs対応。例外経路で null 値を利用することが保証されています。, 5.6.6.1 (2013/07/12) caseKey 、caseVal 属性対応, 5.6.7.0 (2013/07/27) DDL（ﾃﾞｰﾀ定義言語：Data Definition Language）の処理件数追加, 6.0.2.0 (2014/09/19) useTimeStamp 属性追加。ﾀｲﾑｽﾀﾝﾌﾟ管理を行うかどうか, 6.3.5.1 (2015/08/16) doStartTag() 削除に伴う、dyStart の移動。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。

  - ### release2

    protected void release2()
    ﾀｸﾞﾘﾌﾞｵﾌﾞｼﾞｪｸﾄをﾘﾘｰｽします。 ｷｬｯｼｭされて再利用されるので、ﾌｨｰﾙﾄﾞの初期設定を行います。
    オーバーライド:
      `release2` クラス内 `CommonTagSupport`
    変更履歴:
      4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更, 6.0.0.0 (2014/04/11) filename の初期値を、ｼｽﾃﾑﾌﾟﾛﾊﾟﾃｨｰのFILE_FILENAME から null に変更, 6.0.0.0 (2014/04/11) displayMsg の初期値を、MSG0040 から MSG0003 に変更, 6.0.2.0 (2014/09/19) useTimeStamp 属性追加。ﾀｲﾑｽﾀﾝﾌﾟ管理を行うかどうか

  - ### setDbid

    public void setDbid(String id)
    【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT)。
    パラメータ:
      `id` - ﾃﾞｰﾀﾍﾞｰｽ接続ID
    説明:
      検索時のDB接続IDを指定します。初期値は、DEFAULT です。

  - ### setFileURL

    public void setFileURL(String url)
    【TAG】読み取り元ﾃﾞｨﾚｸﾄﾘ名を指定します (初期値:FILE_URL[=])。
    パラメータ:
      `url` - ﾌｧｲﾙURL
    関連項目:
      - `SystemData.FILE_URL`
    変更履歴:
      4.0.0.0 (2007/11/20) 指定されたﾃﾞｨﾚｸﾄﾘ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。, 6.4.2.1 (2016/02/05) URLの最後に、"/" を追加する処理を廃止。
    説明:
      この属性で指定されるﾃﾞｨﾚｸﾄﾘより、ﾌｧｲﾙを読み取ります。 指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、２文字目が、 ":" (Windows)の場合は、指定のURLそのままのﾃﾞｨﾚｸﾄﾘに、そうでない場合は、 fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のﾌｫﾙﾀﾞの下に、 さらに、各個人ID別のﾌｫﾙﾀﾞの下より、読み取ります。 (初期値:ｼｽﾃﾑ定数のFILE_URL[=])。

  - ### setFilename

    public void setFilename(String fname)
    【TAG】ﾌｧｲﾙを作成するときのﾌｧｲﾙ名をｾｯﾄします(初期値:null)。
    パラメータ:
      `fname` - ﾌｧｲﾙ名
    変更履歴:
      6.0.0.0 (2014/04/11) filename の初期値を、ｼｽﾃﾑﾌﾟﾛﾊﾟﾃｨｰのFILE_FILENAME から null に変更
    説明:
      ﾌｧｲﾙを作成するときのﾌｧｲﾙ名をｾｯﾄします。 (初期値:null)。

  - ### setDisplayMsg

    public void setDisplayMsg(String id)
    【TAG】query の結果を画面上に表示するﾒｯｾｰｼﾞIDを指定します(初期値:MSG0003[ﾌｧｲﾙの登録が完了しました])。
    パラメータ:
      `id` - 処理結果表示ﾒｯｾｰｼﾞID
    説明:
      ここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したﾒｯｾｰｼﾞをﾘｿｰｽから取得して 表示します。 表示させたくない場合は, displayMsg = "" をｾｯﾄしてください。 初期値は、検索件数を表示します。 ※ この属性には、ﾘｸｴｽﾄ変数({@XXXX})は使用できません。

  - ### setKeys

    public void setKeys(String key)
    【TAG】XMLﾌｧｲﾙを読み取った後で指定するｷｰをCSV形式で複数指定します。
    パラメータ:
      `key` - ﾘﾝｸ先に渡すｷｰ
    関連項目:
      - `setVals(String)`
    説明:
      XMLﾌｧｲﾙを読み取った後で、ﾃﾞｰﾀを変更できます。 変更するｶﾗﾑ名(ｷｰ)をCSV形式で指定します。 XMLﾌｧｲﾙにｷｰが存在していた場合は、vals で指定の値に書き換えます。 ｷｰが存在していない場合は、ここで指定するｷｰと値が、ﾃﾞｰﾀとして 追加されます。 例えば、登録日や、登録者、または、ﾃﾝﾌﾟﾚｰﾄより各ｼｽﾃﾑID毎に 登録するなどの使い方を想定しています。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとﾃﾞｰﾀ自身にｶﾝﾏを持っている場合に分解をﾐｽる為です。

  - ### setVals

    public void setVals(String val)
    【TAG】XMLﾌｧｲﾙを読み取った後で指定する値をCSV形式で複数指定します。
    パラメータ:
      `val` - keys属性に対応する値
    関連項目:
      - `setKeys(String)`
    説明:
      XMLﾌｧｲﾙを読み取った後で、ﾃﾞｰﾀを変更できます。 変更する値をCSV形式で指定します。 XMLﾌｧｲﾙにｷｰが存在していた場合は、vals で指定の値に書き換えます。 ｷｰが存在していない場合は、ここで指定するｷｰと値が、ﾃﾞｰﾀとして 追加されます。 例えば、登録日や、登録者、または、ﾃﾝﾌﾟﾚｰﾄより各ｼｽﾃﾑID毎に 登録するなどの使い方を想定しています。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとﾃﾞｰﾀ自身にｶﾝﾏを持っている場合に分解をﾐｽる為です。

  - ### setUseTimeStamp

    public void setUseTimeStamp(String flag)
    【TAG】ﾀｲﾑｽﾀﾝﾌﾟ管理を行うかどうか[true:行う/false:行わない]を指定します(初期値:false)。
    パラメータ:
      `flag` - ﾀｲﾑｽﾀﾝﾌﾟ管理 [true:行う/false:行わない]
    変更履歴:
      6.0.2.0 (2014/09/19) 新規追加
    説明:
      useTimeStamp=true の場合、登録の実行有無の判断は、ﾌｧｲﾙの更新時刻より判断します。 これは、読み取りﾌｧｲﾙの更新時刻が、０でない場合、読み取りを行います。 読み取りが完了した場合は、更新時刻を ０ に設定します。 つまり、一度しか読み込まないように制御できます。 useTimeStamp=false の場合は、無条件に読み込みます。

  - ### setUseTimeView

    public void setUseTimeView(String flag)
    【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=])。
    パラメータ:
      `flag` - 処理時間を表示 [true:する/false:しない]
    変更履歴:
      6.3.6.0 (2015/08/16) useTimeView の初期値を、VIEW_USE_TIMEBAR にする。
    説明:
      true に設定すると、処理時間を表示するﾊﾞｰｲﾒｰｼﾞが表示されます。 これは、DB検索、APｻｰﾊﾞｰ処理、画面表示の各処理時間をﾊﾞｰｲﾒｰｼﾞで 表示させる機能です。処理時間の目安になります。 (初期値:VIEW_USE_TIMEBAR[=])。

  - ### toString

    public String toString()
    このｵﾌﾞｼﾞｪｸﾄの文字列表現を返します。 基本的にﾃﾞﾊﾞｯｸﾞ目的に使用します。
    オーバーライド:
      `toString` クラス内 `CommonTagSupport`
    戻り値:
      このｸﾗｽの文字列表現
    このﾒｿｯﾄﾞは、nullを返しません