#?SuikaWiki/0.9 [1] ,返値型 ,関数名 ,引数 ,典拠 ,boolean ,[[boolean]] ,"(object) ",[CORE] ,number ,[[ceiling]] ,"(number) ",[CORE] ,string ,[[concat]] ,"(string, string, string*)",[CORE] ,boolean ,[[contains]] ,"(string, string) ",[CORE] ,number ,[[count]] ,"(node-set) ",[CORE] ,[[node-set]] ,[[current]] ,"() ",[XSLT] ,node-set ,[[document]] ,"(object, node-set?) ",[XSLT] ,[[boolean]] ,[[element-available]],"(string) ",[XSLT] ,location-set ,[[end-point]] ,"(location-set) ",[XPTR] ,boolean ,[[false]] ,"() ",[CORE] ,number ,[[floor]] ,"(number) ",[CORE] ,[[string]],[[format-number]],"([[number]], string, string?)",[XSLT] ,boolean ,[[function-available]],"(string) ",[XSLT] ,string ,[[generate-id]] ,"(node-set?) ",[XSLT] ,location-set ,[[here]] ,"() ",[XPTR] ,node-set ,[[id]] ,"(object) ",[CORE] ,node-set ,[[key]] ,"(string, object) ",[XSLT] ,boolean ,[[lang]] ,"(string) ",[CORE] ,number ,[[last]] ,"() ",[CORE] ,string ,[[local-name]] ,"(node-set?) ",[CORE] ,string ,[[name]] ,"(node-set?) ",[CORE] ,string ,[[namespace-uri]],"(node-set?) ",[CORE] ,string ,[[normalize-space]],"(string?) ",[CORE] ,boolean ,[[not]] ,"(boolean) ",[CORE] ,number ,[[number]] ,"(object?) ",[CORE] ,location-set ,[[origin]] ,"() ",[XPTR] ,number ,[[position]] ,"() ",[CORE] ,[[location-set]],[[range]] ,"(location-set) ",[XPTR] ,location-set ,[[range-inside]],"(location-set) ",[XPTR] ,location-set ,[[range-to]] ,"(location-set) ",[XPTR] ,number ,[[round]] ,"(number) ",[CORE] ,location-set ,[[start-point]] ,"(location-set) ",[XPTR] ,boolean ,[[starts-with]] ,"(string, string) ",[CORE] ,string ,[[string]] ,"(object?) ",[CORE] ,number ,[[string-length]],"(string?) ",[CORE] ,location-set ,[[string-range]],"(location-set, string, number?, number?)",[XPTR] ,string ,[[substring]] ,"(string, number, number?)",[CORE] ,string ,[[substring-after]],"(string, string) ",[CORE] ,string ,[[substring-before]],"(string, string) ",[CORE] ,number ,[[sum]] ,"(node-set) ",[CORE] ,[[object]] ,[[system-property]],"(string) ",[XSLT] ,string ,[[translate]] ,"(string, string, string)",[CORE] ,boolean ,[[true]] ,"() ",[CORE] ,string ,[[unparsed-entity-uri]],"(string) ",[XSLT] [2] 仕様: :[CORE]:''XML Path Language (XPath): Core Function Library'' :[XPtr]:''XPointer xpointer() Scheme'' :[XSLT]:''XSL Transformations (XSLT): Additional Functions'' - [3] XPath に慣れると当然のことになってしまいますが、最初は XPath (経路指定) になぜ関数があるのか不思議におもうかもしれません。関数を使用することで、 (プログラム言語の[[条件分岐]]などの機能を使って) 複数個の経路指定を使う必要があったものを、一度の経路指定にまとめることができます。 - [4] 例えば、 「[SAMP(XPath)[child::foo]] が幾つかあるうちの最初の要素の [SAMP(XPath)[child::bar]]」を、 [SAMP(XPath)[child::foo[position() = 1]/child::bar]] と書くことが出来ます。 - [5] [[MSXML]] の XSLT 実装では、 [CODE(XML)[[VAR(NSPFX)[msxml]]:[[script]]]] 要素の中で定義した [[JavaScript]] などの関数を任意の名前空間と結合して XPath の関数として使うことが出来ます。 - [6] ''JXPath - JXPath User's Guide'' - [7] >>5 ''MSXML4.0を用いたXSLT変換 - Personnel'' - [8] 中核関数ライブラリの関数は全ての XPath 応用で実装することになっています。