この規格ページの目次
17
X 4160 : 2007
関数 数値型 position()
position関数は,式評価文脈から文脈位置に等しい数値を返す。
関数 数値型 count(ノード集合型)
count関数は,引数であるノード集合の中のノード数を返す。
関数 ノード集合型 id(オブジェクト型)
id関数は,一意ID(5.2.1参照)によって要素を選択する。idへの引数がノード集合型の場合,結
果は,引数であるノード集合の中の各ノードの文字列値にidを適用した結果の和集合とする。idへの
引数がそれ以外の型の場合,その引数は,string関数への呼出しによるものとして文字列に変換する。
その文字列は,空白で区切られたトークンのリストに分ける。空白は,JIS X 4159の生成規則Sに,
JIS X 4159で定義するとおりにマッチする文字の列とする。結果は,リストの中のトークンに等しい
一意IDをもつ要素であって,文脈ノードと同じ文書の中にある要素を含むノード集合とする。
a) d("foo") は,一意ID foo をもつ要素を選択する。
b) d("foo")/child::para[position()=5] は,一意ID foo をもつ要素の子である5番目の para を選択す
る。
関数 文字列型 local-name(ノード集合型 ・)
local-name関数は,引数であるノード集合の中の文書順(箇条5参照)で最初のノードの展開名の
局所部分を返す。引数のノード集合が空か,又は最初のノードが展開名をもたない場合には,空文字
列が返される。引数が省略された場合には,文脈ノードを唯一のメンバとするノード集合を既定の引
数として用いる。
関数 文字列型 namespace-uri(ノード集合型 ・)
namespace-uri関数は,引数であるノード集合の中の文書順で最初のノードの展開名の名前空間URI
を返す。引数のノード集合が空,最初のノードが展開名をもたない,又は展開名の名前空間URIがヌ
ルの場合には,空文字列が返される。引数が省略された場合には,文脈ノードを唯一のメンバとする
ノード集合を既定の引数として用いる。
注記 namespace-uri関数が返す文字列は,要素ノード及び属性ノード以外については空になる。
関数 文字列型 name(ノード集合型 ・)
name関数は,引数であるノード集合の中の文書順で最初のノードの展開名を表現するQNameを含
む文字列を返す。QNameは,展開名で表現するノード上の実効的な名前空間宣言に関するその展開名
を表現しなければならない。通常は,これは,XMLソースに出現したQNameになる。複数の接頭辞
を同じ名前空間に関連付ける複数の名前空間宣言がそのノード上に存在する場合には,そうなる必要
はない。しかし,実装は,ノードのその表現の中に元々の接頭辞についての情報を含めてもよい。こ
の場合,実装は,返す文字列が常にXMLソースの中で使用しているQNameと確実に同じになるよう
にできる。引数であるノード集合が空か,又は最初のノードが展開名をもたない場合,空文字列を返
す。引数を省略した場合には,文脈ノードを唯一のメンバとするノード集合を既定の引数として用い
る。
注記 name関数が返す文字列は,要素ノード及び属性ノード以外については,local-name関数が返
す文字列と同じになる。
4.2 文字列型関数
関数 文字列型 string(オブジェクト型 ・)
string関数は,次のとおりに,オブジェクトを文字列に変換する。
――――― [JIS X 4160 pdf 21] ―――――
18
X 4160 : 2007
a) ノード集合は,そのノード集合の中の文書順で最初のノードの文字列値を返すことによって,
文字列に変換する。ノード集合が空の場合には,空文字列を返す。
b) 数値は,次の文字列に変換する。
1) aNは,文字列 NaN に変換する。
2) 正の0は,文字列 0 に変換する。
3) 負の0は,文字列 0 に変換する。
4) 正の無限大は,文字列 Infinity に変換する。
5) 負の無限大は,文字列 -Infinity に変換する。
6) 数値が整数の場合,その数値は,10進小数点も先行する0もないNumberとして,10進形式
で表現する。数値が負の場合には,マイナス記号(-)を最初に付ける。
7) そうでない場合には,数値は,10進小数点の前に少なくとも一つの数字をもち,10進小数点
の後に少なくとも一つの数字をもつ10進小数点を含んだNumberとして,10進形式で表現す
る。数値が負の場合には,マイナス記号(-)を最初に付ける。10進小数点の直前の必す(須)
の一つの数字以外は,10進小数点の前に先行する0が存在してはならない。10進小数点の後
の必す(須)の一つの数字以外に,その数値をすべての他のIEEE 754数値から一意に区別す
るために必要とする,より多くの,しかし必要な個数だけの数字が存在しなければならない。
c) 論理型の偽の値は,文字列 false に変換する。論理型の真の値は,文字列 true に変換する。
d) これらの基本型以外の型のオブジェクトは,その型に依存する方法で,文字列に変換する。
引数を省略した場合には,文脈ノードを唯一のメンバとするノード集合を既定の引数として用いる。
注記 string 関数は,利用者への表示のために数値を文字列に変換することを意図してはいない。
JIS X 4169における format-number 関数及び xsl:number 要素が,この機能を提供する。
関数 文字列型 concat(文字列型, 文字列型, 文字列型*)
concat関数は,その引数の(文字列の)連結を返す。
注記 concat関数における記法“*”の意味は,W3CのXPathの原勧告及びErrataにおいて定義さ
れていない。XPathの開発者,利用者,既存のXPathの処理系などから調査した結果では,3
番目以降の引数として“文字列型”を0個以上とってよいことを示すと思われる。例えば,
五つの文字列を連結したい場合には,concatに五つの文字列型の引数を与えてよいことを示
す。最初及び2番目の引数には“*”が付いていないことに注意する。すなわちconcatは,
少なくとも二つの引数をもつ。
関数 論理型 starts-with(文字列型, 文字列型)
starts-with関数は,最初の引数の文字列が2番目の文字列の引数で開始する場合に,真を返す。そう
でない場合に,偽を返す。2番目の引数の文字列が空文字列の場合,真を返す。
関数 論理型 contains(文字列型, 文字列型)
contains関数は,最初の引数の文字列が2番目の引数の文字列を含む場合に,真を返す。そうでな
い場合に,偽を返す。2番目の引数の文字列が空文字列の場合,真を返す。
関数 文字列型 substring-before(文字列型, 文字列型)
substring-before関数は,最初の引数の文字列の中における2番目の引数の文字列の最初の出現に先
行する最初の引数の文字列の部分文字列を返す。最初の引数の文字列が2番目の引数の文字列を含ま
ない場合には,空文字列を返す。例えば,substring-before("1999/04/01","/") は,1999 を返す。2番目
の引数の文字列が空文字列の場合,空文字列を返す。
――――― [JIS X 4160 pdf 22] ―――――
19
X 4160 : 2007
関数 文字列型 substring-after(文字列型, 文字列型)
substring-after関数は,最初の引数の文字列の中における2番目の引数の文字列の最初の出現に続く
最初の引数の文字列の部分文字列を返す。最初の引数の文字列が2番目の引数の文字列を含まない場
合には,空文字列を返す。例えば,substring-after("1999/04/01","/") は,"04/01" を返し,substring-after
("1999/04/01","19") は,"99/04/01" を返す。2番目の引数の文字列が空文字列の場合,最初の引数の文
字列を返す。
関数 文字列型 substring(文字列型, 数値型, 数値型 ・)
substring関数は,2番目の引数で指定した位置から開始する3番目の引数で指定した長さをもつ最
初の引数の文字列の部分文字列を返す。例えば,substring("12345",2,3) は,"234" を返す。3番目の引
数を指定しない場合には,2番目の引数で指定した位置から開始しその文字列の最後まで続く(最初
の引数の文字列の)部分文字列を返す。例えば,substring("12345",2) は,"2345" を返す。
より正確には,文字列(3.6参照)における各々の文字は,一つの数値的な位置をもつ。すなわち,
最初の文字の位置は1とし,2番目の文字の位置は2とし,以下同様とする。
注記 これは,Java及びECMAScriptとは異なっている。これらでは,String.substring メソッドが,
最初の文字の位置を0として取り扱う。
返す部分文字列は,文字の位置が,2番目の引数の丸められた値以上になる文字を含み,更に,3
番目の引数を指定した場合には,文字の位置が,2番目の引数の丸められた値と3番目の引数の丸め
られた値との合計よりも小さな文字(だけ)を含む。これらに使用される比較及び加算は,規定IEEE
754の規則に従う。丸めは,round関数の呼出しによるものとして行われる。次の例は,さまざまな通
常ではない場合を示す。
例
substring("12345", 1.5, 2.6) は,"234" を返す。
substring("12345", 0, 3) は,"12" を返す。
substring("12345", 0 div 0, 3) は,"" を返す。
substring("12345", 1, 0 div 0) は,"" を返す。
substring("12345", -42, 1 div 0) は,"12345" を返す。
substring("12345", -1 div 0, 1 div 0) は,"" を返す。
関数 数値型 string-length(文字列型 ・)
string-length関数は,文字列(3.6 参照)の中の文字の個数を返す。引数を省略した場合には,文字
列に変換した文脈ノード,言い換えると,文脈ノードの文字列値,を既定の引数として用いる。
関数 文字列型 normalize-space(文字列型 ・)
normalize-space関数は,引数の文字列を,先行する空白及び後続する空白を取り除き空白文字の列
を一つのスペースに置き換えることによって正規化された空白をもつ文字列にして返す。空白文字は,
JIS X 4159におけるSの生成規則によって規定するものと同じとする。引数を省略した場合には,文
字列に変換された文脈ノード,言い換えると,文脈ノードの文字列値,を既定の引数として用いる。
関数 文字列型 translate(文字列型, 文字列型, 文字列型)
translate関数は,2番目の引数の文字列の中の文字の,最初の引数の文字列の中での出現を,3番目
の引数の文字列の中の対応する位置にある文字で置き換えて返す。例えば,translate("bar","abc","ABC")
は,文字列 BAr を返す。(2番目の引数の文字列が3番目の引数の文字列よりも長いために,)3番目
の引数の文字列の中の対応する位置に文字がない,2番目の引数の文字列の中の文字が存在する場合
――――― [JIS X 4160 pdf 23] ―――――
20
X 4160 : 2007
には,最初の引数の文字列の中のその文字の出現は取り除かれる。例えば,translate
("--aaa--","abc-","ABC") は,"AAA" を返す。一つの文字が2番目の引数の文字列の中に一回よりも多
く出現する場合には,最初の出現が,その置換する文字を決定する。3番目の引数の文字列が2番目
の引数の文字列よりも長い場合には,余分な文字は無視する。
注記 translate関数は,すべての言語における大文字及び小文字の変換のための十分な解ではない。
XPathの将来の版は,大文字及び小文字の変換のための追加関数を提供するかもしれない。
4.3 論理型関数
関数 論理型 boolean(オブジェクト型)
boolean関数は,次のとおりに,その引数を論理型に変換する。
a) 数値は,正の0,負の0又はNaNのいずれでもない場合に限り,真とする。
b) ノード集合は,空でない場合に限り,真とする。
c) 文字列は,その長さが0でない場合に限り,真とする。
d) これらの基本型以外の型であるオブジェクトは,その型に依存する方法で論理型に変換する。
関数 論理型 not(論理型)
not関数は,その引数が偽の場合に真を返し,そうでない場合に偽を返す。
関数 論理型 true()
true関数は,真を返す。
関数 論理型 false()
false関数は,偽を返す。
関数 論理型 lang(文字列型)
lang関数は,xml:lang 属性によって指定した文脈ノードの言語が引数の文字列によって指定した言
語と同じ又はそれの部分言語(sublanguage)になっているかどうかに依存して,真又は偽を返す。文脈
ノードの言語は,その文脈ノードの xml:lang 属性の値によって決定するか,又は文脈ノードが
xml:lang 属性をもたない場合には,その文脈ノードの xml:lang 属性をもつ直近の祖先における
xml:lang 属性の値によって決定する。それらの属性が存在しない場合には,lang関数は,偽を返す。
それらの属性が存在する場合には,その属性値が大文字及び小文字を無視した引数に等しいとき,又
は - で開始する添え字が存在し,その属性値の添え字を無視し大文字及び小文字を無視した引数にそ
の属性値が等しいとき,真を返す。
例
lang("en") は,文脈ノードが次の五つの要素のいずれかである場合に,真を返す。
<para xml:lang="en"/>
<div xml:lang="en"><para/></div>
<para xml:lang="EN"/>
<para xml:lang="en-us"/>
4.4 数値型関数
関数 数値型 number(オブジェクト型 ・)
number関数は,次のとおりに,その引数を数値に変換する。
a) 任意選択の空白,任意選択のマイナス記号,Number及び空白がこの順序で続く文字列は,
(IEEE 754の直近への丸め規則に従って,)その文字列が表現する数学的な値に最も近いIEEE
754の数値に変換する。それ以外の文字列は,NaNに変換する。
――――― [JIS X 4160 pdf 24] ―――――
21
X 4160 : 2007
b) 論理型の真は,1に変換する。論理型の偽は,0に変換する。
c) ノード集合は,最初にstring関数への呼出しによるものとして文字列に変換し,次に文字列引
数と同じ方法で変換する。
d) これらの基本型以外の型のオブジェクトは,その型に依存する方法で数値に変換する。
引数を省略した場合には,文脈ノードを唯一のメンバとするノード集合を既定の引数として用いる。
注記 number関数は,XML文書の中の要素が言語中立のフォーマットで数値データを表現する型
になっていない場合,その要素に出現する数値データを変換するために使用しないほうがよ
い。言語中立のフォーマットの数値データは,通常は,利用者に表示するために言語特有の
フォーマットに変換される。さらに,number関数は,その要素が使用する言語中立のフォー
マットがNumberのためのXPath構文と矛盾する場合には,使用できない。
関数 数値型 sum(ノード集合型)
sum関数は,引数のノード集合の中の各ノードに対して,そのノードの文字列値を数値に変換した
結果の合計を返す。
関数 数値型 floor(数値型)
floor関数は,その引数より大きくない整数である最大の(正の無限大に最も近い)数値を返す。引
数がNaNの場合,NaNを返す。引数が正の無限大の場合,正の無限大を返す。引数が負の無限大の
場合,負の無限大を返す。引数が正の0の場合,正の0を返す。引数が負の0の場合,負の0を返す。
引数が0よりも大きいが1よりも小さい場合,正の0を返す。
関数 数値型 ceiling(数値型)
ceiling関数は,その引数より小さくない整数である最小の(負の無限大に最も近い)数値を返す。
引数がNaNの場合,NaNを返す。引数が正の無限大の場合,正の無限大を返す。引数が負の無限大
の場合,負の無限大を返す。引数が正の0の場合,正の0を返す。引数が負の0の場合,負の0を返
す。引数が0よりも小さいが-1よりも大きい場合,負の0を返す。
関数 数値型 round(数値型)
round関数は,その引数に最も近い整数の数値を返す。そのような二つの数値が存在する場合には,
正の無限大に最も近いものを返す。引数がNaNの場合には,NaNを返す。引数が正の無限大の場合
には,正の無限大を返す。引数が負の無限大の場合には,負の無限大を返す。引数が正の0の場合に
は,正の0を返す。引数が負の0の場合には,負の0を返す。引数が0よりも小さいが,-0.5以上の
場合には,負の0を返す。
注記 これらの最後の二つの場合については,round関数を呼び出した結果は,0.5を加えてその次
にfloor関数を呼び出した結果と同じではない。
5 データモデル
XPathは,木としてのXML文書を操作する。箇条5では,どのようにしてXPathがXML文書を木とし
てモデル化するかを示す。このモデルは,単に概念的なものであって,何らかの特別な実装を強制するわ
けではない。このモデルの,XML情報集合 [XML Infoset] に対する関係は,附属書Bに示す。
XPathによって操作されるXML文書は,XML名前空間の規格JIS X 4158に適合しなければならない。
木はノードを含む。ノードには次の七つの型がある。
a) ルートノード
b) 要素ノード
――――― [JIS X 4160 pdf 25] ―――――
次のページ PDF 26
JIS X 4160:2007の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.30 : 情報,ドキュメンテーション及び出版業務におけるITの応用
JIS X 4160:2007の関連規格と引用規格一覧
- 規格番号
- 規格名称