パッケージ org.opengion.fukurou.xml

クラス XSLT

java.lang.Object
org.opengion.fukurou.xml.XSLT

public class XSLT extends Object
XML 入力ファイルに、XSL 入力ファイルを適用して、XSLT変換を行います。 結果は、XML 出力ファイルにセーブします。 各ファイルの代わりに、Writer,Reader を設定することも可能です。 このパーサーでは、内部で実行中の入力ファイル情報を パラメータとして設定できます。 useFileInfo( true ) とセットすると、以下の4項目が内部的にセットされます。 ただし、この設定が可能なのは、XML 入力ファイルに、Reader ではなく、ファイル名を 渡した場合のみです。ストリームの場合は、各種情報は取れません。 入力ファイル(inXMLのフルパス) : FILEPATH (例: G:\webapps\gf\jsp\DOC10\query.jsp) 入力親フォルダ(inXMLの親フォルダ) : ADDRESS (例: DOC10) 入力ファイル(inXMLのファイル名) : FILENAME (例: query.jsp) 入力ファイル(inXMLの更新日付 ) : MODIFIED (例: yyyyMMddHHmmss形式) xsl ファイルでは、パラメータ は、xsl:param で宣言し、xsl:value-of で取り出します。 <xsl:param name="ADDRESS" select="" /> と宣言しておき、必要な箇所で <xsl:value-of select="$ADDRESS" /> とすれば、取得できます。 String inXSTL = "inXSLfile.xsl" ; // 入力XSLファイル String outFile = "outXMLfile.xml" ; // 出力XMLファイル String inXML = "inXMLfile.xml" ; // 入力XMLファイル XSLT xslt = new XSLT(); xslt.setXslFile( inXSTL ); xslt.setOutFile( outFile,false ); xslt.transform( inXML );
導入されたバージョン:
JDK5.0,
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final String
    初期 ENCODE 名 "UTF-8"
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
    デフォルトコンストラクター
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    入力XSLファイルのストリームを閉じます。
    void
    errClose(boolean flag)
    transform 処理中にエラーが発生した場合に、出力ファイルを閉じるかどうかを指定します。
    void
    jspInclude(boolean flag)
    jsp:directive.include 発見時に、そのファイルを INCLUDE するかを指定するかどうかを指定します(初期値:true:使用する) 引数の処理対象ファイル(transformの引数ファイル)が、『.jsp』の場合、 jsp:directive.include 発見時に、そのファイルを INCLUDE するかを指定するか どうかを指定します。
    static void
    main(String[] args)
    テスト用のメインメソッド。
    void
    setOutData(String outData)
    結果XML ライターに、指定のデータを書き出します。
    void
    結果XML データを出力する、Writer を指定します。
    void
    setOutFile(String file, boolean append)
    結果XML ファイル名と、そのオープン方法を指定します。
    void
    Transformer オブジェクトに対して、Parameter を設定します。
    void
    jspInclude=true 時に、/jsp/common/** 等の include ファイルが存在しない場合の共有取得場所を指定します。
    void
    入力XSLリーダーを、指定します。
    void
    入力XSLファイルを、指定します。
    このオブジェクトの内部文字列表現を返します。
    void
    transform(Reader xmlReader)
    XML ファイルをXSLT変換します。
    void
    XML ファイルをXSLT変換します。
    void
    useEncode(String encode)
    ファイル名指定で XML,XSL,OUTファイルを指定する場合のエンコードを指定します。
    void
    useErrXmlIn(boolean flag)
    transform 処理中エラーを、出力ファイルに、XML形式でエラーを追記するかどうかを指定します。
    void
    useFileInfo(boolean flag)
    実行中の入力ファイル名などの属性情報を パラメータとして設定するかどうかを指定します。

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

  • コンストラクタの詳細

    • XSLT

      public XSLT()
      デフォルトコンストラクター
      変更履歴:
      8.5.3.2 (2023/10/13) JDK21対応。警告: デフォルトのコンストラクタの使用で、コメントが指定されていません
  • メソッドの詳細

    • setXslFile

      public void setXslFile(String file)
      入力XSLファイルを、指定します。
      パラメータ:
      file - 入力XSLファイル
      関連項目:
    • setXslFile

      public void setXslFile(Reader reader)
      入力XSLリーダーを、指定します。
      パラメータ:
      reader - 入力XSLリーダー
      関連項目:
    • setOutFile

      public void setOutFile(String file, boolean append)
      結果XML ファイル名と、そのオープン方法を指定します。 結果XML ファイルを、追記する(append=true)か新規作成する(append=false)か指定します。 なお、結果XML ファイル(outFile) を指定しない(=null)か、特別な名称 "System.out" 文字列を渡すと、標準出力に 結果を出力します。
      パラメータ:
      file - 出力ファイル名(null または、"System.out" 文字列時は、標準出力)
      append - [true]追記する/false:新規作成する]
    • setOutFile

      public void setOutFile(Writer writer)
      結果XML データを出力する、Writer を指定します。 ファイル、標準出力、JSPWriter など、必要に応じて Writer を作成してください。 標準出力(System.out)の場合は、NonClosePrintWriter クラスなどの非close()処理系を、 JSPWriterの場合は、NonFlushPrintWriter クラスなどの非flush()、close()処理系を、 使用してください。
      パラメータ:
      writer - 出力するWriter
    • setOutData

      public void setOutData(String outData)
      結果XML ライターに、指定のデータを書き出します。
      パラメータ:
      outData - 書き出すデータ
      変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
    • transform

      public void transform(String file)
      XML ファイルをXSLT変換します。 XML 入力ファイルに、XSL 入力ファイルを適用して、XSLT変換を行います。 結果は、XML ファイルにセーブします。 拡張子が『.jsp』で、かつ、isInclude=true の場合、jsp:directive.include 処理を行います。
      パラメータ:
      file - 入力XMLファイル
      変更履歴:
      4.2.3.0 (2008/05/26) jsp:directive.include 処理の実施可否を引数指定します。, 5.2.1.0 (2010/10/01) JspIncludeReader#getString の第3引数を廃止, 5.6.7.1 (2013/08/09) デバッグ用に、ファイルリストを取得しておきます。, 5.7.6.2 (2014/05/16) #transform( String , boolean ) 廃止。realPath 追加
    • transform

      public void transform(Reader xmlReader)
      XML ファイルをXSLT変換します。 XML 入力リーダーに、XSL 入力リーダーを適用して、XSLT変換を行います。 結果は、XML ライターに書き出します。 この処理の終了後に、入力XML リーダー は、close() されます。
      パラメータ:
      xmlReader - 入力XML リーダー
      関連項目:
      変更履歴:
      5.6.5.2 (2013/06/21) エラーメッセージが判りにくいので、追記します。, 5.6.7.1 (2013/08/09) デバッグ用に、ファイルリストを出力します。, 6.4.0.2 (2015/12/11) Transformer のエラーを、より詳細に出力します。, 8.5.4.2 (2024/01/12) エラー時の情報に 入力ファイル(xmlFile)があれば表示する。
    • setParamEntry

      public void setParamEntry(HybsEntry... entry)
      Transformer オブジェクトに対して、Parameter を設定します。 指定されたパラメーターキーは、xsl ファイルでは、xsl:param で宣言し、 xsl:value-of で取り出します。 <xsl:param name="ADDRESS" select="" /> と宣言しておき、必要な箇所で <xsl:value-of select="$ADDRESS" /> とすれば、取得できます。
      パラメータ:
      entry - HybsEntry配列(可変長引数)
    • errClose

      public void errClose(boolean flag)
      transform 処理中にエラーが発生した場合に、出力ファイルを閉じるかどうかを指定します。 処理途中でエラーが発生した場合に、そこで処理を中断するか、それとも、 無視して、さらに処理を進めるかを指定することが可能です。 継続して処理を進めたい場合は、出力ファイルを閉じないため、false を 設定します。ただし、エラー時には、RuntimeException は throw されます。 初期値は、true(閉じる)です。
      パラメータ:
      flag - エラー時クローズ [true:閉じる/false:閉じない]
    • useErrXmlIn

      public void useErrXmlIn(boolean flag)
      transform 処理中エラーを、出力ファイルに、XML形式でエラーを追記するかどうかを指定します。 処理途中でエラーが発生した場合に、ログだけではなく、結果XMLファイルに、 エラー内容や、エラーファイルなどを埋め込むと、XMLファイルとしてDB登録や、 その他集計等に使えます。 今は、GE70 スキーマ形式のファイルしか作成できません。 これは、#errClose( boolean ) メソッドと共に使用すると効果的です。 つまり、errClose = false; にして、エラー時でも出力ファイルを閉じずに、 処理を続ける事で、エラーメッセージもXMLファイルとして蓄積できます。 初期値は、false(使用しない)です。
      パラメータ:
      flag - エラー時XML形式 [false:使用しない/true:使用する]
    • jspInclude

      public void jspInclude(boolean flag)
      jsp:directive.include 発見時に、そのファイルを INCLUDE するかを指定するかどうかを指定します(初期値:true:使用する) 引数の処理対象ファイル(transformの引数ファイル)が、『.jsp』の場合、 jsp:directive.include 発見時に、そのファイルを INCLUDE するかを指定するか どうかを指定します。 インクルードされたファイルとあわせて、正規のXML にならないと、パーサー エラーが発生します。 JSPソース解析を行うには、INCLUDE ファイルも考慮しないと正確な結果を 得られませんが、INCLUDE 先のファイルまで合わせる必要があるため、 場合によっては、INCLUDEファイルを無視しなければならないケースがあります。 初期値は、true(使用する)です。
      パラメータ:
      flag - エラー時XML形式 [false:使用しない/true:使用する]
    • setRealPath

      public void setRealPath(String path)
      jspInclude=true 時に、/jsp/common/** 等の include ファイルが存在しない場合の共有取得場所を指定します。 引数の処理対象ファイル(transformの引数ファイル)が、『.jsp』で、かつ、jspInclude=true の場合、 そのファイルを INCLUDE するのですが、/jsp/common/** 等の include ファイルは、 エンジン共通として、jspCommon6.x.x.x.jar で提供しています。 従来は、処理対象jspの相対パスで、../../../gf/jsp/commom/** を取り込んでいましたが、 Tomcat起動フォルダ以外のシステムのJSPチェックなどを行う場合は、gf フォルダが存在しない ケースがあります。 そこで、確実にgf が存在する、処理をキックしている環境の gf を使用するように変更します。 その環境とは、つまり、エンジン内部変数の REAL_PATH ですが、jsp などが実行していないと取得できません。
      パラメータ:
      path - /jsp/common/** 等の include ファイルの共有取得場所
    • close

      public void close()
      入力XSLファイルのストリームを閉じます。
      変更履歴:
      5.6.7.1 (2013/08/09) includeしたファイルのキャッシュをクリアします。
    • useFileInfo

      public void useFileInfo(boolean flag)
      実行中の入力ファイル名などの属性情報を パラメータとして設定するかどうかを指定します。 このパーサーでは、内部で実行中の入力ファイル情報を パラメータとして設定できます。 useFileInfo( true ) とセットすると、以下の4項目が内部的にセットされます。 入力ファイル(inXMLのフルパス) : FILEPATH (例: G:\webapps\gf\jsp\DOC10\query.jsp) 入力親フォルダ(inXMLの親フォルダ) : ADDRESS (例: DOC10) 入力ファイル(inXMLのファイル名) : FILENAME (例: query.jsp) 入力ファイル(inXMLの更新日付 ) : MODIFIED (例: yyyyMMddHHmmss形式)
      パラメータ:
      flag - セットする:true/セットしない:false
      変更履歴:
      4.0.0.0 (2007/09/25) ParameterMetaData を使用したパラメータ設定追加。, 5.5.7.2 (2012/10/09) HybsDateUtil を利用するように修正します。 xsl ファイルでは、xsl:param で宣言し、xsl:value-of で取り出します。 <xsl:param name="ADDRESS" select="" /> と宣言しておき、必要な箇所で <xsl:value-of select="$ADDRESS" /> とすれば、取得できます。 初期値は、false(セットしない) です。
    • useEncode

      public void useEncode(String encode)
      ファイル名指定で XML,XSL,OUTファイルを指定する場合のエンコードを指定します。 初期値は、UTF-8 です。
      パラメータ:
      encode - エンコード
    • toString

      public String toString()
      このオブジェクトの内部文字列表現を返します。 接続URL + "," + 接続ユーザー + " (" + 作成日付 + ")" です。
      オーバーライド:
      toString クラス内 Object
      戻り値:
      内部文字列表現
      このメソッドは、nullを返しません
    • main

      public static void main(String[] args) throws IOException
      テスト用のメインメソッド。 java org.opengion.fukurou.xml.XSLT in_xml in_xsl out_xml
      パラメータ:
      args - コマンド引数配列
      例外:
      IOException - 入出力エラーが発生した場合