gareth 2003/08/20 04:31:22
Modified: c/Projects/Win32/VC6/xerces-all/XercesLib XercesLib.dsp
c/Projects/Win32/VC7/xerces-all/XercesLib XercesLib.vcproj
c/doc/html ApacheDOMC++BindingL3.html
c/src/xercesc/dom DOM.hpp DOMDocument.hpp Makefile.in
c/src/xercesc/dom/impl DOMDocumentImpl.cpp
DOMDocumentImpl.hpp
Added: c/src/xercesc/dom DOMXPathEvaluator.hpp
DOMXPathException.cpp DOMXPathException.hpp
DOMXPathExpression.hpp DOMXPathNSResolver.hpp
DOMXPathNamespace.hpp DOMXPathResult.hpp
Log:
Added Level 3 XPath interfaces. Updated documentation, windows project files and
Makefile.
Revision Changes Path
1.150 +27 -0
xml-xerces/c/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
Index: XercesLib.dsp
===================================================================
RCS file:
/home/cvs/xml-xerces/c/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp,v
retrieving revision 1.149
retrieving revision 1.150
diff -u -r1.149 -r1.150
--- XercesLib.dsp 20 Jun 2003 18:45:41 -0000 1.149
+++ XercesLib.dsp 20 Aug 2003 11:31:21 -0000 1.150
@@ -3135,6 +3135,31 @@
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMXPathNamespace.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMXPathNSResolver.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMXPathResult.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMXPathEvaluator.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMXPathException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMXPathExpression.hpp
+# End Source File
+# Begin Source File
+
+
SOURCE=..\..\..\..\..\src\xercesc\dom\DOMWriterFilter.hpp
# End Source File
# End Group
@@ -3144,3 +3169,5 @@
# End Source File
# End Target
# End Project
+
+
1.25 +18 -0
xml-xerces/c/Projects/Win32/VC7/xerces-all/XercesLib/XercesLib.vcproj
Index: XercesLib.vcproj
===================================================================
RCS file:
/home/cvs/xml-xerces/c/Projects/Win32/VC7/xerces-all/XercesLib/XercesLib.vcproj,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- XercesLib.vcproj 22 Jul 2003 08:51:00 -0000 1.24
+++ XercesLib.vcproj 20 Aug 2003 11:31:21 -0000 1.25
@@ -1835,6 +1835,24 @@
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMTypeInfo.hpp">
</File>
<File
+
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMXPathNamespace.hpp">
+ </File>
+ <File
+
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMXPathNSResolver.hpp">
+ </File>
+ <File
+
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMXPathResult.hpp">
+ </File>
+ <File
+
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMXPathEvaluator.hpp">
+ </File>
+ <File
+
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMXPathException.hpp">
+ </File>
+ <File
+
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMXPathExpression.hpp">
+ </File>
+ <File
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMUserDataHandler.hpp">
</File>
<File
1.17 +623 -10 xml-xerces/c/doc/html/ApacheDOMC++BindingL3.html
Index: ApacheDOMC++BindingL3.html
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/html/ApacheDOMC++BindingL3.html,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ApacheDOMC++BindingL3.html 19 May 2003 11:29:59 -0000 1.16
+++ ApacheDOMC++BindingL3.html 20 Aug 2003 11:31:22 -0000 1.17
@@ -23,11 +23,10 @@
<p><br>This document contains the Experimental Apache Recommended C++ Language
binding for the <a
href="http://www.w3.org/TR/2002/WD-DOM-Level-3-Core-20020409/">Document
Object Model Level 3.0 Core</a>, and for the subset of <a
href="http://www.w3.org/TR/2002/WD-DOM-Level-3-ASLS-20020409/">Document
-Object Model Level 3.0 Abstract Schemas and Load and Save</a>. Both
-are W3C Working Draft of 09 April 2002.
+Object Model Level 3.0 Abstract Schemas and Load and Save</a> , as well as the
<a href="http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331/">Document Object
Model Level 3.0 XPath</a>.
<p>The definitions are divided into <a href="#A: Document Object Model:
Core">Core</a>,
and
-<a href="#B: Document Object Model: Load and Save">Load and Save</a>.
+<a href="#B: Document Object Model: Load and Save">Load and Save</a> and <a
href="#C: Document Object Model: XPath">XPath</a>.
The headers are also available in Xerces-C++ distribution.
<p>Note:
<ol>
@@ -128,6 +127,13 @@
</td>
</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td>Xerces-C++ 2.4</td>
+<td ALIGN=LEFT VALIGN=TOP>Modified
+<br>- added DOM Level 3 XPath interfaces
+</td>
+</tr>
+
</table>
<p>
@@ -4397,19 +4403,626 @@
</table>
</div>
-<div class='div1'>
-<div id="Divider">
-<hr WIDTH="100%"></div>
-</div>
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="620" >
+
+
+<hr WIDTH="100%">
+<h2>
+<a NAME="C: Document Object Model: XPath"></a><u><font color="#000000"><a
href="#C++ Language Binding for DOM Level 3">C:
+Document Object Model: XPath</a></font></u></h2>
+
+
+
+
+<h3>
+<font color="#000000">DOMXPathEvaluator.hpp:</font></h3>
+
+<div id="DOMXPathEvaluator"><font face="Courier New,Courier"><font
size=-1>classDOMXPathEvaluator</font></font>
+<table>
+
<tr ALIGN=LEFT VALIGN=TOP>
-<td ALIGN=CENTER><i><font color="#0086B2"><font size=-1>Copyright ©
-2001 The Apache Software Foundation. All Rights Reserved.</font></font></i></td>
+<td><font face="Courier New,Courier"><font size=-1>{</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>public:</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>const
DOMXPathExpression*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>createExpression(const XMLCh
*expression, const DOMXPathNSResolver *resolver) = 0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>const
DOMXPathNSResolver*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>createNSResolver(DOMNode
*nodeResolver) = 0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>void*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>evaluate(const XMLCh
*expression, DOMNode *contextNode, const DOMXPathNSResolver *resolver,
unsigned short type, void* result) = 0;
+</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
</tr>
</table>
-</div>
-</div>
+
+
+
+
+<h3>
+<font color="#000000">DOMXPathException.hpp:</font></h3>
+
+<div id="DOMXPathException"><font face="Courier New,Courier"><font
size=-1>classDOMXPathException</font></font>
+<table>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>{</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>public:</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>enum</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>ExceptionCode
{</font></font></td>
+
+<td></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>INVALID_EXPRESSION_ERR</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 51,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>TYPE_ERR</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 52,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+</table>
+
+<h3>
+<font color="#000000">DOMXPathExpression.hpp:</font></h3>
+
+<div id="DOMXPathExpression"><font face="Courier New,Courier"><font size=-1>class
+DOMXPathExpression</font></font>
+<table>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>{</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>public:</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>void*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>evaluate(DOMNode *contextNode,
unsigned short type, void* result) const = 0;</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+</table>
+
+
+
+
+
+<h3>
+<font color="#000000">DOMXPathNamespace.hpp:</font></h3>
+
+<div id="DOMXPathNamespace"><font face="Courier New,Courier"><font
size=-1>classDOMXPathNamespace</font></font>
+<table>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>{</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>public:</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>enum</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>XPathNodeType
{</font></font></td>
+
+<td></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>XPATH_NAMESPACE_NODE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 13,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>DOMElement</font></font></td>
+<td><font face="Courier New,Courier"><font size=-1>*getOwnerElement() const =
0;</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+</table>
+
+
+
+
+<h3>
+<font color="#000000">DOMXPathNSResolver.hpp:</font></h3>
+
+<div id="DOMXPathNSResolver"><font face="Courier New,Courier"><font size=-1>class
+DOMXPathNSResolver</font></font>
+<table>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>{</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>public:</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>const XMLCh*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>lookupNamespaceURI(const XMLCh*
prefix) const = 0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>const XMLCh*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>lookupPrefix(const XMLCh* URI)
const = 0;</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+</table>
+
+
+
+
+
+<h3>
+<font color="#000000">DOMXPathResult.hpp:</font></h3>
+
+<div id="DOMXPathResult"><font face="Courier New,Courier"><font size=-1>class
+DOMXPathResult</font></font>
+<table>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>{</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>public:</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>enum</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>resultType {</font></font></td>
+
+<td></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>ANY_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 0,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>NUMBER_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 1,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>STRING_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 2,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>BOOLEAN_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 3,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>UNORDERED_NODE_ITERATOR_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 4,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>ORDERED_NODE_ITERATOR_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 5,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>UNORDERED_NODE_SNAPSHOT_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 6,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>ORDERED_NODE_SNAPSHOT_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 7,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>ANY_UNORDERED_NODE_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 8,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td></td>
+
+<td><font face="Courier New,Courier"><font
size=-1>FIRST_ORDERED_NODE_TYPE</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>= 9,</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>bool</font></font></td>
+
+
+
+
+<td><font face="Courier New,Courier"><font size=-1>getBooleanValue() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>bool</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>getInvalidIteratorState() const
= 0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>double</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>getNumberValue() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>short</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>getResultType() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>DOMNode</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>*getSingleNodeValue() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>unsigned long</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>getSnapshotLength() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>const XMLCh*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>getStringValue() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>DOMNode*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>iterateNext() const =
0;</font></font></td>
+</tr>
+
+<tr ALIGN=LEFT VALIGN=TOP>
+<td></td>
+
+<td><font face="Courier New,Courier"><font size=-1>virtual</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>DOMNode*</font></font></td>
+
+<td><font face="Courier New,Courier"><font size=-1>snapshotItem(unsigned long
index) const = 0;</font></font></td>
+</tr>
+<tr ALIGN=LEFT VALIGN=TOP>
+<td><font face="Courier New,Courier"><font size=-1>};</font></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+</table>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+
+</tr>
+</table>
+</div>
+
+<div class='div1'>
+<div id="Divider">
+<hr WIDTH="100%"></div>
+</div>
+
+<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="620" >
+<tr ALIGN=LEFT VALIGN=TOP>
+<td ALIGN=CENTER><i><font color="#0086B2"><font size=-1>Copyright ©
+2001 The Apache Software Foundation. All Rights Reserved.</font></font></i></td>
+</tr>
+</table>
+</div>
+</div>
+
+
</body>
</html>
1.11 +7 -1 xml-xerces/c/src/xercesc/dom/DOM.hpp
Index: DOM.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/DOM.hpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- DOM.hpp 31 Mar 2003 15:47:03 -0000 1.10
+++ DOM.hpp 20 Aug 2003 11:31:22 -0000 1.11
@@ -111,6 +111,12 @@
#include <xercesc/dom/DOMWriter.hpp>
#include <xercesc/dom/DOMWriterFilter.hpp>
+#include <xercesc/dom/DOMXPathEvaluator.hpp>
+#include <xercesc/dom/DOMXPathNSResolver.hpp>
+#include <xercesc/dom/DOMXPathException.hpp>
+#include <xercesc/dom/DOMXPathExpression.hpp>
+#include <xercesc/dom/DOMXPathResult.hpp>
+#include <xercesc/dom/DOMXPathNamespace.hpp>
#endif
1.15 +4 -1 xml-xerces/c/src/xercesc/dom/DOMDocument.hpp
Index: DOMDocument.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/DOMDocument.hpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DOMDocument.hpp 14 May 2003 19:23:20 -0000 1.14
+++ DOMDocument.hpp 20 Aug 2003 11:31:22 -0000 1.15
@@ -65,6 +65,7 @@
#include "DOMNode.hpp"
#include "DOMDocumentRange.hpp"
#include "DOMDocumentTraversal.hpp"
+#include "DOMXPathEvaluator.hpp"
XERCES_CPP_NAMESPACE_BEGIN
@@ -100,8 +101,10 @@
*/
class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
+ public DOMXPathEvaluator,
public DOMDocumentTraversal,
public DOMNode {
+
protected:
// -----------------------------------------------------------------------
1.15 +11 -4 xml-xerces/c/src/xercesc/dom/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/Makefile.in,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Makefile.in 5 May 2003 21:21:15 -0000 1.14
+++ Makefile.in 20 Aug 2003 11:31:22 -0000 1.15
@@ -85,7 +85,7 @@
DOMCDATASection.hpp \
DOMCharacterData.hpp \
DOMComment.hpp \
- DOMConfiguration.hpp \
+ DOMConfiguration.hpp \
DOMDocument.hpp \
DOMDocumentRange.hpp \
DOMDocumentTraversal.hpp \
@@ -119,7 +119,13 @@
DOMUserDataHandler.hpp \
DOMWriter.hpp \
DOMWriterFilter.hpp \
- StDOMNode.hpp
+ StDOMNode.hpp \
+ DOMXPathNamespace.hpp \
+ DOMXPathNSResolver.hpp \
+ DOMXPathResult.hpp \
+ DOMXPathEvaluator.hpp \
+ DOMXPathException.hpp \
+ DOMXPathExpression.hpp
DOM_CPP_PRIVHEADERS =
@@ -127,7 +133,8 @@
DOM_CPP_OBJECTS = \
DOMException.$(TO) \
- DOMRangeException.$(TO)
+ DOMRangeException.$(TO) \
+ DOMXPathException.$(TO)
all:: includes $(DOM_CPP_OBJECTS) impl deprecated
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathEvaluator.hpp
Index: DOMXPathEvaluator.hpp
===================================================================
#ifndef DOMXPathEvaluator_HEADER_GUARD_
#define DOMXPathEvaluator_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include <xercesc/util/XercesDefs.hpp>
XERCES_CPP_NAMESPACE_BEGIN
class DOMXPathNSResolver;
class DOMXPathExpression;
class DOMNode;
/**
* The evaluation of XPath expressions is provided by
<code>DOMXPathEvaluator</code>.
* In a DOM implementation which supports the XPath 3.0 feature, the
<code>DOMXPathEvaluator</code>
* interface will be implemented on the same object which implements the Document
interface permitting
* it to be obtained by 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.
* @since DOM Level 3
*/
class CDOM_EXPORT DOMXPathEvaluator
{
protected:
// -----------------------------------------------------------------------
// Hidden constructors
// -----------------------------------------------------------------------
/** @name Hidden constructors */
//@{
DOMXPathEvaluator() {};
//@}
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
/** @name Unimplemented constructors and operators */
//@{
DOMXPathEvaluator(const DOMXPathEvaluator &);
DOMXPathEvaluator& operator = (const DOMXPathEvaluator&);
//@}
public:
// -----------------------------------------------------------------------
// All constructors are hidden, just the destructor is available
// -----------------------------------------------------------------------
/** @name Destructor */
//@{
/**
* Destructor
*
*/
virtual ~DOMXPathEvaluator() {};
//@}
// -----------------------------------------------------------------------
// Virtual DOMDocument interface
// -----------------------------------------------------------------------
/** @name Functions introduced in DOM Level 3 */
//@{
/**
* 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.
* @param expression of type XMLCh - The XPath expression string to be parsed.
* @param resolver of type <code>XPathNSResolver</code> - 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 <code>DOMException</code> being
thrown with the
* code NAMESPACE_ERR.
* @return <code>XPathExpression</code> The compiled form of the XPath
expression.
* @exception <code>XPathException</code>
* INVALID_EXPRESSION_ERR: Raised if the expression is not legal according to
the
* rules of the <code>DOMXPathEvaluator</code>.
* @exception DOMException
* NAMESPACE_ERR: Raised if the expression contains namespace prefixes which
cannot
* be resolved by the specified <code>XPathNSResolver</code>.
* @since DOM Level 3
*/
virtual const DOMXPathExpression* createExpression(const XMLCh *expression,
const DOMXPathNSResolver *resolver) = 0;
/** 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.
* @param nodeResolver of type <code>DOMNode</code> The node to be used as a
context
* for namespace resolution.
* @return <code>XPathNSResolver</code> <code>XPathNSResolver</code> which
resolves namespaces
* with respect to the definitions in scope for a specified node.
*/
virtual const DOMXPathNSResolver* createNSResolver(DOMNode *nodeResolver) = 0;
/**
* Evaluates an XPath expression string and returns a result of the specified
* type if possible.
* @param expression of type XMLCh The XPath expression string to be parsed
* and evaluated.
* @param contextNode of type <code>DOMNode</code> The context is context node
* for the evaluation
* of this XPath expression. If the <code>DOMXPathEvaluator</code> was obtained
by
* casting the <code>DOMDocument</code> then this must be owned by the same
* document and must be a <code>DOMDocument</code>, <code>DOMElement</code>,
* <code>DOMAttribute</code>, <code>DOMText</code>,
<code>DOMCDATASection</code>,
* <code>DOMComment</code>, <code>DOMProcessingInstruction</code>, or
* <code>XPathNamespace</code> node. If the context node is a
<code>DOMText</code> or
* a <code>DOMCDATASection</code>, 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.
* @param resolver of type <code>XPathNSResolver</code> 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
* <code>DOMException</code> being thrown with the code NAMESPACE_ERR.
* @param 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
<code>XPathResult</code>
* interface.
* @param result of type void* - The result specifies a specific result object
* which may be reused and returned by this method. If this is specified as
* null or 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 <code>XPathResult</code>.
* @return void* The result of the evaluation of the XPath expression.
* For XPath 1.0 results, this object will be of type <code>XPathResult</code>.
* @exception <code>XPathException</code>
* INVALID_EXPRESSION_ERR: Raised if the expression is not legal
* according to the rules of the <code>DOMXPathEvaluator</code>
* TYPE_ERR: Raised if the result cannot be converted to return the specified
type.
* @exception DOMException
* NAMESPACE_ERR: Raised if the expression contains namespace prefixes
* which cannot be resolved by the specified <code>XPathNSResolver</code>.
* WRONG_DOCUMENT_ERR: The Node is from a document that is not supported
* by this <code>DOMXPathEvaluator</code>.
* NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath context
* node or the request type is not permitted by this
<code>DOMXPathEvaluator</code>.
*/
virtual void* evaluate(const XMLCh *expression, DOMNode *contextNode, const
DOMXPathNSResolver *resolver,
unsigned short type, void* result) = 0;
//@}
};
XERCES_CPP_NAMESPACE_END
#endif
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathException.cpp
Index: DOMXPathException.cpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "DOMXPathException.hpp"
XERCES_CPP_NAMESPACE_BEGIN
DOMXPathException::DOMXPathException()
: msg(0)
{
code = (ExceptionCode) 0;
};
DOMXPathException::DOMXPathException(short exCode, const XMLCh *message)
: msg(message)
{
code = (ExceptionCode) exCode;
};
DOMXPathException::DOMXPathException(const DOMXPathException &other)
: msg(other.msg)
{
code = other.code;
};
DOMXPathException::~DOMXPathException()
{
};
XERCES_CPP_NAMESPACE_END
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathException.hpp
Index: DOMXPathException.hpp
===================================================================
#ifndef DOMXPathException_HEADER_GUARD_
#define DOMXPathException_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include <xercesc/util/XercesDefs.hpp>
XERCES_CPP_NAMESPACE_BEGIN
/**
* @since DOM Level 3
*/
class CDOM_EXPORT DOMXPathException
{
public:
// -----------------------------------------------------------------------
// Constructors
// -----------------------------------------------------------------------
/** @name Constructors */
//@{
/**
* Default constructor for DOMXPathException.
*
*/
DOMXPathException();
/**
* Constructor which takes an error code and a message.
*
* @param code The error code which indicates the exception
* @param message The string containing the error message
*/
DOMXPathException(short code, const XMLCh *message);
/**
* Copy constructor.
*
* @param other The object to be copied.
*/
DOMXPathException(const DOMXPathException &other);
//@}
// -----------------------------------------------------------------------
// Destructors
// -----------------------------------------------------------------------
/** @name Destructor. */
//@{
/**
* Destructor for DOMXPathException.
*
*/
virtual ~DOMXPathException();
//@}
public:
//@{
/**
* ExceptionCode
* INVALID_EXPRESSION_ERR If the expression has a syntax error or otherwise
* is not a legal expression according to the rules of the specific
* <code>XPathEvaluator</code> 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.
*/
enum ExceptionCode {
INVALID_EXPRESSION_ERR = 51,
TYPE_ERR = 52,
};
//@}
// -----------------------------------------------------------------------
// Class Types
// -----------------------------------------------------------------------
/** @name Public variables */
//@{
/**
* A code value, from the set defined by the ExceptionCode enum,
* indicating the type of error that occured.
*/
ExceptionCode code;
/**
* A string value. Applications may use this field to hold an error
* message. The field value is not set by the DOM implementation,
* meaning that the string will be empty when an exception is first
* thrown.
*/
const XMLCh *msg;
//@}
};
XERCES_CPP_NAMESPACE_END
#endif
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathExpression.hpp
Index: DOMXPathExpression.hpp
===================================================================
#ifndef DOMXPathExpression_HEADER_GUARD_
#define DOMXPathExpression_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include <xercesc/util/XercesDefs.hpp>
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
/**
* The <code>DOMXPathExpression</code> interface represents a parsed and resolved
XPath expression.
* @since DOM Level 3
*/
class CDOM_EXPORT DOMXPathExpression
{
protected:
// -----------------------------------------------------------------------
// Hidden constructors
// -----------------------------------------------------------------------
/** @name Hidden constructors */
//@{
DOMXPathExpression() {};
//@}
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
/** @name Unimplemented constructors and operators */
//@{
DOMXPathExpression(const DOMXPathExpression &);
DOMXPathExpression& operator = (const DOMXPathExpression&);
//@}
public:
// -----------------------------------------------------------------------
// All constructors are hidden, just the destructor is available
// -----------------------------------------------------------------------
/** @name Destructor */
//@{
/**
* Destructor
*
*/
virtual ~DOMXPathExpression() {};
//@}
// -----------------------------------------------------------------------
// Virtual DOMDocument interface
// -----------------------------------------------------------------------
/** @name Functions introduced in DOM Level 3 */
//@{
/**
* Evaluates this XPath expression and returns a result.
* @param contextNode of type <code>DOMNode</code> 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 <code>DOMDocument</code>,
<code>DOMElement</code>,
* <code>DOMAttribute</code>, <code>DOMText</code>,
<code>DOMCDATASection</code>,
* <code>DOMComment</code>, <code>DOMProcessingInstruction</code>, or
* <code>XPathNamespace</code>. If the context node is a <code>DOMText</code> or
a
* <code>DOMCDATASection</code>, 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.
* @param 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 <code>XPathResult</code>.
* @param result of type void* 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 <code>XPathResult</code>.
* @return void* The result of the evaluation of the XPath expression.
* For XPath 1.0 results, this object will be of type <code>XPathResult</code>.
* @exception <code>XPathException</code>
* TYPE_ERR: Raised if the result cannot be converted to return the specified
type.
* @exception <code>DOMException</code>
* WRONG_DOCUMENT_ERR: The <code>DOMNode</code> is from a document that is not
supported by
* the <code>XPathEvaluator</code> that created this
<code>DOMXPathExpression</code>.
* NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath context node
or the
* request type is not permitted by this <code>DOMXPathExpression</code>.
*/
virtual void* evaluate(DOMNode *contextNode, unsigned short type, void*
result) const = 0;
//@}
};
XERCES_CPP_NAMESPACE_END
#endif
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathNSResolver.hpp
Index: DOMXPathNSResolver.hpp
===================================================================
#ifndef DOMXPathNSResolver_HEADER_GUARD_
#define DOMXPathNSResolver_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include <xercesc/util/XercesDefs.hpp>
XERCES_CPP_NAMESPACE_BEGIN
/**
* The <code>DOMXPathNSResolver</code> interface permit prefix strings
* in the expression to be properly bound to namespaceURI strings.
* <code>DOMXPathEvaluator</code> can construct an implementation of
* <code>DOMXPathNSResolver</code> from a node, or the interface may be
* implemented by any application.
* @since DOM Level 3
*/
class CDOM_EXPORT DOMXPathNSResolver
{
protected:
// -----------------------------------------------------------------------
// Hidden constructors
// -----------------------------------------------------------------------
/** @name Hidden constructors */
//@{
DOMXPathNSResolver() {};
//@}
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
/** @name Unimplemented constructors and operators */
//@{
DOMXPathNSResolver(const DOMXPathNSResolver &);
DOMXPathNSResolver& operator = (const DOMXPathNSResolver&);
//@}
public:
// -----------------------------------------------------------------------
// All constructors are hidden, just the destructor is available
// -----------------------------------------------------------------------
/** @name Destructor */
//@{
/**
* Destructor
*
*/
virtual ~DOMXPathNSResolver() {};
//@}
// -----------------------------------------------------------------------
// Virtual DOMDocument interface
// -----------------------------------------------------------------------
/** @name Functions introduced in DOM Level 3 */
//@{
/** 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.
* @param prefix of type XMLCh - The prefix to look for.
* @return the associated namespace URI or null if none is found.
*/
virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
//@}
// -----------------------------------------------------------------------
// Non-standard extension
// -----------------------------------------------------------------------
/** @name Non-standard extension */
//@{
/**
* Non-standard extension
*
* XPath2 implementations require a reverse lookup in the static context.
* Look up the prefix associated with the namespace URI
* The XPath evaluator must never call this with a null or empty argument,
* because the result of doing this is undefined.
* @param URI of type XMLCh - The namespace to look for.
* @return the associated prefix or null if none is found.
*/
virtual const XMLCh* lookupPrefix(const XMLCh* URI) const = 0;
//@}
};
XERCES_CPP_NAMESPACE_END
#endif
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathNamespace.hpp
Index: DOMXPathNamespace.hpp
===================================================================
#ifndef DOMXPathNamespace_HEADER_GUARD_
#define DOMXPathNamespace_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "DOMNode.hpp"
XERCES_CPP_NAMESPACE_BEGIN
class DOMElement;
/**
* The <code>DOMXPathNamespace</code> interface is returned by
<code>DOMXPathResult</code>
* 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 <code>DOMException</code> with the code NO_MODIFICATION_ALLOWED_ERR.
* The core specification describes attributes of the <code>DOMNode</code> 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
* <code>DOMNode</code> 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.
* @since DOM Level 3
*/
class CDOM_EXPORT DOMXPathNamespace : public DOMNode
{
protected:
// -----------------------------------------------------------------------
// Hidden constructors
// -----------------------------------------------------------------------
/** @name Hidden constructors */
//@{
DOMXPathNamespace() {};
//@}
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
/** @name Unimplemented constructors and operators */
//@{
DOMXPathNamespace(const DOMXPathNamespace &);
DOMXPathNamespace& operator = (const DOMXPathNamespace&);
//@}
public:
enum XPathNodeType {
XPATH_NAMESPACE_NODE = 13
};
// -----------------------------------------------------------------------
// All constructors are hidden, just the destructor is available
// -----------------------------------------------------------------------
/** @name Destructor */
//@{
/**
* Destructor
*
*/
virtual ~DOMXPathNamespace() {};
//@}
// -----------------------------------------------------------------------
// Virtual DOMDocument interface
// -----------------------------------------------------------------------
/** @name Functions introduced in DOM Level 3 */
//@{
/**
* The <code>DOMElement</code> 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.
* @since DOM Level 3
*/
virtual DOMElement *getOwnerElement() const = 0;
//@}
};
XERCES_CPP_NAMESPACE_END
#endif
1.1 xml-xerces/c/src/xercesc/dom/DOMXPathResult.hpp
Index: DOMXPathResult.hpp
===================================================================
#ifndef DOMXPathResult_HEADER_GUARD_
#define DOMXPathResult_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include <xercesc/util/XercesDefs.hpp>
XERCES_CPP_NAMESPACE_BEGIN
class DOMXPathNSResolver;
class DOMXPathExpression;
class DOMNode;
/**
* The <code>DOMXPathResult</code> 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.
* @since DOM Level 3
*/
class CDOM_EXPORT DOMXPathResult
{
protected:
// -----------------------------------------------------------------------
// Hidden constructors
// -----------------------------------------------------------------------
/** @name Hidden constructors */
//@{
DOMXPathResult() {};
//@}
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
/** @name Unimplemented constructors and operators */
//@{
DOMXPathResult(const DOMXPathResult &);
DOMXPathResult& operator = (const DOMXPathResult&);
//@}
public:
// -----------------------------------------------------------------------
// All constructors are hidden, just the destructor is available
// -----------------------------------------------------------------------
/** @name Destructor */
//@{
/**
* Destructor
*
*/
virtual ~DOMXPathResult() {};
//@}
// -----------------------------------------------------------------------
// Class Types
// -----------------------------------------------------------------------
/** @name Public Contants */
//@{
/** 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.
*/
enum resultType {
ANY_TYPE = 0,
NUMBER_TYPE = 1,
STRING_TYPE = 2,
BOOLEAN_TYPE = 3,
UNORDERED_NODE_ITERATOR_TYPE = 4,
ORDERED_NODE_ITERATOR_TYPE = 5,
UNORDERED_NODE_SNAPSHOT_TYPE = 6,
ORDERED_NODE_SNAPSHOT_TYPE = 7,
ANY_UNORDERED_NODE_TYPE = 8,
FIRST_ORDERED_NODE_TYPE = 9
};
//@}
// -----------------------------------------------------------------------
// Virtual DOMDocument interface
// -----------------------------------------------------------------------
/** @name Functions introduced in DOM Level 3 */
//@{
/**
* Returns the boolean value of this result
* @return booleanValue of type boolean, readonly
* The value of this boolean result.
* @exception XPathException
* TYPE_ERR: raised if resultType is not BOOLEAN_TYPE.
*/
virtual bool getBooleanValue() const = 0;
/**
* Returns the state of the iterator
* @return invalidIteratorState
* 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.
* @exception XPathException
* TYPE_ERR: raised if resultType is not NUMBER_TYPE.
*/
virtual bool getInvalidIteratorState() const = 0;
/**
* Returns the number value of this result
* @return numberValue
* 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.
* @exception XPathException
* TYPE_ERR: raised if resultType is not NUMBER_TYPE.
*/
virtual double getNumberValue() const = 0;
/**
* Returns the result type of this result
* @return resultType
* A code representing the type of this result, as defined by the type
constants.
* @exception XPathException
* TYPE_ERR: raised if resultType is not ANY_UNORDERED_NODE_TYPE or
FIRST_ORDERED_NODE_TYPE.
*/
virtual short getResultType() const = 0;
/**
* Returns the single node value of this result
* @return singleNodeValue
* The value of this single node result, which may be null.
* @exception XPathException
* TYPE_ERR: raised if resultType is not ANY_UNORDERED_NODE_TYPE or
FIRST_ORDERED_NODE_TYPE.
*/
virtual DOMNode *getSingleNodeValue() const = 0;
/**
* Returns the snapshot length
* @return snapshotLength
* The number of nodes in the result snapshot. Valid values for snapshotItem
indices
* are 0 to snapshotLength-1 inclusive.
* @exception XPathException
* TYPE_ERR: raised if resultType is not UNORDERED_NODE_SNAPSHOT_TYPE or
* ORDERED_NODE_SNAPSHOT_TYPE.
*/
virtual unsigned long getSnapshotLength() const = 0;
/**
* Returns the string value of this result
* @return stringValue
* The value of this string result.
* @exception XPathException
* TYPE_ERR: raised if resultType is not STRING_TYPE.
*/
virtual const XMLCh* getStringValue() const = 0;
/**
* Iterates and returns the next node from the node set or nullif there are no
more nodes.
* @return the next node.
* @exception XPathException
* TYPE_ERR: raised if resultType is not UNORDERED_NODE_ITERATOR_TYPE or
ORDERED_NODE_ITERATOR_TYPE.
* @exception DOMException
* INVALID_STATE_ERR: The document has been mutated since the result was
returned.
*/
virtual DOMNode* iterateNext() const = 0;
/**
* 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.
* @param index of type unsigned long - Index into the snapshot collection.
* @return The node at the indexth position in the NodeList, or null if that is
not a valid index.
* @exception XPathException
* TYPE_ERR: raised if resultType is not UNORDERED_NODE_SNAPSHOT_TYPE or
ORDERED_NODE_SNAPSHOT_TYPE.
*/
virtual DOMNode* snapshotItem(unsigned long index) const = 0;
//@}
};
XERCES_CPP_NAMESPACE_END
#endif
1.45 +25 -2 xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.cpp
Index: DOMDocumentImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.cpp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- DOMDocumentImpl.cpp 29 May 2003 11:57:57 -0000 1.44
+++ DOMDocumentImpl.cpp 20 Aug 2003 11:31:22 -0000 1.45
@@ -85,7 +85,7 @@
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/util/XMLChar.hpp>
#include <xercesc/framework/MemoryManager.hpp>
-
+#include <iostream>
XERCES_CPP_NAMESPACE_BEGIN
@@ -436,6 +436,29 @@
}
}
}
+
+
+const DOMXPathExpression* DOMDocumentImpl::createExpression(const XMLCh
*expression, const DOMXPathNSResolver *resolver)
+{
+ throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0);
+ return 0;
+}
+
+const DOMXPathNSResolver* DOMDocumentImpl::createNSResolver(DOMNode *nodeResolver)
+
+{
+ throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0);
+ return 0;
+}
+
+void* DOMDocumentImpl::evaluate(const XMLCh *expression, DOMNode *contextNode,
const DOMXPathNSResolver *resolver,
+ unsigned short type, void* result)
+{
+ throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0);
+ return 0;
+}
+
+
DOMTreeWalker* DOMDocumentImpl::createTreeWalker (DOMNode *root, unsigned long
whatToShow, DOMNodeFilter* filter, bool entityReferenceExpansion)
{
1.22 +8 -1 xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.hpp
Index: DOMDocumentImpl.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.hpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- DOMDocumentImpl.hpp 23 May 2003 03:37:14 -0000 1.21
+++ DOMDocumentImpl.hpp 20 Aug 2003 11:31:22 -0000 1.22
@@ -107,6 +107,8 @@
class DOMStringPool;
class DOMBuffer;
class MemoryManager;
+class XPathNSResolver;
+class XPathExpression;
typedef RefVectorOf<DOMRangeImpl> Ranges;
typedef RefVectorOf<DOMNodeIteratorImpl> NodeIterators;
@@ -192,6 +194,11 @@
virtual NodeIterators* getNodeIterators() const; //non-standard api
virtual void removeRange(DOMRangeImpl* range); //non-standard
api
virtual void removeNodeIterator(DOMNodeIteratorImpl*
nodeIterator); //non-standard api
+
+ virtual const DOMXPathExpression* createExpression(const XMLCh *expression,
const DOMXPathNSResolver *resolver);
+ virtual const DOMXPathNSResolver* createNSResolver(DOMNode *nodeResolver);
+ virtual void* evaluate(const XMLCh *expression, DOMNode *contextNode, const
DOMXPathNSResolver *resolver,
+ unsigned short type, void* result);
// Extension to be called by the Parser
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]