XPath1

XPath 1.0

[55] XPath 1.0 は、 XML文書節点文字列数値その他の演算のための式言語です。

[86] XSLT 1.0DOM XPath で使われています。

仕様書

[87] 仕様書は1999年のW3C勧告以来ほぼメンテナンスされていません。 HTML Standard に若干の修正が含まれていますが、それでも Webブラウザーの実装とは細かな差異があります。しかし、 XML コミュニティーは XDM によって置き換えたつもりの XPath 1.0 を改訂する意思はなく、 Web コミュニティーにとってもさほど利用されず優先度が低い機能であり、 実情に合わせて改訂しようとする動きはありません。

[88] そうはいってもすぐに廃止するほどは利用頻度も低くないので、 いつの日か改めて厳密に文書化されることもあろうと期待したいところです。

データモデル

[116] XPath 1.0データモデル参照。

式言語

[117] 節点を選択するXPath 1.0 本体で規定されています。

[118] の一部の機能に限定され一致する節点を選ぶパターンXSLT 1.0 で規定されています。

[119] XSLT 1.0 では NodeTest のリストの構文が使われています。

[120] XSLT 1.0 では Number実数の構文が使われています。

[122] XPath 1.0の構文も参照。

メモ

[1] Latest topics > Past > 2005 > 05 - outsider reflex http://piro.sakura.ne.jp/latest/2005/05.html#d2

XPath式エディタ(Firefox/Mozilla専用)。

(名無しさん 2005-05-03 01:38:19 +00:00)

[2] XUL Apps > Tiny Applications > XPath式エディタ - outsider reflex http://piro.sakura.ne.jp/xul/applications/xpath/ (名無しさん)

[3] XPath 1.0 の構文やデータモデルで XML 1.0 を参照していて XML 1.1 と非互換なことが問題になっていましたが、 XML 1.1 でも使えることに決まったようです。

Errata in REC-xpath-19991116 http://www.w3.org/1999/11/REC-xpath-19991116-errata/#20051103 2005年11月2日の項を参照。

(名無しさん 2005-11-10 11:48:34 +00:00)

[4] http://www.y-adagio.com/public/standards/jis_xpath/jis_xpath.zip

この規格は,1999年11月にWorld Wide Web Consortium(W3C)から公表されたXML Path Language (XPath) Version 1.0 勧告を翻訳し,その後に発行されたErrataを取り込んで,技術的内容を変更することなく作成した日本工業規格である。

XML文書の中の名前空間宣言において指定された名前空間名は,[RFC3986](及び[RFC3987])において定義されるとおりのURI参照(及びIRI参照)とする。

いつそんな正誤票が発行されたの? (名無しさん 2006-08-06 07:28:49 +00:00)

[5] RFC 4661XPath 1.0部分集合を定義しています。 (名無しさん)

[6] Web Services Policy 1.5 - Framework http://www.w3.org/TR/2006/WD-ws-policy-20060927/#Notational_Conventions は説明のために XPath 1.0 の拡張を使っています。 拡張可能性点を示すために、 HORIZONTAL ELLIPSE{any}@{any} を使っています。

(名無しさん)

[7] Web Services Policy 1.5 - Attachment http://www.w3.org/TR/2006/WD-ws-policy-attach-20060927/#NotationalConventions (名無しさん)

[8] Content Selection for Device Independence (DISelect) 1.0 http://www.w3.org/TR/2006/WD-cselection-20061010/#sec-expressions (名無しさん)

[9] Remote Events for XML (REX) 1.0 http://www.w3.org/TR/2006/WD-rex-20061013/#path-syntax (名無しさん 2006-10-24 13:20:44 +00:00)

[10] Internationalization Tag Set (ITS) Version 1.0 http://www.w3.org/TR/2006/CR-its-20061102/#def-adding-pointing (名無しさん 2006-11-04 13:05:24 +00:00)

[11] XProc: An XML Pipeline Language http://www.w3.org/TR/2006/WD-xproc-20061117/ (名無しさん 2006-11-19 05:15:39 +00:00)

[12] 日本工業標準調査会標準部会情報技術専門委員会(第12回) 議事要旨−審議会−経済産業省 http://www.meti.go.jp/kohosys/committee/summary/0002210/

資料4「TR X0089 XMLパス言語(XPath)1.0」の公表

