diff --git a/java/external/xdocs/dom/xpath/Overview.html b/java/external/xdocs/dom/xpath/Overview.html new file mode 100644 index 0000000..a2e049b --- /dev/null +++ b/java/external/xdocs/dom/xpath/Overview.html @@ -0,0 +1,122 @@ + + + + + Document Object Model (DOM) Level 3 XPath Specification + + + + + + + + + + + + + + + +
+

+W3C

+

Document Object Model (DOM) Level 3 XPath Specification

+

Version 1.0

+

W3C Working Group Note 26 February 2004

+
This version:
+
http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226
Latest version:
+
http://www.w3.org/TR/DOM-Level-3-XPath
+
Previous version:
+ + +
http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331
+ +
+
Editor: +
Ray Whitmer, +Netscape/AOL, then Invited Expert
+
+ +

This document is also available in these non-normative formats: XML file, plain text, PostScript file, PDF file, single HTML file, and ZIP file.

+ +
+
+

Abstract

+
+

This specification defines the Document Object Model Level 3 XPath. It +provides simple functionalities to access a DOM tree using [XPath 1.0].

+

Status of this document

+
+

+ This section describes the status of this document at the + time of its publication. Other documents may supersede this + document. A list of current W3C publications and the latest + revision of this technical report can be found in the W3C technical reports index + at http://www.w3.org/TR/. +

+ This is a Working + Group Note of "DOM Level 3 XPath" and is based on the feedback + received during the Last Call period. The W3C DOM Working + Group participants do not expect to provide two interoperable + implementations of this module, using the same + binding. Implementation feedbacks are however welcome and + have to be sent to the public mailing list www-dom@w3.org (public archive). Other W3C Working Groups + may continue the work and provide implementations of this + document. +

+ Individuals or organizations are also invited to send a message + to the public mailing list if they intend to produce an + implementation of this module. +

+ Publication as a Working Group Note does not imply endorsement + by the W3C Membership. This is a draft document and may be + updated, replaced or obsoleted by other documents at any time. +

+ This document has been produced as part of the W3C DOM + Activity. The authors of this document are the DOM Working + Group members. +

+ An implementation + report is also available. +

+ Patent disclosures relevant to this specification may be found + on the Working Group's patent + disclosure page. +

+

Table of contents

+ + + + + + + diff --git a/java/external/xdocs/dom/xpath/W3C-WG-NOTE.css b/java/external/xdocs/dom/xpath/W3C-WG-NOTE.css new file mode 100644 index 0000000..057bb0f --- /dev/null +++ b/java/external/xdocs/dom/xpath/W3C-WG-NOTE.css @@ -0,0 +1,93 @@ + +/* Style for a "Working Group Note" */ + +/* + Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. + The following software licensing rules apply: + http://www.w3.org/Consortium/Legal/copyright-software */ + +/* $Id$ */ + +body { + padding: 2em 1em 2em 70px; + margin: 0; + font-family: sans-serif; + color: black; + background: white; + background-position: top left; + background-attachment: fixed; + background-repeat: no-repeat; +} +:link { color: #00C; background: transparent } +:visited { color: #609; background: transparent } +a:active { color: #C00; background: transparent } + +a:link img, a:visited img { border-style: none } /* no border on img links */ + +a img { color: white; } /* trick to hide the border in Netscape 4 */ +@media all { /* hide the next rule from Netscape 4 */ + a img { color: inherit; } /* undo the color change above */ +} + +th, td { /* ns 4 */ + font-family: sans-serif; +} + +h1, h2, h3, h4, h5, h6 { text-align: left } +/* background should be transparent, but WebTV has a bug */ +h1, h2, h3 { color: #005A9C; background: white } +h1 { font: 170% sans-serif } +h2 { font: 140% sans-serif } +h3 { font: 120% sans-serif } +h4 { font: bold 100% sans-serif } +h5 { font: italic 100% sans-serif } +h6 { font: small-caps 100% sans-serif } + +.hide { display: none } + +div.head { margin-bottom: 1em } +div.head h1 { margin-top: 2em; clear: both } +div.head table { margin-left: 2em; margin-top: 2em } + +p.copyright { font-size: small } +p.copyright small { font-size: small } + +@media screen { /* hide from IE3 */ +a[href]:hover { background: #ffa } +} + +pre { margin-left: 2em } +/* +p { + margin-top: 0.6em; + margin-bottom: 0.6em; +} +*/ +dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */ +dt { font-weight: bold } + +pre, code { font-family: monospace } /* navigator 4 requires this */ + +ul.toc { + list-style: disc; /* Mac NS has problem with 'none' */ + list-style: none; +} + +@media aural { + h1, h2, h3 { stress: 20; richness: 90 } + .hide { speak: none } + p.copyright { volume: x-soft; speech-rate: x-fast } + dt { pause-before: 20% } + pre { speak-punctuation: code } +} + + + +/* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. + The following software licensing rules apply: + http://www.w3.org/Consortium/Legal/copyright-software */ + +body { + background-image: url(./images/logo-WG-Note.gif); +} + diff --git a/java/external/xdocs/dom/xpath/acknowledgements.html b/java/external/xdocs/dom/xpath/acknowledgements.html new file mode 100644 index 0000000..47fe26e --- /dev/null +++ b/java/external/xdocs/dom/xpath/acknowledgements.html @@ -0,0 +1,102 @@ + + + + + Acknowledgements + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

Appendix D: Acknowledgements

+

Many people contributed to the DOM specifications (Level 1, 2 or 3), + including participants of the DOM Working Group and the DOM Interest Group. We + especially thank the following:

+ Andrew Clover, Andrew Watson (Object Management Group), Andy + Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM), + Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith + (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett + (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David + Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris + Dimitriadis (Improve AB and invited expert), Don Park (invited), + Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO), + Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared + Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe + Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia), + Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan + Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG), + Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad + Software Inc., former Chair), Laurence Cable (Sun), + Mark Davis (IBM), Mark Scardina (Oracle), Martin Dürst (W3C), + Mary Brady (NIST), Mick Goulish (Software AG), Mike Champion + (Arbortext and Software AG), Miles Sabin (Cromwell Media), Patti + Lutsky (Arbortext), Paul Grosso (Arbortext), Peter Sharpe (SoftQuad + Software Inc.), Phil Karlton (Netscape), Philippe Le Hégaret + (W3C, W3C Team Contact and former Chair), Ramesh + Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home, + and Netscape/AOL, Chair), Rezaur Rahman (Intel), Rich + Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe + (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon + Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu + (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod + Anupam (Lucent). +

+ Thanks to all those who have helped to improve this specification by + sending suggestions and corrections (Please, keep bugging us with your + issues!). +

+ Special thanks to the DOM + Conformance Test Suites contributors: Curt Arnold, Fred Drake, + Mary Brady (NIST), Rick Rivello (NIST), Robert Clary (Netscape). +

+
+

D.1 Production Systems

+

+ This specification was written in XML. The HTML, OMG IDL, Java and + ECMAScript bindings were all produced automatically. +

+ Thanks to Joe English, author of cost, which was used as the + basis for producing DOM Level 1. Thanks also to Gavin Nicol, who wrote + the scripts which run on top of cost. Arnaud Le Hors and Philippe Le + Hégaret maintained the scripts. +

+ After DOM Level 1, we used Xerces as the basis DOM + implementation and wish to thank the authors. Philippe Le Hégaret + and Arnaud Le Hors wrote the Java + programs which are the DOM application. +

+ Thanks also to Jan Kärrman, author of html2ps, which we use + in creating the PostScript version of the specification. +

+ + diff --git a/java/external/xdocs/dom/xpath/copyright-notice.html b/java/external/xdocs/dom/xpath/copyright-notice.html new file mode 100644 index 0000000..415c700 --- /dev/null +++ b/java/external/xdocs/dom/xpath/copyright-notice.html @@ -0,0 +1,223 @@ + + + + + W3C Copyright Notices and Licenses + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

W3C Copyright Notices and Licenses

+

+ Copyright © 2004 World + Wide Web Consortium, (Massachusetts Institute of + Technology, European + Research Consortium for Informatics and Mathematics, Keio University). All Rights + Reserved. +

+ This document is published under the W3C® Document Copyright Notice and License. The bindings within this document + are published under the W3C® Software Copyright Notice and License. + The software license requires "Notice of any changes or + modifications to the W3C files, including the date changes were + made." Consequently, modified versions of the DOM bindings must + document that they do not conform to the W3C standard; in the case + of the IDL definitions, the pragma prefix can no longer be + 'w3c.org'; in the case of the Java language binding, the package + names can no longer be in the 'org.w3c' package. +

+
+
+ +

Note: + This section is a copy of the W3C® Document + Notice and License and could be found at http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231. +

+

+ Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of + Technology, European + Research Consortium for Informatics and Mathematics, Keio University). All Rights + Reserved. +

+ http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231 +

+ Public documents on the W3C site are provided by the copyright + holders under the following license. By using and/or copying this + document, or the W3C document from which this statement is linked, + you (the licensee) agree that you have read, understood, and will + comply with the following terms and conditions: +

+ Permission to copy, and distribute the contents of this document, + or the W3C document from which this statement is linked, in any + medium for any purpose and without fee or royalty is hereby + granted, provided that you include the following on + ALL copies of the document, or portions thereof, that + you use: +

    +
  1. + + A link or URL to the original W3C document. +
  2. +
  3. + + The pre-existing copyright notice of the original author, or + if it doesn't exist, a notice (hypertext is preferred, but a + textual representation is permitted) of the form: + "Copyright © [$date-of-document] World Wide Web Consortium, + (Massachusetts Institute + of Technology, European Research Consortium for + Informatics and Mathematics, Keio University). All + Rights Reserved. http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231" +
  4. +
  5. + + If it exists, the STATUS of the W3C document. +
  6. +
+

+ When space permits, inclusion of the full text of this NOTICE should be provided. We request that + authorship attribution be provided in any software, documents, or other + items or products that you create pursuant to the implementation of the + contents of this document, or any portion thereof. +

+ No right to create modifications or derivatives of W3C documents is + granted pursuant to this license. However, if additional requirements + (documented in the Copyright + FAQ) are satisfied, the right to create modifications or + derivatives is sometimes granted by the W3C to individuals complying with + those requirements. +

+ THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE + NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT + LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT + ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH + CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + TRADEMARKS OR OTHER RIGHTS. +

+ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE + PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF. +

+ The name and trademarks of copyright holders may NOT be used in + advertising or publicity pertaining to this document or its contents + without specific, written prior permission. Title to copyright in this + document will at all times remain with copyright holders. +

+
+
+ +

Note: + This section is a copy of the W3C® Software + Copyright Notice and License and could be found at http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 +

+

+ Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of + Technology, European + Research Consortium for Informatics and Mathematics, Keio University). All Rights + Reserved. +

