ヘッダーをスキップ

Oracle XML Publisherユーザーズ・ガイド
リリース11i
B25754-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

XMLパブリッシャの拡張関数

この章では、次のトピックについて説明します。

拡張SQL関数

XMLパブリッシャによって、RTFテンプレートで使用するために一連のSQL関数が拡張されています。これらの拡張関数の構文は、次のとおりです。

<?xdofx:expression?>

次の表に、サポートされている関数を示します。

SQL文 使用方法 説明
2+3 <?xdofx:2+3?> 加算
2-3 <?xdofx:2-3?> 減算
2*3 <?xdofx:2*3?> 乗算
2/3 <?xdofx:2/3?> 除算
2**3 <?xdofx:2**3?> 指数
3||2 <?xdofx:3||2?> 連結
lpad('aaa',10,'.') <?xdofx:lpad('aaa',10,'.')?> lpad関数は、文字列の左側を一連の特定の文字で埋めます。lpad関数の構文は次のとおりです。
lpad(string1,padded_length,[pad_string])
string1は、(その左側の)文字を埋める文字列です。
padded_lengthは、戻される文字数です。
pad_stringは、string1の左側を埋める文字列です。
rpad('aaa',10,'.') <?xdofx:rpad('aaa',10,'.')?> rpad関数は、文字列の右側を一連の特定の文字で埋めます。
rpad関数の構文は次のとおりです。
rpad(string1,padded_length,[pad_string]).
string1は、(その右側の)文字を埋める文字列です。
padded_lengthは、戻される文字数です。
pad_stringは、string1の右側を埋める文字列です。
decode('xxx','bbb','ccc','xxx','ddd') <?xdofx:decode('xxx','bbb','ccc','xxx','ddd')?> decode関数には、IF-THEN-ELSE文の機能があります。decode関数の構文は次のとおりです。
decode(expression, search, result [,search, result]...[, default])
expressionは比較対象の値です。
searchは、expressionに対して比較される値です。
resultは、expressionがsearchと等しい場合に戻される値です。
一致しない場合はdefaultが戻されます。
Instr('abcabcabc','a',2) <?xdofx:Instr('abcabcabc','a',2)?> instr関数は、文字列内の部分文字列の位置を戻します。instr関数の構文は次のとおりです。
instr(string1,string2,[start_position],[nth_appearance])
string1は検索対象の文字列です。
string2は、string1内で検索される部分文字列です。
start_positionは、string1内の検索開始位置です。文字列の最初の位置は1です。start_positionがマイナスの場合は、string1の最後から逆にstart_positionの文字数が数えられ、string1の先頭方向に検索されます。
nth appearanceは、string2のn番目の出現を表します。
substr('abcdefg',2,3) <?xdofx:substr('abcdefg',2,3)?> substr関数を使用すると、文字列から部分文字列を抽出できます。substr関数の構文は次のとおりです。
substr(string, start_position, [length])
stringは、ソース文字列です。
start_positionは抽出開始位置です。文字列の最初の位置は常に1です。
lengthは、抽出する文字数です。
replace(name,'John','Jon') <?xdofx:replace(name,'John','Jon')?> replace関数は、文字列内の一続きの文字を別の一連の文字で置換します。replace関数の構文は次のとおりです。
replace(string1,string_to_replace,[replacement_string])
string1は、その中の一続きの文字が別の一連の文字で置換される文字列です。
string_to_replaceは、string1内で検索される文字列です。
replacement_stringはオプションです。string1内のすべてのstring_to_replaceがreplacement_stringで置換されます。
to_number('12345') <?xdofx:to_number('12345')?>  
to_char(12345) <?xdofx:to_char(12345)?>  
sysdate() <?xdofx:sysdate()?>  

次の表に、サポートされている組合せ関数を示します。

SQL文 使用方法
(2+3/4-6*7)/8 <?xdofx:(2+3/4-6*7)/8?>
lpad(substr('1234567890',5,3),10,'^') <?xdofx:lpad(substr('1234567890',5,3),10,'^')?>
decode('a','b','c','d','e','1')||instr('321',1,1) <?xdofx:decode('a','b','c','d','e','1')||instr('321',1,1)?>

XSLの同等要素

次の表に、XMLパブリッシャの簡略化された構文をXSLの同等要素とともに示します。

サポートされているXSL要素 説明 XMLパブリッシャ構文
<xsl:value-of select= "name"> プレースホルダの構文。 <?name?>
<xsl:apply-templates select="name"> 現行要素の子ノードにテンプレート・ルールを適用します。 <?apply:name?>
<xsl:copy-of select="name"> 現行ノードのコピーを作成します。 <?copy-of:name?>
<xsl:call-template name="name"> 現行のテンプレートに挿入/適用される名前付きテンプレートをコールします。 <?call:name?>
<xsl:sort select="name"> データセット内の要素に基づいてデータのグループをソートします。 <?sort:name?>
<xsl:for-each select="name"> 表出力の生成に使用されるグループのデータ行をループします。 <?for-each:name?>
<xsl:choose> 複数条件テストを表すためにwhenおよびotherwiseとともに使用されます。 <?choose?>
<xsl:when test="exp"> 複数条件テストを表すためにchooseおよびotherwiseとともに使用されます。 <?when:expression?>
<xsl:otherwise> 複数条件テストを表すためにchooseおよびwhenとともに使用されます。 <?otherwise?>
<xsl:if test="exp"> 条件付き書式設定に使用されます。 <?if:expression?>
<xsl:template name="name"> テンプレートの宣言。 <?template:name?>
<xsl:variable name="name"> ローカル変数またはグローバル変数の宣言。 <?variable:name?>
<xsl:import href="url"> スタイルシートの内容を別のスタイルシートにインポートします。 <?import:url?>
<xsl:include href="url"> スタイルシートを別のスタイルシートに組み込みます。 <?include:url?>
<xsl:stylesheet xmlns:x="url"> スタイルシートのルート要素を定義します。 <?namespace:x=url?>

FO要素の使用

RTFテンプレートのMicrosoft Wordフォームの各フィールド内で、ほとんどのFO要素を使用できます。次に示すFO要素は、XMLパブリッシャのRTFテンプレートで使用できるように拡張されています。XMLパブリッシャの構文は、いずれかのRTFテンプレート方式で使用できます。

XMLパブリッシャでサポートされるFO要素の全リストは、付録の「サポートされているXSL-FO要素」を参照してください。

FO要素 XMLパブリッシャ構文
<fo:page-number-citation ref-id="id"> <?fo:page-number-citation:id?>
<fo:page-number> <?fo:page-number?>
<fo:ANY NAME WITHOUT ATTRIBUTE> <?fo:ANY NAME WITHOUT ATTRIBUTE?>