文中に記述されている構文規則名を日本語に訳し構文規則は英語のままであると、その両者の繋がりが分かり難く記述を修正すべきではないかとの意見(藤村委員)があったが、修正に時間が掛かりTRの公表が遅れることはTRの性格上好ましくないので、今後の改訂の際に修正することとなった。

これはひどい。

[121] これに限らず JIS TR は品質が低すぎる。

[13] XForms 1.0XForms 1.1 (名無しさん)

[14] WS-Topics 1.3 http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf は、話題式として、 XPath 1.0 そのものおよびその部分集合の合計4種類のの形式を定義しています。

(名無しさん)

[15] WS-ResourceProperties では XPath 1.0 を使うことができます。 (名無しさん)

[16] XML::XPathEngine - a re-usable XPath engine for DOM-like trees - search.cpan.org (2007-01-07 12:56:27 +09:00 版) http://search.cpan.org/~mirod/XML-XPathEngine-0.07/lib/XML/XPathEngine.pm

正規表現演算子として =~, !~, /.../imx を追加しています。

(名無しさん)

[17] あ、 s もおk (名無しさん)

[18] Tree::XPathEngine - a re-usable XPath engine - search.cpan.org (2007-01-07 12:59:05 +09:00 版) http://search.cpan.org/~mirod/Tree-XPathEngine-0.05/lib/Tree/XPathEngine.pm#XPath_extension

>>16-17 に同じ。

[59] >>18NCName の定義が仕様とは異なる独自の正規表現になっており、また設定により変更できます。

[61] PPIx::XPath - search.cpan.org ( 版) http://search.cpan.org/dist/PPIx-XPath/lib/PPIx/XPath.pm

[62] >>61>>18PDOM (Perl コード木構造で表したもの) に適用しています。

[63] Email::MIME::XPath - search.cpan.org ( 版) http://search.cpan.org/dist/Email-MIME-XPath/lib/Email/MIME/XPath.pm

[64] >>63>>18MIMEメッセージに適用しています。

[57] Class::XPath - search.cpan.org ( 版) http://search.cpan.org/dist/Class-XPath/XPath.pm

[58] >>57XPath 1.0部分集合を実装していますが、 context position0-indexed で、 Perl配列のように -1 (= last()) のような表記を使えます。

[60] >>57NCName の定義が仕様とは異なっていて Unicode には対応していないとされています。

[65] B::XPath - search.cpan.org ( 版) http://search.cpan.org/dist/B-XPath/lib/B/XPath.pm

[66] >>65>>57 を使って Perloptree (opcode木構造) に XPath を適用しています。

[19] SASL 1.0 (名無しさん)

[20] ISO/IEC 19757-3:2006 は XSLT 1.0 で使われているところの XPath 1.0既定照会言語としています。 (名無しさん)

[21] WSDM-MOWS 1.0 >>6 (名無しさん)

[22] WSDM-MUWS 1.0 >>6 (名無しさん)

[23] WSDM-MUWS では XPath 1.0 または XPath 2.0 が利用できます。 (名無しさん)

[24] State Chart XML (SCXML): State Machine Notation for Control Abstraction (2007-02-18 16:47:42 +09:00 版) http://www.w3.org/TR/2007/WD-scxml-20070221/#datamodel_content (名無しさん)

[25] Service Modeling Language, Version 1.0 (2007-03-08 06:10:40 +09:00 版) http://www.w3.org/Submission/2007/SUBM-sml-20070321/#Rules

[37] Service Modeling Language, Version 1.1 ( 版) http://www.w3.org/TR/2009/REC-sml-20090512/#Identity_Constraints_Schema_Validity_Rules

[38] Service Modeling Language, Version 1.1 ( 版) http://www.w3.org/TR/2009/REC-sml-20090512/#SMLXPath1_Scheme

[26] Internationalization Tag Set (ITS) Version 1.0 (2007-04-03 18:11:18 +09:00 版) http://www.w3.org/TR/2007/REC-its-20070403/#datacategory-locations

XPath 1.0 or its successor

(名無しさん)

[27] Content Selection for Device Independence (DISelect) 1.0 (2007-07-16 22:52:02 +09:00 版) http://www.w3.org/TR/2007/CR-cselection-20070725/#sec-expressions (名無しさん)