+ http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 +

+ This work (and included software, documentation such as READMEs, + or other related items) is being provided by the copyright holders + under the following license. By obtaining, using and/or copying + this work, you (the licensee) agree that you have read, + understood, and will comply with the following terms and + conditions. +

+ Permission to copy, modify, and distribute this software and its + documentation, with or without modification, for any purpose and + without fee or royalty is hereby granted, provided that you + include the following on ALL copies of the software and + documentation or portions thereof, including modifications: +

    +
  1. +The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work.
  2. +
  3. + + Any pre-existing intellectual property disclaimers, notices, + or terms and conditions. If none exist, the W3C® Short Software Notice should be included (hypertext + is preferred, text is permitted) within the body of any + redistributed or derivative code. +
  4. +
  5. + + Notice of any changes or modifications to the files, including + the date changes were made. (We recommend you provide URIs to + the location from which the code is derived.) +
  6. +
+

+ THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT + HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR + DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + TRADEMARKS OR OTHER RIGHTS. +

+ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR + DOCUMENTATION. +

+ The name and trademarks of copyright holders may NOT be used in + advertising or publicity pertaining to the software without specific, + written prior permission. Title to copyright in this software and any + associated documentation will at all times remain with copyright holders. +

+
+ +

Note: + This section is a copy of the W3C® Short Software + Notice and could be found at http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231 +

+

+ Copyright © 2004 World + Wide Web Consortium, (Massachusetts Institute of + Technology, European + Research Consortium for Informatics and Mathematics, Keio University). All Rights + Reserved. +

+ Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of + Technology, European + Research Consortium for Informatics and Mathematics, Keio University). All Rights + Reserved. This work is distributed under the W3C® + Software License [1] in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +

+ [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 +

+ + diff --git a/java/external/xdocs/dom/xpath/def-index.html b/java/external/xdocs/dom/xpath/def-index.html new file mode 100644 index 0000000..a1806f6 --- /dev/null +++ b/java/external/xdocs/dom/xpath/def-index.html @@ -0,0 +1,170 @@ + + + + + Index + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

+Index

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANY_TYPEANY_UNORDERED_NODE_TYPEAPI 1, +2
  +
BOOLEAN_TYPEbooleanValue
  +
createExpressioncreateNSResolver
  +
document elementdocument order 1, +2DOM Level 2 Core 1, +2, +3
DOM Level 3 Core 1, +2, +3
  +
ECMAScriptelement 1, +2, +3evaluate 1, +2
  +
FIRST_ORDERED_NODE_TYPE
  +
INVALID_EXPRESSION_ERRinvalidIteratorStateiterateNext
  +
Java
  +
live 1, +2logically-adjacent text nodes 1, +2lookupNamespaceURI
  +
model 1, +2
  +
namespace prefix 1, +2, +3, +4namespace URI 1, +2, +3, +4NUMBER_TYPE
numberValue
  +
OMG IDLORDERED_NODE_ITERATOR_TYPEORDERED_NODE_SNAPSHOT_TYPE
ownerElement
  +
read only node 1, +2resultType
  +
singleNodeValuesnapshotItemsnapshotLength
STRING_TYPEstringValue
  +
TYPE_ERR
  +
UNORDERED_NODE_ITERATOR_TYPEUNORDERED_NODE_SNAPSHOT_TYPE
  +
XML 1.0 1, +2, +3XML Information Set 1, +2XML Namespaces 1, +2, +3
XPath 1.0 1, +2, +3, +4, +5, +6, +7, +8, +9, +10, +11, +12XPATH_NAMESPACE_NODEXPathEvaluator
XPathExceptionXPathExpressionXPathNamespace
XPathNSResolverXPathResult
+
+ + diff --git a/java/external/xdocs/dom/xpath/ecma-script-binding.html b/java/external/xdocs/dom/xpath/ecma-script-binding.html new file mode 100644 index 0000000..e381359 --- /dev/null +++ b/java/external/xdocs/dom/xpath/ecma-script-binding.html @@ -0,0 +1,219 @@ + + + + + ECMAScript Language Binding + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

Appendix C: ECMAScript Language Binding

+

This appendix contains the complete ECMAScript [ECMAScript] binding for the Level 3 Document Object Model XPath + definitions.

+ +
+ +
Properties of the XPathException Constructor function:
+
+
+
XPathException.INVALID_EXPRESSION_ERR
+
+The value of the constant XPathException.INVALID_EXPRESSION_ERR is 51.
+
XPathException.TYPE_ERR
+
+The value of the constant XPathException.TYPE_ERR is 52.
+
+
Objects that implement the XPathException interface:
+
+
+
Properties of objects that implement the XPathException interface:
+
+
code
+
+ This property is +a Number.
+
+
+
Objects that implement the XPathEvaluator interface:
+
+
+
Functions of objects that implement the XPathEvaluator interface:
+
+
createExpression(expression, resolver)
+
This function returns an object that implements the XPathExpression interface.
The expression parameter is a String. +
The resolver parameter is an object that implements the XPathNSResolver interface. +
This function can raise an object that implements the XPathException interface or the DOMException interface.
+
createNSResolver(nodeResolver)
+
This function returns an object that implements the XPathNSResolver interface.
The nodeResolver parameter is an object that implements the Node interface. +
+
evaluate(expression, contextNode, resolver, type, result)
+
This function returns an object that implements the Object interface.
The expression parameter is a String. +
The contextNode parameter is an object that implements the Node interface. +
The resolver parameter is an object that implements the XPathNSResolver interface. +
The type parameter is a Number. +
The result parameter is an object that implements the Object interface. +
This function can raise an object that implements the XPathException interface or the DOMException interface.
+
+
+
+
Objects that implement the XPathExpression interface:
+
+
+
Functions of objects that implement the XPathExpression interface:
+
+
evaluate(contextNode, type, result)
+
This function returns an object that implements the Object interface.
The contextNode parameter is an object that implements the Node interface. +
The type parameter is a Number. +
The result parameter is an object that implements the Object interface. +
This function can raise an object that implements the XPathException interface or the DOMException interface.
+
+
+
+
Objects that implement the XPathNSResolver interface:
+
+
+
Functions of objects that implement the XPathNSResolver interface:
+
+
lookupNamespaceURI(prefix)
+
This function returns a String.
The prefix parameter is a String. +
+
+
+
+
Properties of the XPathResult Constructor function:
+
+
+
XPathResult.ANY_TYPE
+
+The value of the constant XPathResult.ANY_TYPE is 0.
+
XPathResult.NUMBER_TYPE
+
+The value of the constant XPathResult.NUMBER_TYPE is 1.
+
XPathResult.STRING_TYPE
+
+The value of the constant XPathResult.STRING_TYPE is 2.
+
XPathResult.BOOLEAN_TYPE
+
+The value of the constant XPathResult.BOOLEAN_TYPE is 3.
+
XPathResult.UNORDERED_NODE_ITERATOR_TYPE
+
+The value of the constant XPathResult.UNORDERED_NODE_ITERATOR_TYPE is 4.
+
XPathResult.ORDERED_NODE_ITERATOR_TYPE
+
+The value of the constant XPathResult.ORDERED_NODE_ITERATOR_TYPE is 5.
+
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE
+
+The value of the constant XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE is 6.
+
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE
+
+The value of the constant XPathResult.ORDERED_NODE_SNAPSHOT_TYPE is 7.
+
XPathResult.ANY_UNORDERED_NODE_TYPE
+
+The value of the constant XPathResult.ANY_UNORDERED_NODE_TYPE is 8.
+
XPathResult.FIRST_ORDERED_NODE_TYPE
+
+The value of the constant XPathResult.FIRST_ORDERED_NODE_TYPE is 9.
+
+
Objects that implement the XPathResult interface:
+
+
+
Properties of objects that implement the XPathResult interface:
+
+
resultType
+
+This read-only property is a Number.
+
numberValue
+
+This read-only property is a Number and can raise an object that implements the XPathException interface on retrieval.
+
stringValue
+
+This read-only property is a String and can raise an object that implements the XPathException interface on retrieval.
+
booleanValue
+
+This read-only property is a Boolean and can raise an object that implements the XPathException interface on retrieval.
+
singleNodeValue
+
+This read-only property is an object that implements the Node interface and can raise an object that implements the XPathException interface on retrieval.
+
invalidIteratorState
+
+This read-only property is a Boolean.
+
snapshotLength
+
+This read-only property is a Number and can raise an object that implements the XPathException interface on retrieval.
+
+
Functions of objects that implement the XPathResult interface:
+
+
iterateNext()
+
This function returns an object that implements the Node interface.
This function can raise an object that implements the XPathException interface or the DOMException interface.
+
snapshotItem(index)
+
This function returns an object that implements the Node interface.
The index parameter is a Number. +
This function can raise an object that implements the XPathException interface.
+
+
+
+
Properties of the XPathNamespace Constructor function:
+
+
+
XPathNamespace.XPATH_NAMESPACE_NODE
+
+The value of the constant XPathNamespace.XPATH_NAMESPACE_NODE is 13.
+
+
Objects that implement the XPathNamespace interface:
+
+
+
Objects that implement the XPathNamespace interface have all properties and functions of the Node interface as well as the properties and functions defined below.
+
Properties of objects that implement the XPathNamespace interface:
+
+
ownerElement
+
+This read-only property is an object that implements the Element interface.
+
+
+
+ +
+ +
+

Note: + The parameter resolver of the method + XPathEvaluator.evaluate is specified as an object + that implements the XPathNSResolver + interface. ECMAScript users can also pass to this method a + function which returns a String and takes a + String parameter instead of the + resolver parameter. +

+
+ + diff --git a/java/external/xdocs/dom/xpath/expanded-toc.html b/java/external/xdocs/dom/xpath/expanded-toc.html new file mode 100644 index 0000000..a176887 --- /dev/null +++ b/java/external/xdocs/dom/xpath/expanded-toc.html @@ -0,0 +1,112 @@ + + + + + Expanded Table of Contents + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

Expanded Table of Contents

+ + + + +
+ + diff --git a/java/external/xdocs/dom/xpath/glossary.html b/java/external/xdocs/dom/xpath/glossary.html new file mode 100644 index 0000000..06cd712 --- /dev/null +++ b/java/external/xdocs/dom/xpath/glossary.html @@ -0,0 +1,115 @@ + + + + + Glossary + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

+Glossary

+
+
Editors: +
Arnaud Le Hors, W3C
+
Robert S. Sutor, IBM Research (for DOM Level 1)
+
+

Some of the following term definitions have been borrowed or + modified from similar definitions in other W3C or standards documents. + See the links within the definitions for more information.

+
API
+
An API is an Application Programming + Interface, a set of functions or methods used to access some + functionality.
document element
+
+ There is only one document element in a Document. This + element node is a child of the Document node. See + Well-Formed XML + Documents in XML [XML 1.0]. +
document order
+
There is an ordering, document order, defined on all + the nodes in the document corresponding to the order in which the first + character of the XML representation of each node occurs in the XML + representation of the document after expansion of general entities. Thus, + the document element node + will be the first node. Element nodes occur before their children. Thus, + document order orders element nodes in order of the occurrence of their + start-tag in the XML (after expansion of entities). The attribute nodes + of an element occur after the element and before its children. The + relative order of attribute nodes is implementation-dependent.
element
+
Each document contains one or more elements, the + boundaries of which are either delimited by start-tags and + end-tags, or, for empty elements by an empty-element tag. + Each element has a type, identified by name, and may have a + set of attributes. Each attribute has a name and a value. + See Logical + Structures in XML [XML 1.0]. +
logically-adjacent text nodes
+
+ Logically-adjacent text nodes are Text + or CDATASection nodes that can be visited + sequentially in document + order or in reversed document order without entering, + exiting, or passing over Element, + Comment, or ProcessingInstruction + nodes. +
live
+
An object is live if any change to the underlying + document structure is reflected in the object.
model
+
A model is the actual data representation + for the information at hand. Examples are the structural + model and the style model representing the parse structure + and the style information associated with a document. The + model might be a tree, or a directed graph, or something + else.
namespace prefix
+
A namespace prefix is a string that associates + an element or attribute name with a namespace URI in + XML. See namespace + prefix in Namespaces in XML [XML Namespaces].
namespace URI
+
+ A namespace URI is a URI that identifies an XML + namespace. This is called the namespace name in + Namespaces in XML [XML Namespaces]. See also sections 1.3.2 "DOM + URIs" and 1.3.3 "XML + Namespaces" regarding URIs and namespace URIs + handling and comparison in the DOM APIs. +
read only node
+
A read only node is a node that is immutable. This + means its list of children, its content, and its attributes, when it + is an element, cannot be changed in any way. However, a read only node + can possibly be moved, when it is not itself contained in a read only + node.
+
+ + diff --git a/java/external/xdocs/dom/xpath/idl-definitions.html b/java/external/xdocs/dom/xpath/idl-definitions.html new file mode 100644 index 0000000..9adcb93 --- /dev/null +++ b/java/external/xdocs/dom/xpath/idl-definitions.html @@ -0,0 +1,153 @@ + + + + + IDL Definitions + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

Appendix A: IDL Definitions

+

This appendix contains the complete OMG IDL [OMG IDL] for + the Level 3 Document Object Model XPath definitions.

The IDL files are also available as: http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/idl.zip

xpath.idl:

+
+
+// File: xpath.idl
+
+#ifndef _XPATH_IDL_
+#define _XPATH_IDL_
+
+#include "dom.idl"
+
+#pragma prefix "dom.w3c.org"
+module xpath
+{
+
+  typedef dom::DOMString DOMString;
+  typedef dom::Node Node;
+  typedef dom::DOMObject DOMObject;
+  typedef dom::Element Element;
+
+  interface XPathNSResolver;
+  interface XPathExpression;
+
+  exception XPathException {
+    unsigned short   code;
+  };
+  // XPathExceptionCode
+  const unsigned short      INVALID_EXPRESSION_ERR         = 51;
+  const unsigned short      TYPE_ERR                       = 52;
+
+
+  interface XPathEvaluator {
+    XPathExpression    createExpression(in DOMString expression, 
+                                        in XPathNSResolver resolver)
+                                        raises(XPathException, 
+                                               dom::DOMException);
+    XPathNSResolver    createNSResolver(in Node nodeResolver);
+    DOMObject          evaluate(in DOMString expression, 
+                                in Node contextNode, 
+                                in XPathNSResolver resolver, 
+                                in unsigned short type, 
+                                in DOMObject result)
+                                        raises(XPathException, 
+                                               dom::DOMException);
+  };
+
+  interface XPathExpression {
+    DOMObject          evaluate(in Node contextNode, 
+                                in unsigned short type, 
+                                in DOMObject result)
+                                        raises(XPathException, 
+                                               dom::DOMException);
+  };
+
+  interface XPathNSResolver {
+    DOMString          lookupNamespaceURI(in DOMString prefix);
+  };
+
+  interface XPathResult {
+
+    // XPathResultType
+    const unsigned short      ANY_TYPE                       = 0;
+    const unsigned short      NUMBER_TYPE                    = 1;
+    const unsigned short      STRING_TYPE                    = 2;
+    const unsigned short      BOOLEAN_TYPE                   = 3;
+    const unsigned short      UNORDERED_NODE_ITERATOR_TYPE   = 4;
+    const unsigned short      ORDERED_NODE_ITERATOR_TYPE     = 5;
+    const unsigned short      UNORDERED_NODE_SNAPSHOT_TYPE   = 6;
+    const unsigned short      ORDERED_NODE_SNAPSHOT_TYPE     = 7;
+    const unsigned short      ANY_UNORDERED_NODE_TYPE        = 8;
+    const unsigned short      FIRST_ORDERED_NODE_TYPE        = 9;
+
+    readonly attribute unsigned short  resultType;
+    readonly attribute double          numberValue;
+                                        // raises(XPathException) on retrieval
+
+    readonly attribute DOMString       stringValue;
+                                        // raises(XPathException) on retrieval
+
+    readonly attribute boolean         booleanValue;
+                                        // raises(XPathException) on retrieval
+
+    readonly attribute Node            singleNodeValue;
+                                        // raises(XPathException) on retrieval
+
+    readonly attribute boolean         invalidIteratorState;
+    readonly attribute unsigned long   snapshotLength;
+                                        // raises(XPathException) on retrieval
+
+    Node               iterateNext()
+                                        raises(XPathException, 
+                                               dom::DOMException);
+    Node               snapshotItem(in unsigned long index)
+                                        raises(XPathException);
+  };
+
+  interface XPathNamespace : Node {
+
+    // XPathNodeType
+    const unsigned short      XPATH_NAMESPACE_NODE           = 13;
+
+    readonly attribute Element         ownerElement;
+  };
+};
+
+#endif // _XPATH_IDL_
+
+
+
+
+ + diff --git a/java/external/xdocs/dom/xpath/idl/xpath.idl b/java/external/xdocs/dom/xpath/idl/xpath.idl new file mode 100644 index 0000000..066f064 --- /dev/null +++ b/java/external/xdocs/dom/xpath/idl/xpath.idl @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2004 World Wide Web Consortium, + * + * (Massachusetts Institute of Technology, European Research Consortium for + * Informatics and Mathematics, Keio University). All Rights Reserved. This + * work is distributed under the W3C(r) Software License [1] in the hope that + * it will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + */ + +// File: http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/xpath.idl + +#ifndef _XPATH_IDL_ +#define _XPATH_IDL_ + +#include "dom.idl" + +#pragma prefix "dom.w3c.org" +module xpath +{ + + typedef dom::DOMString DOMString; + typedef dom::Node Node; + typedef dom::DOMObject DOMObject; + typedef dom::Element Element; + + interface XPathNSResolver; + interface XPathExpression; + + exception XPathException { + unsigned short code; + }; + // XPathExceptionCode + const unsigned short INVALID_EXPRESSION_ERR = 51; + const unsigned short TYPE_ERR = 52; + + + interface XPathEvaluator { + XPathExpression createExpression(in DOMString expression, + in XPathNSResolver resolver) + raises(XPathException, + dom::DOMException); + XPathNSResolver createNSResolver(in Node nodeResolver); + DOMObject evaluate(in DOMString expression, + in Node contextNode, + in XPathNSResolver resolver, + in unsigned short type, + in DOMObject result) + raises(XPathException, + dom::DOMException); + }; + + interface XPathExpression { + DOMObject evaluate(in Node contextNode, + in unsigned short type, + in DOMObject result) + raises(XPathException, + dom::DOMException); + }; + + interface XPathNSResolver { + DOMString lookupNamespaceURI(in DOMString prefix); + }; + + interface XPathResult { + + // XPathResultType + const unsigned short ANY_TYPE = 0; + const unsigned short NUMBER_TYPE = 1; + const unsigned short STRING_TYPE = 2; + const unsigned short BOOLEAN_TYPE = 3; + const unsigned short UNORDERED_NODE_ITERATOR_TYPE = 4; + const unsigned short ORDERED_NODE_ITERATOR_TYPE = 5; + const unsigned short UNORDERED_NODE_SNAPSHOT_TYPE = 6; + const unsigned short ORDERED_NODE_SNAPSHOT_TYPE = 7; + const unsigned short ANY_UNORDERED_NODE_TYPE = 8; + const unsigned short FIRST_ORDERED_NODE_TYPE = 9; + + readonly attribute unsigned short resultType; + readonly attribute double numberValue; + // raises(XPathException) on retrieval + + readonly attribute DOMString stringValue; + // raises(XPathException) on retrieval + + readonly attribute boolean booleanValue; + // raises(XPathException) on retrieval + + readonly attribute Node singleNodeValue; + // raises(XPathException) on retrieval + + readonly attribute boolean invalidIteratorState; + readonly attribute unsigned long snapshotLength; + // raises(XPathException) on retrieval + + Node iterateNext() + raises(XPathException, + dom::DOMException); + Node snapshotItem(in unsigned long index) + raises(XPathException); + }; + + interface XPathNamespace : Node { + + // XPathNodeType + const unsigned short XPATH_NAMESPACE_NODE = 13; + + readonly attribute Element ownerElement; + }; +}; + +#endif // _XPATH_IDL_ + diff --git a/java/external/xdocs/dom/xpath/images/logo-WG-Note.gif b/java/external/xdocs/dom/xpath/images/logo-WG-Note.gif new file mode 100644 index 0000000..ef2f608 Binary files /dev/null and b/java/external/xdocs/dom/xpath/images/logo-WG-Note.gif differ diff --git a/java/external/xdocs/dom/xpath/images/w3c_home.gif b/java/external/xdocs/dom/xpath/images/w3c_home.gif new file mode 100644 index 0000000..f4702b9 Binary files /dev/null and b/java/external/xdocs/dom/xpath/images/w3c_home.gif differ diff --git a/java/external/xdocs/dom/xpath/java-binding.html b/java/external/xdocs/dom/xpath/java-binding.html new file mode 100644 index 0000000..3818aff --- /dev/null +++ b/java/external/xdocs/dom/xpath/java-binding.html @@ -0,0 +1,185 @@ + + + + + Java Language Binding + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

Appendix B: Java Language Binding

+

This appendix contains the complete Java [Java] bindings + for the Level 3 Document Object Model XPath.

The Java files are also available as http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/java-binding.zip

+
+

B.1 Other XPath interfaces

+

org/w3c/dom/xpath/XPathException.java:

+
+
+package org.w3c.dom.xpath;
+
+public class XPathException extends RuntimeException {
+    public XPathException(short code, String message) {
+       super(message);
+       this.code = code;
+    }
+    public short   code;
+    // XPathExceptionCode
+    public static final short INVALID_EXPRESSION_ERR    = 51;
+    public static final short TYPE_ERR                  = 52;
+
+}
+
+
+

org/w3c/dom/xpath/XPathEvaluator.java:

+
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+public interface XPathEvaluator {
+    public XPathExpression createExpression(String expression, 
+                                            XPathNSResolver resolver)
+                                            throws XPathException, DOMException;
+
+    public XPathNSResolver createNSResolver(Node nodeResolver);
+
+    public Object evaluate(String expression, 
+                           Node contextNode, 
+                           XPathNSResolver resolver, 
+                           short type, 
+                           Object result)
+                           throws XPathException, DOMException;
+
+}
+
+
+

org/w3c/dom/xpath/XPathExpression.java:

+
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+public interface XPathExpression {
+    public Object evaluate(Node contextNode, 
+                           short type, 
+                           Object result)
+                           throws XPathException, DOMException;
+
+}
+
+
+

org/w3c/dom/xpath/XPathNSResolver.java:

+
+
+package org.w3c.dom.xpath;
+
+public interface XPathNSResolver {
+    public String lookupNamespaceURI(String prefix);
+
+}
+
+
+

org/w3c/dom/xpath/XPathResult.java:

+
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+public interface XPathResult {
+    // XPathResultType
+    public static final short ANY_TYPE                  = 0;
+    public static final short NUMBER_TYPE               = 1;
+    public static final short STRING_TYPE               = 2;
+    public static final short BOOLEAN_TYPE              = 3;
+    public static final short UNORDERED_NODE_ITERATOR_TYPE = 4;
+    public static final short ORDERED_NODE_ITERATOR_TYPE = 5;
+    public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+    public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7;
+    public static final short ANY_UNORDERED_NODE_TYPE   = 8;
+    public static final short FIRST_ORDERED_NODE_TYPE   = 9;
+
+    public short getResultType();
+
+    public double getNumberValue()
+                                     throws XPathException;
+
+    public String getStringValue()
+                                     throws XPathException;
+
+    public boolean getBooleanValue()
+                                     throws XPathException;
+
+    public Node getSingleNodeValue()
+                                     throws XPathException;
+
+    public boolean getInvalidIteratorState();
+
+    public int getSnapshotLength()
+                                     throws XPathException;
+
+    public Node iterateNext()
+                            throws XPathException, DOMException;
+
+    public Node snapshotItem(int index)
+                             throws XPathException;
+
+}
+
+
+

org/w3c/dom/xpath/XPathNamespace.java:

+
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public interface XPathNamespace extends Node {
+    // XPathNodeType
+    public static final short XPATH_NAMESPACE_NODE      = 13;
+
+    public Element getOwnerElement();
+
+}
+
+
+
+ + diff --git a/java/external/xdocs/dom/xpath/references.html b/java/external/xdocs/dom/xpath/references.html new file mode 100644 index 0000000..5a5a8be --- /dev/null +++ b/java/external/xdocs/dom/xpath/references.html @@ -0,0 +1,122 @@ + + + + + References + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

+References

+

+ For the latest version of any W3C specification please consult the list of + W3C Technical Reports available at + http://www.w3.org/TR. +

+
+

F.1 Normative references

+
[DOM Level 2 Core]
+ Document Object Model Level 2 Core + Specification, A. Le Hors, et al., Editors. World + Wide Web Consortium, 13 November 2000. This version of the DOM + Level 2 Core Recommendation is http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113. The latest version of + DOM Level 2 Core is available at + http://www.w3.org/TR/DOM-Level-2-Core. +
+
[ECMAScript]
+ +ECMAScript Language Specification, Third + Edition. European Computer Manufacturers Association, Standard + ECMA-262, December 1999. This version of the ECMAScript + Language is available from http://www.ecma-international.org/. +
+
[Java]
+ The Java Language Specification, J. + Gosling, B. Joy, and G. Steele, Authors. Addison-Wesley, + September 1996. Available at http://java.sun.com/docs/books/jls +
+
[OMG IDL]
+ "OMG IDL Syntax and Semantics" defined in + The Common Object Request Broker: Architecture and + Specification, version 2, Object Management + Group. The latest version of CORBA version 2.0 is available at + http://www.omg.org/technology/documents/formal/corba_2.htm. +
+
[XML Information Set]
+ XML Information Set (Second Edition), + J. Cowan and R. Tobin, Editors. World Wide Web Consortium, 4 + February 2004, revised 24 October 2001. This version of the XML + Information Set Recommendation is http://www.w3.org/TR/2004/REC-xml-infoset-20040204. The latest version of XML + Information Set is available at + http://www.w3.org/TR/xml-infoset. +
+
[XPath 1.0]
+ XML Path Language (XPath) Version 1.0, + J. Clark and S. DeRose, Editors. World Wide Web + Consortium, 16 November 1999. This version of the XPath 1.0 + Recommendation is http://www.w3.org/TR/1999/REC-xpath-19991116. The latest version of XPath + 1.0 is available at http://www.w3.org/TR/xpath. +
+
+
+

F.2 Informative references

+
[DOM Level 3 Core]
+ Document Object Model Level 3 Core + Specification, A. Le Hors, et al., Editors. World + Wide Web Consortium, February 2004. This version of the Document + Object Model Level 3 Core specification is + http://www.w3.org/TR/2004/PR-DOM-Level-3-Core-20040205. The latest version of + DOM Level 3 Core is available at + http://www.w3.org/TR/DOM-Level-3-Core. +
+
[XML 1.0]
+ Extensible Markup Language (XML) 1.0 (Third + Edition), T. Bray, J. Paoli, C. M. Sperberg-McQueen, + E. Maler, and F. Yergeau, Editors. World Wide Web Consortium, 4 + February 2004, revised 10 February 1998 and 6 October 2000. This + version of the XML 1.0 Recommendation is http://www.w3.org/TR/2004/REC-xml-20040204. The latest version of XML + 1.0 is available at http://www.w3.org/TR/REC-xml. +
+
[XML Namespaces]
+ Namespaces in XML, T. Bray, D. Hollander, + and A. Layman, Editors. World Wide Web Consortium, 14 January + 1999. This version of the Namespaces in XML Recommendation is + http://www.w3.org/TR/1999/REC-xml-names-19990114. The latest version of + Namespaces in XML is available at + http://www.w3.org/TR/REC-xml-names. +
+
+ + diff --git a/java/external/xdocs/dom/xpath/spec.css b/java/external/xdocs/dom/xpath/spec.css new file mode 100644 index 0000000..c68f8ba --- /dev/null +++ b/java/external/xdocs/dom/xpath/spec.css @@ -0,0 +1,92 @@ +h4 { + text-align: left; + font-family: sans-serif; + font-weight: normal; + color: #005A9C; +} +.idl-code { + font-family: monospace; + border: 1px solid black; + white-space: pre; + color: black; + background-color: #dfdfdf; +} +.idl-code a { + font-family: monospace; + color: black; + background-color: #dfdfdf; +} +.java-code { + font-family: monospace; + border: 1px solid black; + white-space: pre; + color: black; + background-color: #dfdfdf; +} +.code-block { + font-family: monospace; + border: 1px solid black; + white-space: pre; + color: black; + background-color: #dfdfdf; +} + + +.ecma-block { + border: 1px solid black; + padding: 0.5em; + color: black; + background-color: #dfdfdf; +} + + +.interface-name { + font-weight: bold +} + +.attribute-name { + color: black; + background-color: #FFFFD2; +} + +.constant-name { + color: black; + background-color: #DDFFD2; +} + +.method-name { + color: black; + background-color: #D9E6F8; +} + +.parameter-name { + color: black; + background-color: #FEE6F8; +} + +ul.toc, ol.toc {list-style: none} +div.toc ul ul, div.toc ol ol {margin-left: 0} +div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em} +div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0} +li.tocline1 {font-weight: bold} +li.tocline2 {font-weight: normal} +li.tocline4 {font-style: italic} + +code { font-family: monospace } + +div.paramtable { margin-left: 1em } +div.returntable { margin-left: 1em } +div.exceptiontable { margin-left: 1em } + +/* default alignment for tables */ +table { + margin-bottom: 1em; +} + +td { + vertical-align: middle; +} + +p.first:first-letter { + font-size: 200%; +} diff --git a/java/external/xdocs/dom/xpath/xpath.html b/java/external/xdocs/dom/xpath/xpath.html new file mode 100644 index 0000000..8e9fb45 --- /dev/null +++ b/java/external/xdocs/dom/xpath/xpath.html @@ -0,0 +1,1068 @@ + + + + + Document Object Model XPath + + + + + + + + + + + + + + + +
+

26 February 2004

+
+ +
+

1. +Document Object Model XPath

+
Editor: +
Ray Whitmer, Netscape/AOL
+
+
+

Table of contents

+ +
+ +
+

1.1 +Introduction

+ XPath 1.0 [XPath 1.0] is becoming an important part of a + variety of many specifications including XForms, XPointer, XSL, XML + Query, and so on. It is also a clear advantage for user applications + which use DOM to be able to use XPath expressions to locate nodes + automatically and declaratively.

+ This specification was created to map between the Document Object + Model's representation of the W3C Information Set and XPath's + model to permit XPath functions to be + supplied and results returned within the framework of DOM + APIs in a standard, interoperable way, + allowing also for liveness of data, + which is not addressed by the XPath specification but is present in + results coming from the DOM hierarchy. +

+
+

1.2 +Mapping DOM to XPath

This section presents a mapping between the Document Object Model + [DOM Level 2 Core] and the XPath 1.0 [XPath 1.0] + model for the purposes of implementing the APIs. +

+

1.2.1 +Element Nodes

The DOM model uses Element nodes to represent Element Information Items. + These nodes of a document are directly used to represent the elements of + an XPath result.

+
+

1.2.2 +Attribute Nodes

The DOM model uses Attr nodes to represent Attribute Information + Items of attribute and namespace attribute + properties of Element + Information Item. These nodes have no parent, but + have an ownerElement which can be used as XPath + defines an attribute's parent.

XPath 1.0 does not make available the namespace attributes of an + element. The DOM implementation of XPath 1.0 using these defined + interfaces never directly returns Attr nodes of namespace + attributes, but returned Element nodes still contain them.

+
+

1.2.3 +Namespace Nodes

The XPath model expects namespace nodes for each in-scope namespace to + be attached to each element. DOM only + maintains the namespace attributes instead of replicating in-scope + namespaces on each Element where they are in-scope. The DOM + implementation of XPath produces a new node of type + XPATH_NAMESPACE_NODE, defined in the + XPathNamespace interface, to properly preserve identity and + ordering in a way that is compatible with XPath. This node type is only + visible using the XPath evaluation methods.

The set of in-scope namespaces of an element is the default xml + namespace combined with the contributions of namespace attributes of the + current and all ancestor elements. In addition to explicit namespace + attributes, any element has an implicit declaration of its own prefix, + if any, or if no prefix then of the default namespace, which is enforced + during namespace serialization, fixup, and lookup, which must be added to + the set of in-scope namespaces when generating namespace nodes for an + element. This causes the set of namespace nodes to be consistent with + serialization, fixup, and lookup of namespaces in DOM Level 3. +

+
+

1.2.4 +Text Nodes

The XPath model relies on the XML Information Set [XML Information Set] ands represents Character Information + Items in a single logical text node where DOM may have + multiple fragmented Text nodes due to cdata sections, entity + references, etc. Instead of returning multiple nodes where XPath sees a + single logical text node, only the first non-empty DOM Text + or CDATASection node of any logical XPath text will be + returned in the node set. Applications using XPath in an environment + with fragmented text nodes must manually gather the text of a single + logical text node possibly from multiple nodes beginning with the first + Text node or CDATASection node returned by the + implementation.

Note: In an attempt to better implement the XML Information Set, DOM Level + 3 Core [DOM Level 3 Core] adds the attribute + wholeText on the Text interface for + retrieving the whole text for logically-adjacent Text + nodes and the method replaceWholeText for + replacing those nodes.

+
+
+

1.2.5 +Entity Reference Nodes

The DOM model may represent Unexpanded Entity Reference + Information Items or may provide the position and URI of + expanded entity hierarchies by using EntityReference nodes. + XPath 1.0 does not preserve corresponding information.

Where the node represents an unexpanded entity reference, it is + skipped as dictated by the XPath specifications for all infoset items + besides those specifically processed.

Where there is a hierarchy underneath the node, these nodes are + processed as though they were siblings of the entity reference, as + is consistent with the rest of the DOM specification.

EntityReference nodes found within a DOM hierarchy are + never returned as a node of the result, but returned nodes may contain + or be contained within an EntityReference node. Text may be + split partially inside and partially outside of an + EntityReference node, but this is solved by handling + Text nodes as described in the previous section.

+
+

1.2.6 +Comment Nodes

The DOM model uses Comment nodes to represent Comment Information Items. + These nodes of a document are directly used to represent the comments of + an XPath result.

+
+

1.2.7 +Processing Instruction Nodes

The DOM model uses ProcessingInstruction nodes to + represent Processing Instruction + Information Items. These nodes of a document are directly used + to represent the processing instructions of an XPath result.

+
+

1.2.8 +Document order

The document order of nodes + in the DOM Core has been defined to be compatible with the XPath document order. + The XPath DOM extends the document order of the DOM Core to include + the XPathNamespace nodes. Element nodes occur before their + children. The attribute nodes and namespace nodes of an element occur + before the children of the element. The namespace nodes are defined to + occur before the attribute nodes. The relative order of namespace nodes + is implementation-dependent. The relative order of attribute nodes is + implementation-dependent. The compareTreePosition method on + the Node interface defined in the DOM Core must compare the + XPathNamespace nodes using this extended document order if + the XPath DOM module is supported.

Note: It is possible that in future versions of XPath, the order of namespace + nodes or other aspects of document order may change incompatibly.

+
+
+

1.3 +Conformance

This section explains conformance to DOM Level 3 XPath Module.

A DOM implementation must not return true to + hasFeature("xpath", "3.0") unless the implementation + conforms to that module. As documented in [DOM Level 3 Core], if a null or empty string is + passed in for the second parameter, then conformance is still + required to some version of the DOM XPath Module or + false must be returned.

A conformant + implementation is DOM Level 3 XPath must support all the interfaces + as specified in that specification. In addition to implementing the + interfaces in the DOM XPath Module, a conforming implementation must + correctly implement each part of the XPath 1.0 specification when + evaluating expressions including Location Paths, Expressions, the + Core Function Library, and the mapping between DOM and the XPath 1.0 + data model described in the DOM Level 3 XPath Module. The XPath + id()function must return the corresponding element, if + any, returned by the DOM method + Document.getElementById.

After meeting the + requirements for conformance, a conforming implementation may + implement additional functions and variables. Applications which + evaluate expressions using these extensions will not necessarily be + portable to other implementations of the DOM Level 3 XPath + Module.

+
+

1.4 +Interfaces

+ An implementation is DOM Level 3 XPath conformant if it supports + the Core module defined in [DOM Level 2 Core] and the module + defined in this specification. An implementation conforms to a DOM + module if it supports all the interfaces for that module and the + associated semantics. +

+ A DOM application may use the hasFeature(feature, + version) method of the DOMImplementation + interface with parameter values "XPath" and "3.0" (respectively) + to determine whether or not the XPath module is supported by the + implementation. In order to fully support this module, an + implementation must also support the "Core" feature defined in the + DOM Level 2 Core specification [DOM Level 2 Core]. +

+ A DOM implementation must not return true to the + hasFeature(feature, version) method of the + DOMImplementation interface for that feature unless the + implementation conforms to that module. The version number for the + feature used in this document is "3.0". + +

Exception XPathException
+
+

A new exception has been created for exceptions specific + to these XPath interfaces. +

+

IDL Definition
+
+
+
+exception XPathException {
+  unsigned short   code;
+};
+// XPathExceptionCode
+const unsigned short      INVALID_EXPRESSION_ERR         = 51;
+const unsigned short      TYPE_ERR                       = 52;
+
+

+
+
Definition group XPathExceptionCode
+
+
Defined Constants
+
+
INVALID_EXPRESSION_ERR
+If the expression has a syntax error or otherwise is not a legal + expression according to the rules of the specific + XPathEvaluator or contains specialized extension functions + or variables not supported by this implementation.
+
TYPE_ERR
+If the expression cannot be converted to return the specified type.
+
+
+
+
+ +
Interface XPathEvaluator
+
+

+ The evaluation of XPath expressions is provided by + XPathEvaluator. In a DOM + implementation which supports the XPath 3.0 feature, as described + above, the XPathEvaluator interface will be implemented + on the same object which implements the Document + interface permitting it to be obtained by the usual binding-specific + method such as casting or by using the DOM Level 3 getInterface method. + In this case the implementation obtained from the Document supports the + XPath DOM module and is compatible with the XPath 1.0 specification.

Evaluation of expressions with specialized extension functions or + variables may not work in all implementations and is, therefore, not + portable. XPathEvaluator implementations may be available + from other sources that could provide specific support for specialized + extension functions or variables as would be defined by other + specifications. + +

+

IDL Definition
+
+
+
+interface XPathEvaluator {
+  XPathExpression    createExpression(in DOMString expression, 
+                                      in XPathNSResolver resolver)
+                                        raises(XPathException, 
+                                               DOMException);
+  XPathNSResolver    createNSResolver(in Node nodeResolver);
+  DOMObject          evaluate(in DOMString expression, 
+                              in Node contextNode, 
+                              in XPathNSResolver resolver, 
+                              in unsigned short type, 
+                              in DOMObject result)
+                                        raises(XPathException, 
+                                               DOMException);
+};
+
+

+
+ +
Methods
+
+ +
createExpression
+
+
+Creates a parsed XPath expression with resolved namespaces. + This is useful when an expression will be reused in an application + since it makes it possible to compile the expression string into a + more efficient internal form and preresolve all namespace prefixes which occur + within the expression.
+Parameters +
+
+
expression of type +DOMString
+The XPath expression string to be parsed.
+
+
resolver of type +XPathNSResolver
+The resolver permits translation of all + prefixes, including the xml namespace prefix, + within the XPath expression into appropriate namespace URIs. If this is + specified as null, any namespace prefix within the + expression will result in DOMException being + thrown with the code NAMESPACE_ERR.
+
+
+
+ +
+Return Value +
+

XPathExpression

+

+The compiled form of the XPath expression.

+
+ +
+Exceptions +
+ + + +

XPathException

+

INVALID_EXPRESSION_ERR: Raised if the expression is not + legal according to the rules of the + XPathEvaluator.

DOMException

+

NAMESPACE_ERR: Raised if the expression contains + namespace prefixes + which cannot be resolved by the specified + XPathNSResolver.

+
+
+
+ +
createNSResolver
+
+
+Adapts any DOM node to resolve namespaces so that an XPath + expression can be easily evaluated relative to the context of + the node where it appeared within the document. This adapter + works like the DOM Level 3 method lookupNamespaceURI + on nodes in resolving the namespaceURI from a given prefix + using the current information available in the node's + hierarchy at the time lookupNamespaceURI is called. also + correctly resolving the implicit xml prefix.
+Parameters +
+
+
nodeResolver of type +Node
+The node to be used as a context for namespace resolution.
+
+
+
+ +
+Return Value +
+

XPathNSResolver

+

+XPathNSResolver which resolves namespaces with respect to + the definitions in scope for a specified node.

+
+
No Exceptions
+
+
+ +
evaluate
+
+
+Evaluates an XPath expression string and returns a result of the + specified type if possible.
+Parameters +
+
+
expression of type +DOMString
+The XPath expression string to be parsed and evaluated.
+
+
contextNode of type +Node
+The context is context node for the evaluation + of this XPath expression. If the XPathEvaluator was obtained + by casting the Document then this must be owned by + the same document and must be a Document, + Element, Attribute, Text, + CDATASection, Comment, + ProcessingInstruction, or XPathNamespace + node. If the context node is a Text or a + CDATASection, then the context is interpreted as the + whole logical text node as seen by XPath, unless the node is + empty in which case it may not serve as the XPath context.
+
+
resolver of type +XPathNSResolver
+The resolver permits translation of all + prefixes, including the xml namespace prefix, + within the XPath expression into appropriate namespace URIs. If this is + specified as null, any namespace prefix within the + expression will result in DOMException being + thrown with the code NAMESPACE_ERR.
+
+
type of type +unsigned short
+If a specific type is specified, then the + result will be returned as the corresponding type.
+For XPath 1.0 results, this must be one of the codes of the + XPathResult interface.
+
+
result of type +DOMObject
+The result specifies a specific result object + which may be reused and returned by this method. If this is specified + as nullor the implementation does not reuse the specified + result, a new result object will be constructed and returned.
+For XPath 1.0 results, this object will be of type + XPathResult.
+
+
+
+ +
+Return Value +
+

DOMObject

+

+The result of the evaluation of the XPath expression.
+For XPath 1.0 results, this object will be of type + XPathResult.

+
+ +
+Exceptions +
+ + + +

XPathException

+

INVALID_EXPRESSION_ERR: Raised if the expression is not + legal according to the rules of the + XPathEvaluatori

TYPE_ERR: Raised if the result cannot be converted to + return the specified type.

DOMException

+

NAMESPACE_ERR: Raised if the expression contains + namespace prefixes + which cannot be resolved by the specified + XPathNSResolver.

WRONG_DOCUMENT_ERR: The Node is from a document that is + not supported by this XPathEvaluator.

NOT_SUPPORTED_ERR: The Node is not a type permitted as an + XPath context node or the request type is not permitted by this + XPathEvaluator.

+
+
+
+
+
+ +
Interface XPathExpression
+
+

The XPathExpression interface represents a parsed + and resolved XPath expression. +

+

IDL Definition
+
+
+
+interface XPathExpression {
+  DOMObject          evaluate(in Node contextNode, 
+                              in unsigned short type, 
+                              in DOMObject result)
+                                        raises(XPathException, 
+                                               DOMException);
+};
+
+

+
+ +
Methods
+
+ +
evaluate
+
+
+Evaluates this XPath expression and returns a result.
+Parameters +
+
+
contextNode of type +Node
+The context is context node for the evaluation + of this XPath expression.
+If the XPathEvaluator was obtained + by casting the Document then this must be owned by + the same document and must be a Document, + Element, Attribute, Text, + CDATASection, Comment, + ProcessingInstruction, or XPathNamespace + node.
+If the context node is a Text or a + CDATASection, then the context is interpreted as the + whole logical text node as seen by XPath, unless the node is + empty in which case it may not serve as the XPath context.
+
+
type of type +unsigned short
+If a specific type is specified, then the + result will be coerced to return the specified type relying + on XPath conversions and fail if the desired coercion is not + possible. This must be one of the type codes of + XPathResult.
+
+
result of type +DOMObject
+The result specifies a specific result object + which may be reused and returned by this method. If this is specified + as nullor the implementation does not reuse the specified + result, a new result object will be constructed and returned.
+For XPath 1.0 results, this object will be of type + XPathResult.
+
+
+
+ +
+Return Value +
+

DOMObject

+

+The result of the evaluation of the XPath expression.
+For XPath 1.0 results, this object will be of type + XPathResult.

+
+ +
+Exceptions +
+ + + +

XPathException

+

TYPE_ERR: Raised if the result cannot be converted to + return the specified type.

DOMException

+

WRONG_DOCUMENT_ERR: The Node is from a document that is + not supported by the XPathEvaluator that created this + XPathExpression.

NOT_SUPPORTED_ERR: The Node is not a type permitted as an + XPath context node or the request type is not permitted by this + XPathExpression.

+
+
+
+
+
+ +
Interface XPathNSResolver
+
+

The XPathNSResolver interface permit + prefix strings in the expression to be properly bound to + namespaceURI strings. XPathEvaluator can + construct an implementation of XPathNSResolver from a + node, or the interface may be implemented by any application. +

+

IDL Definition
+
+
+
+interface XPathNSResolver {
+  DOMString          lookupNamespaceURI(in DOMString prefix);
+};
+
+

+
+ +
Methods
+
+ +
lookupNamespaceURI
+
+
+Look up the namespace + URI associated to the given namespace prefix. The + XPath evaluator must never call this with a null or + empty argument, because the result of doing this is undefined.
+Parameters +
+
+
prefix of type +DOMString
+The prefix to look for.
+
+
+
+ +
+Return Value +
+

DOMString

+

+Returns the associated namespace URI or + null if none is found.

+
+
No Exceptions
+
+
+
+
+ +
Interface XPathResult
+
+

The XPathResult interface represents the result + of the evaluation of an XPath 1.0 expression within the context + of a particular node. Since + evaluation of an XPath expression can result in various result + types, this object makes it possible to discover and manipulate + the type and value of the result. +

+

IDL Definition
+
+
+
+interface XPathResult {
+
+  // XPathResultType
+  const unsigned short      ANY_TYPE                       = 0;
+  const unsigned short      NUMBER_TYPE                    = 1;
+  const unsigned short      STRING_TYPE                    = 2;
+  const unsigned short      BOOLEAN_TYPE                   = 3;
+  const unsigned short      UNORDERED_NODE_ITERATOR_TYPE   = 4;
+  const unsigned short      ORDERED_NODE_ITERATOR_TYPE     = 5;
+  const unsigned short      UNORDERED_NODE_SNAPSHOT_TYPE   = 6;
+  const unsigned short      ORDERED_NODE_SNAPSHOT_TYPE     = 7;
+  const unsigned short      ANY_UNORDERED_NODE_TYPE        = 8;
+  const unsigned short      FIRST_ORDERED_NODE_TYPE        = 9;
+
+  readonly attribute unsigned short  resultType;
+  readonly attribute double          numberValue;
+                                        // raises(XPathException) on retrieval
+
+  readonly attribute DOMString       stringValue;
+                                        // raises(XPathException) on retrieval
+
+  readonly attribute boolean         booleanValue;
+                                        // raises(XPathException) on retrieval
+
+  readonly attribute Node            singleNodeValue;
+                                        // raises(XPathException) on retrieval
+
+  readonly attribute boolean         invalidIteratorState;
+  readonly attribute unsigned long   snapshotLength;
+                                        // raises(XPathException) on retrieval
+
+  Node               iterateNext()
+                                        raises(XPathException, 
+                                               DOMException);
+  Node               snapshotItem(in unsigned long index)
+                                        raises(XPathException);
+};
+
+

+
+
Definition group XPathResultType
+

An integer indicating what type of result this is.

If a specific type is specified, then the + result will be returned as the corresponding type, using + XPath type + conversions where required and possible.

+
Defined Constants
+
+
ANY_TYPE
+This code does not represent a specific type. An + evaluation of an XPath expression will never produce this + type. If this type is requested, then the evaluation + returns whatever type naturally results from evaluation of + the expression.
+If the natural result is a node + set when ANY_TYPE was requested, then + UNORDERED_NODE_ITERATOR_TYPE is always the + resulting type. Any other representation of a node set + must be explicitly requested.
+
ANY_UNORDERED_NODE_TYPE
+The result is a node set as defined + by [XPath 1.0] and will be accessed as a single + node, which may be nullif the node set is empty. Document + modification does not invalidate the node, but may mean that + the result node no longer corresponds to the current + document. This is a convenience that permits optimization + since the implementation can stop once any node in + the resulting set has been found.
+If there is more + than one node in the actual result, the single node returned + might not be the first in document order.
+
BOOLEAN_TYPE
+The result is a boolean as defined + by [XPath 1.0]. Document modification does not + invalidate the boolean, but may mean that reevaluation + would not yield the same boolean.
+
FIRST_ORDERED_NODE_TYPE
+The result is a node set as defined + by [XPath 1.0] and will be accessed as a single + node, which may be null if the node set is + empty. Document modification does not invalidate the node, + but may mean that the result node no longer corresponds to + the current document. This is a convenience that permits + optimization since the implementation can stop once the + first node in document order of the resulting set has been + found.
+If there are more than one node in the actual + result, the single node returned will be the first in + document order.
+
NUMBER_TYPE
+The result is a number as defined by + [XPath 1.0]. Document modification does not + invalidate the number, but may mean that reevaluation + would not yield the same number.
+
ORDERED_NODE_ITERATOR_TYPE
+The result is a node set as defined by [XPath 1.0] that will be accessed iteratively, which + will produce document-ordered nodes. Document + modification invalidates the iteration.
+
ORDERED_NODE_SNAPSHOT_TYPE
+The result is a node set as + defined by [XPath 1.0] that will be accessed + as a snapshot list of nodes that will be in original + document order. Document modification does not invalidate + the snapshot but may mean that reevaluation would not + yield the same snapshot and nodes in the snapshot may have + been altered, moved, or removed from the document.
+
STRING_TYPE
+The result is a string as defined by + [XPath 1.0]. Document modification does not + invalidate the string, but may mean that the string no + longer corresponds to the current document.
+
UNORDERED_NODE_ITERATOR_TYPE
+The result is a node set as + defined by [XPath 1.0] that will be accessed + iteratively, which may not produce nodes in a particular + order. Document modification invalidates the + iteration.
+This is the default type returned if the result is a + node set and ANY_TYPE is requested.
+
UNORDERED_NODE_SNAPSHOT_TYPE
+The result is a node set as + defined by [XPath 1.0] that will be accessed + as a snapshot list of nodes that may not be in a + particular order. Document modification does not + invalidate the snapshot but may mean that reevaluation + would not yield the same snapshot and nodes in the + snapshot may have been altered, moved, or removed from the + document.
+
+
+
+ +
Attributes
+
+ +
booleanValue of type boolean, readonly
+
The value of this boolean result.
+ +
+Exceptions on retrieval +
+ + +

XPathException

+

TYPE_ERR: raised if resultType is not BOOLEAN_TYPE.

+
+ +
+
invalidIteratorState of type boolean, readonly
+
Signifies that the iterator has become invalid. + True if resultType is + UNORDERED_NODE_ITERATOR_TYPE or + ORDERED_NODE_ITERATOR_TYPE and the + document has been modified since this result was + returned.
+ +
+
numberValue of type double, readonly
+
The value of this number result. If the native double type of the DOM binding does + not directly support the exact IEEE 754 result of the XPath expression, then it is up to + the definition of the binding to specify how the XPath number is converted to the + native binding number.
+ +
+Exceptions on retrieval +
+ + +

XPathException

+

TYPE_ERR: raised if resultType is not NUMBER_TYPE.

+
+ +
+
resultType of type unsigned short, readonly
+
A code representing the type of this result, as defined + by the type constants.
+ +
+
singleNodeValue of type Node, readonly
+
The value of this single node result, which may be null.
+ +
+Exceptions on retrieval +
+ + +

XPathException

+

TYPE_ERR: raised if resultType is not + ANY_UNORDERED_NODE_TYPE or + FIRST_ORDERED_NODE_TYPE.

+
+ +
+
snapshotLength of type unsigned long, readonly
+
The number of nodes in the result snapshot. Valid values + for snapshotItem indices are 0 to + snapshotLength-1 inclusive.
+ +
+Exceptions on retrieval +
+ + +

XPathException

+

TYPE_ERR: raised if resultType is not + UNORDERED_NODE_SNAPSHOT_TYPE or + ORDERED_NODE_SNAPSHOT_TYPE.

+
+ +
+
stringValue of type DOMString, readonly
+
The value of this string result.
+ +
+Exceptions on retrieval +
+ + +

XPathException

+

TYPE_ERR: raised if resultType is not STRING_TYPE.

+
+ +
+ +
Methods
+
+ +
iterateNext
+
+
+Iterates and returns the next node from the node set + or nullif there are no more nodes. +
+Return Value +
+

Node

+

+Returns the next node.

+
+ +
+Exceptions +
+ + + +

XPathException

+

TYPE_ERR: raised if resultType is not + UNORDERED_NODE_ITERATOR_TYPE or + ORDERED_NODE_ITERATOR_TYPE.

DOMException

+

INVALID_STATE_ERR: The document has been mutated since the + result was returned.

+
+
No Parameters
+
+
+ +
snapshotItem
+
+
+Returns the indexth item in the snapshot collection. + If index is greater than or equal to the number of nodes + in the list, this method returns null. Unlike the + iterator result, the snapshot does not become invalid, but may + not correspond to the current document if it is mutated.
+Parameters +
+
+
index of type +unsigned long
+Index into the snapshot collection.
+
+
+
+ +
+Return Value +
+

Node

+

+The node at the indexth position in the + NodeList, or null if that is not a + valid index.

+
+ +
+Exceptions +
+ + +

XPathException

+

TYPE_ERR: raised if resultType is not + UNORDERED_NODE_SNAPSHOT_TYPE or + ORDERED_NODE_SNAPSHOT_TYPE.

+
+
+
+
+
+ +
Interface XPathNamespace
+
+

The XPathNamespace interface is returned by + XPathResult interfaces to represent + the XPath namespace node type that DOM lacks. + There is no public constructor for this node type. Attempts to + place it into a hierarchy or a NamedNodeMap result in a + DOMException with the code + HIERARCHY_REQUEST_ERR. This node is + read only, so methods or setting of attributes that would mutate + the node result in a DOMException with the code + NO_MODIFICATION_ALLOWED_ERR.

The core specification describes attributes of the + Node interface that are different for different + node types but does not describe XPATH_NAMESPACE_NODE, + so here is a description of those attributes for this node type. + All attributes of Node not described in this section + have a null or false value.

ownerDocument matches the ownerDocument of the + ownerElement even if the element is later adopted.

nodeName is always the string "#namespace".

prefix is the prefix of the namespace + represented by the node.

localName is the same as prefix.

nodeType is equal to XPATH_NAMESPACE_NODE.

namespaceURI is the namespace URI of the namespace + represented by the node.

nodeValue is the same as namespaceURI.

adoptNode, cloneNode, and + importNode fail on this node type by raising a + DOMException with the code NOT_SUPPORTED_ERR.

Note: In future versions of the XPath specification, the definition of a + namespace node may be changed incomatibly, in which case incompatible + changes to field values may be required to implement versions beyond + XPath 1.0.

+ +
+

IDL Definition
+
+
+
+interface XPathNamespace : Node {
+
+  // XPathNodeType
+  const unsigned short      XPATH_NAMESPACE_NODE           = 13;
+
+  readonly attribute Element         ownerElement;
+};
+
+

+
+
Definition group XPathNodeType
+

An integer indicating which type of node this is.

Note: There is currently only one type of node which is specific to + XPath. The numbers in this list must not collide with the + values assigned to core node types.

+
+
Defined Constants
+
+
XPATH_NAMESPACE_NODE
+The node is a Namespace.
+
+
+
+ +
Attributes
+
+ +
ownerElement of type Element, readonly
+
The Element on which the namespace was in scope + when it was requested. This does not change on a returned + namespace node + even if the document changes such that the namespace goes out of + scope on that element and this + node is no longer found there by XPath.
+ +
+
+
+
+ +