XML Path Language
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/29 02:58 UTC 版)
XPath 2.0
XPath 2.0 は2007年1月23日に標準化団体 W3C で勧告された。 XQuery 1.0 は XPath 2.0 の拡張である。 また XPath 2.0 は XSLT 2.0 でも採用されている。
XPath 2.0 仕様は、1.0 と比べて大規模になっており非常に多くの機能が規定されている。 そのうち特に重要な変更は、多様なデータ型を扱えるようになったことである。 XPath 2.0 では、スキーマ言語 XML Schema で規定されている組み込みのアトミックデータ型と、スキーマで定義されたユーザ定義型を、扱うことができる。 あらゆる値は、シーケンスとして扱われる。 一つの文字列値やノードは、シーケンスに含まれる要素の一つと位置づけられる。 XPath 1.0 のノード集合は、XPath 2.0 では何らかの順序をもつシーケンスに、置き換わる。 多様な型を扱うために、XPath 2.0 では関数と演算子が大幅に拡張される。
XPath 2.0 は XQuery 1.0 のサブセットとなっている。
XPath 2.0 は XQuery 1.0 の構文のパス式を構成する。
XQuery 1.0 の FLWOR と呼ばれる式においては、for
句の構成要素となる。
XPath 3.0
この節の加筆が望まれています。 |
2014年4月8日に XPath 3.0 が勧告された。XQuery 3.0 は XPath 3.0 の拡張である。
実装
Java
javax.xml.xpath
[5] パッケージがあり、XPath 1.0 が実装されている。XPathFactory.newInstance().newXPath()
にて、XPath のインスタンスを作ることができ、XPath.evaluate()
にて XPath を評価できる。
JavaScript
HTML ではなく、一般の XML に関しては、XMLHttpRequest を使うと DOM木を作ることができ、どちらに対しても XPath が使える。Internet Explorer の場合は、XMLDomNode.selectNodes()
[6] にて XPath が使える。Internet Explorer 以外のブラウザでは、DOM Level 3 XPath の仕様通り、XPathEvaluator.evaluate()
[7] にて、XPath が扱える。
現在では、ブラウザ標準で XPath が使えるが、2007年くらいまでは、JavaScript で実装した XPath が作られていて、 JavaScript-XPath[8]やGoogle AJAXSLT[9]などが XPath を実装している。
XSLT処理系
XSLTでもノードの指定に XPath を用いる。XSLT処理系には以下のようなものがある。
- ウェブブラウザ
- Internet Explorer や Fiefox などのウェブブラウザでは、
xml-stylesheet
処理命令が中に書かれたXML文書を表示する場合、そのXML文書を指定されたXSLプログラムで処理して得られるXML文書を画面に表示する。 - xsltproc
- Linux に搭載された XSLT 処理系である。
- ^ a b XPath 1.0 仕様 (英語) - W3C (World Wide Web Consortium)
- ^ W3C の XPath 1.0 作業部会では、ジェームズ・クラークとスティーヴン・ディローズが共同でエディタを務めた。また XSLT 1.0 作業部会では、ジェームズ・クラークがエディタを務めた。
- ^ (株)日本ユニテックほか、2001年、p.66
- ^ (株)日本ユニテックほか、2001年、p.67
- ^ javax.xml.xpath (Java Platform SE 6)
- ^ selectNodes Method
- ^ evaluate - Document Object Model XPath
- ^ JavaScript-XPath
- ^ Google AJAXSLT
固有名詞の分類
- XML Path Languageのページへのリンク