[28] Web Services Policy 1.5 - Framework (2007-08-29 09:56:07 +09:00 版) http://www.w3.org/TR/2007/REC-ws-policy-20070904/#Notational_Conventions (名無しさん)

[29] Web Services Policy 1.5 - Attachment (2007-08-29 10:10:17 +09:00 版) http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904/#NotationalConventions (名無しさん)

[30] Schema Centric Canonicalization (2006-11-02 16:10:17 +09:00 版) http://uddi.org/pubs/SchemaCentricCanonicalization-20020710.htm#sec-Conversion-Node-set-Infoset

XPath 1.0 節点集合からXML情報集合への変換方法が規定されています。

また、この仕様では XPath 1.0 を使うことができます。 (名無しさん)

[31] RFC 5261XPath 1.0 を使っているようですが、 名前空間の解釈など元々の XPath 仕様と異なる部分があります。 (名無しさん)

[32] >>31 RFC 5261XPath 1.0 とも XPath 2.0 とも異なると書いているけど、 XPath 2.0 とは同じような・・・。

[33] Web Services Resource Transfer (WS-RT) ( 版) http://www.w3.org/Submission/WSRT/

XPath 1.0 を使うことができます。また、 XPath Level 1 と呼ばれる部分集合を定義しており、それを使うこともできます。

[34] SMIL 3.0 State ( 版) http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-state.html

[35] SMIL 3.0 Language Profile ( 版) http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-profile.html#SMILProfileNS-state-language

[36] X Sharp/XPath ( 版) http://wiki.codeglide.com/X_Sharp/XPath

In addition to the operators included in XPath 1.0, X# includes:

  • Execution operator ">>"
  • Node generation operator ".."
  • Node wrapping operator "in"
  • Sorting operator "{}"

It also adds some XPath functions which are described in the following chapters.

[39] (X)HTML5 Tracking ( 版) http://html5.org/tools/web-apps-tracker?from=3799&to=3800

[40] XForms 1.1 ( 版) http://www.w3.org/TR/2009/REC-xforms-20091020/#expr

[41] XProc: An XML Pipeline Language ( 版) http://www.w3.org/TR/2010/REC-xproc-20100511/#xpath-context

[42] XProc: An XML Pipeline Language ( 版) http://www.w3.org/TR/2010/REC-xproc-20100511/#dt-empty-sequence

[43] XProc: An XML Pipeline Language ( 版) http://www.w3.org/TR/2010/REC-xproc-20100511/#empty-xpath-context

[44] RFC 6021 - Common YANG Data Types ( 版) http://tools.ietf.org/html/rfc6021

[45] MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.9 XML 関数 ( ( 版)) http://dev.mysql.com/doc/refman/5.1/ja/xml-functions.html

[46] Web Services Fragment (WS-Fragment) ( ( 版)) http://www.w3.org/TR/2011/REC-ws-fragment-20111213/#XPath10

[47] Web Services Eventing (WS-Eventing) ( ( 版)) http://www.w3.org/TR/2011/REC-ws-eventing-20111213/#Dialect

[48] Web Services Enumeration (WS-Enumeration) ( ( 版)) http://www.w3.org/TR/2011/REC-ws-enumeration-20111213/#Dialect

[49] XML Signature Streaming Profile of XPath 1.0 ( ( 版)) http://www.w3.org/TR/2012/CR-xmldsig-xpath-20120124/

[50] Web Application Description Language ( ( 版)) http://www.w3.org/Submission/2009/SUBM-wadl-20090831/#x3-270002.12.2

[56] XPath 1.0 in JavaScript • Cameron McCormack's blog ( ( 版)) http://mcc.id.au/xpathjs

[67] MarpaX::xPathLike - search.cpan.org ( 版) http://search.cpan.org/dist/MarpaX-xPathLike/lib/MarpaX/xPathLike.pod

[68] >>67 の「xPathLike」は XPath 1.0 に近い言語により Perl のデータ構造にアクセスするものjです。独自の関数演算子も追加されています。

[69] XML::TreePP::XMLPath - search.cpan.org ( ( 版)) http://search.cpan.org/~rglaue/XML-TreePP-XMLPath-0.72/lib/XML/TreePP/XMLPath.pm

[70] XML::Perl - search.cpan.org ( ( 版)) http://search.cpan.org/dist/XML-Perl/XML/Perl.pm

[71] HTML Standard ( ( 版)) http://www.whatwg.org/specs/web-apps/current-work/#template-XSLT-XPath

[72] RFC 5261 - An Extensible Markup Language (XML) Patch Operations Framework Utilizing XML Path Language (XPath) Selectors ( 版) http://tools.ietf.org/html/rfc5261#section-4

[73] >>72XPath 1.0 の変種を定義しています。

[74] XML-Signature Syntax and Processing ( ( 版)) http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/

[76] ( ( 版)) http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf#page=107

[77] Internationalization Tag Set (ITS) Version 1.0 ( ( 版)) http://www.w3.org/TR/its/#def-adding-pointing

[78] Internationalization Tag Set (ITS) Version 2.0 ( ( 版)) http://www.w3.org/TR/its20/#d0e2513

[79] Internationalization Tag Set (ITS) Version 2.0 ( ( 版)) http://www.w3.org/TR/its20/#html5-global-rules

[80] Defiant.js ( ( 版)) http://defiantjs.com/

[81] WebDriver ( ( 版)) https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#h4_xpath

[82] draft-mouat-xml-patch-00 - A delta format for XML documents ( ( 版)) https://tools.ietf.org/html/draft-mouat-xml-patch-00

[83] eXtensible Access Control Markup Language (XACML) Version 3.0 ( ( 版)) http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html#_Toc297001083

[84] eXtensible Access Control Markup Language (XACML) Version 3.0 ( ( 版)) http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html#_Toc297001083

[85] eXtensible Access Control Markup Language (XACML) Version 3.0 ( ( 版)) http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html#_Toc297001083

[89] XML Signature Syntax and Processing Version 2.0 ( 版) http://www.w3.org/2008/xmlsec/Drafts/xmldsig-core-20/#sec-XPath

[90] XML Signature Streaming Profile of XPath 1.0 ( 版) http://www.w3.org/TR/2013/NOTE-xmldsig-xpath-20130411/

The XML Security Working Group has agreed not to progress this XML Signature Streaming Profile of XPath 1.0 specification further as a Recommendation track document, electing to publish it as an informative Working Group Note.

[91] XPath Data Model for SCXML ( ( 版)) http://www.w3.org/TR/2015/NOTE-xpath-dm-20150806/

[92] DOM Event I/O Processor for SCXML ( ( 版)) http://www.w3.org/TR/2015/NOTE-dom-iop-20150806/

[93] XPath Data Model for SCXML ( ( 版)) http://www.w3.org/TR/2015/NOTE-scxml-xpath-dm-20150811/

[94] XPath Data Model for SCXML ( ( 版)) http://www.w3.org/TR/2015/NOTE-scxml-xpath-dm-20150811/

This Note was once published on 6 August 2015 as a First Public Working Group Note. However, after the publication we got comments that the Note's having a shortname of "xpath-dm" was misleading since the Note describes not the whole XPath data model but the XPath data model for SCXML. Therefore this Note is now republished with a clearer shortname of "scxml-xpath-dm" to avoid confusion.

[95] DOM Event I/O Processor for SCXML ( ( 版)) http://www.w3.org/TR/2015/NOTE-scxml-dom-iop-20150811/

This Note was once published on 6 August 2015 as a First Public Working Group Note. However, after the publication we got comments that the Note's having a shortname of "dom-iop" was misleading since the Note does not belog to the core set of the DOM specifications but describes the DOM I/O processor for SCXML. Therefore this Note is now republished with a clearer shortname of "scxml-dom-iop" to avoid confusion.

[96] IMPORTXML - ドキュメント エディタ ヘルプ ( 版) https://support.google.com/docs/answer/3093342?hl=ja

XPath_query - 構造化データで実行する XPath クエリです。

XPath について詳しくは、http://www.w3schools.com/xsl/xpath_intro.asp(英語)をご覧ください。

[97] Rewrite XPath Selector strategy ( (AutomatedTester著, )) https://github.com/w3c/webdriver/commit/9cf22343620b78ad18b46f99ae542fe49112727b

[98] RFC 7950 - The YANG 1.1 Data Modeling Language () https://tools.ietf.org/html/rfc7950#section-6.4

[99] Pointer Methods in RDF 1.0 () https://www.w3.org/TR/2017/NOTE-Pointers-in-RDF10-20170202/

2.3.1.1 XPathPointer Class

XPath Pointer - An expression pointer that makes use of XPath [XPath] expressions to point out parts of a document.

[100] Web Annotation Data Model () https://w3c.github.io/web-annotation/model/wd2/#h-xpath-selector

Another common method of selecting elements and content within a resource that supports the Document Object Model (DOM), such as documents in XML or HTML, is to use an XPath selection [DOM-Level-3-XPath]. XPath allows a great deal of flexibility when describing the path through the structure to the selected content. Results are not defined for when an XPath Selector is applied to a representation that does not conform to the DOM.

NOTE

Implementers should note that the HTML5 specification allows parsers to add elements into the DOM that are considered to be missing. XPaths should be constructed to include these elements, rather than from the element structure in the document.

NOTE

Implementers should use only commonly supported features of XPath that directly contribute to selection of an element or content in order to maximize interoperability between systems.

[101] XPath 1.0 本体ではなく DOM XPath を引用していますが、 DOM XPath のどの操作に対応するものなのかは明記されていません。空気を読めということなのでしょうか。 相互運用性とは (哲学)。

[102]DOM に適合しない表現」というのも意味不明です。 (選択子の利用に関する章にも同じ規定があります。選択子も参照。)

[103] 注記も何を言っているのか完全に意味不明です。 タグが省略されていてもHTML構文解析器が補うことがあるので、 直列化された文書に書かれているタグだけ考えた構造ではなく、 実際の要素の構造を考えて記述しろ、と言っているのでしょうか。 でもそうだとすると XPath 1.0 だけでなく選択子にも当てはまることなのに、 選択子の章には注記がないことが説明できず、やっぱり意味不明です。

[104] もう1つの注記は XPath の機能が実装によって異なることを示唆していますが、 そのような事実はあるのでしょうか。あるとすればどの機能なのでしょうか。 XPath 1.0 はそこまで大きな仕様でもなく、部分的な実装はあまり見たことがありませんが、 W3C の調査ではそうでもないということですよね。 それとも非標準の拡張のことを指しているのでしょうか。 具体例も何もないので意味がわかりません。 このような雑な注記では読者を惑わすだけで誰の得にもならなそうですが・・・。

[105] Web Annotation Vocabulary () https://w3c.github.io/web-annotation/vocab/wd/#h-xpathselector

[106] Selectors and States () https://w3c.github.io/web-annotation/selector-note/#h-xpathselector_def

Instance

An element of a group of Resources represented by a particular Class.

[108] Core XPath

[107] RXPath

[109] Schematron

[110] RFC 6020 - YANG - A data modeling language for NETCONF () https://tools.ietf.org/html/rfc6020#section-6.4

YANG relies on XML Path Language (XPath) 1.0 [XPATH] as a notation

for specifying many inter-node references and dependencies. NETCONF

clients and servers are not required to implement an XPath

interpreter, but MUST ensure that the requirements encoded in the

data model are enforced. The manner of enforcement is an

implementation decision. The XPath expressions MUST be syntactically

correct, and all prefixes used MUST be present in the XPath context

(see Section 6.4.1). An implementation may choose to implement them

by hand, rather than using the XPath expression directly.

[111] RFC 6020 - YANG - A data modeling language for NETCONF () https://tools.ietf.org/html/rfc6020#section-6.4

The mechanism for handling unprefixed names is adopted from XPath 2.0

[XPATH2.0], and helps simplify XPath expressions in YANG. No

ambiguity may ever arise because YANG node identifiers are always

qualified names with a non-null namespace URI.

[112] Business Document Naming and Design Rules Version 1.0 () http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.0/os/Business-Document-NDR-v1.0-os.html

[113] RFC 6241 - Network Configuration Protocol (NETCONF) () https://tools.ietf.org/html/rfc6241#section-4.3

Document type declarations (see Section 2.8 of

[W3C.REC-xml-20001006]) MUST NOT appear in NETCONF content.

[114] RFC 6241 - Network Configuration Protocol (NETCONF) () https://tools.ietf.org/html/rfc6241#section-8.9

[115] Microsummary XML grammar reference - Archive of obsolete content | MDN ( ()) https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Microsummary_topics/XML_grammar_reference

<condition> (optional)

An XPath boolean expression along with a conditional interval of time, in minutes, that must elapse between updates if the expression evaluates to true.

[123] XPL