[286070] [xpath2] Create API and General Documentation for XPath 2.0 Processor
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.classpath b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.classpath
new file mode 100644
index 0000000..fd545ef
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.cvsignore b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.cvsignore
new file mode 100644
index 0000000..a6535f3
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.cvsignore
@@ -0,0 +1 @@
+test.xml
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.project b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.project
new file mode 100644
index 0000000..8e1061b
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.project
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.xml.xpath2.processor.doc.user</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.settings/org.eclipse.jdt.core.prefs b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2b7f98f
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Sat Aug 15 02:24:36 GMT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b54d20f
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.wst.xml.xpath2.processor.doc.user;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %vendorName
+Require-Bundle: org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Eclipse-LazyStart: false
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/about.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/about.html
new file mode 100644
index 0000000..ed30003
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/about.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+
+<BODY lang="EN-US">
+
+<H3>About This Content</H3>
+
+<P>August, 2008</P>
+
+<H3>License</H3>
+
+<P>The Eclipse Foundation makes available all content in this plug-in 
+("Content"). Unless otherwise indicated below, the Content is provided to you 
+under the terms and conditions of the Eclipse Public License Version 1.0 
+("EPL"). A copy of the EPL is available at
+<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
+For purposes of the EPL, "Program" will mean the Content.</P>
+
+<P>If you did not receive this Content directly from the Eclipse Foundation, the 
+Content is being redistributed by another party ("Redistributor") and different 
+terms and conditions may apply to your use of any object code in the Content. 
+Check the Redistributor’s license that was provided with the Content. If no such 
+license exists, contact the Redistributor. Unless otherwise indicated below, the 
+terms and conditions of the EPL still apply to any source code in the Content 
+and such source code may be obtained at
+<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/build.properties b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/build.properties
new file mode 100644
index 0000000..28cb42e
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/build.properties
@@ -0,0 +1,15 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               html/,\
+               toc.xml
+src.includes = buildDoc.xml,\
+               build.properties,\
+               docbook/,\
+               html/,\
+               src/,\
+               toc.xml,\
+               plugin.xml,\
+               mediawiki/
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/buildDoc.xml b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/buildDoc.xml
new file mode 100644
index 0000000..a249fe0
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/buildDoc.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ====================================================================== 
+     Aug 15, 2009 2:27:05 AM                                                        
+
+     XPath 2.0 Processor Documentation Generator    
+     This will take a snapshot of the files on the wiki, that are in wiki text and generate the
+     docbook documents 
+                   
+     dcarver                                                                
+     ====================================================================== -->
+<project name="XPath 2.0 Processor Documentation Generator" default="getwikitext">
+	<description>
+            This will take a snapshot of the files on the wiki, that are in wiki text and generate the 
+    </description>
+	
+	<property name="current-loc" location="." />
+	<property name="workspace" location=".." />
+	<property name="htmldir" value="${current-loc}/html" />
+	<property name="docbookdir" value="${workspace}/DocBookXSL/eclipse" />
+	<property name="docbooksource" value="${current-loc}/docbook"/>
+	<property name="xalan" value="org.apache.xalan.processor.TransformerFactoryImpl" />
+
+	<!-- XSLT Chunking Properties -->
+	<property name="base.dir" value="${htmldir}"/>
+
+	<!-- ================================= 
+          target: default              
+         ================================= -->
+	<target name="getwikitext">
+		<get dest="mediawiki/usermanual/usermanual.mediawiki" src="http://wiki.eclipse.org/index.php?title=PsychoPathXPathProcessor/UserManual&amp;action=raw" />
+	</target>
+
+	<!-- - - - - - - - - - - - - - - - - - 
+          target: depends                      
+         - - - - - - - - - - - - - - - - - -->
+	<target name="convert" depends="getwikitext">
+		<property name="wikitext.standalone" location="lib/plugins" />
+		<!-- path to wikitext standalone package -->
+
+		<path id="wikitext.classpath">
+			<fileset dir="${wikitext.standalone}">
+				<include name="org.eclipse.mylyn.wikitext.*core*.jar" />
+			</fileset>
+		</path>
+
+		<taskdef classpathref="wikitext.classpath" resource="org/eclipse/mylyn/wikitext/core/util/anttask/wikitext-tasks.properties" />
+
+		<wikitext-to-docbook markupLanguage="MediaWiki">
+			<fileset dir="mediawiki">
+				<include name="**/*.mediawiki" />
+			</fileset>
+		</wikitext-to-docbook>
+
+<!--		<wikitext-to-eclipse-help markupLanguage="MediaWiki" 
+			multipleOutputFiles="true"
+			navigationImages="true"
+			helpPrefix="html">
+			<fileset dir="${basedir}">
+    				<include name="mediawiki/**/*.mediawiki"/>
+			</fileset>
+			<stylesheet url="styles/help.css"/>
+			<stylesheet url="styles/main.css"/>
+		</wikitext-to-eclipse-help>
+-->		
+
+	</target>
+
+	<target name="create-doc">
+
+		<xslt force="true" style="${docbookdir}/eclipse33.xsl" in="${docbooksource}/usermanual.xml" out="test.xml">
+			<factory name="${xalan}" />
+			<param name="manifest" expression="1"/>
+			<param name="base.dir" expression="${htmldir}/"/>
+			<param name="create.plugin.xml" expression="0"/>
+			<param name="chunker.output.indent" expression="yes"/>
+			<param name="navig.showtitles" expression="0"/>
+			<param name="suppress.navigation" expression="1"/>
+            <param name="generate.toc" expression="book      toc,title
+chapter   toc,title
+section   title" />
+			<param name="chapter.autolabel" expression="0"/>
+			<param name="section.autolabel" expression="0"/>
+			<param name="html.stylesheet" expression="book.css ../book.css"/>
+			<param name="chunk.section.depth" expression="3"/>
+			<param name="toc.section.depth" expression="5"/>
+			<param name="toc.list.type" expression="ul"/>
+		</xslt>
+		
+		<replace file="${current-loc}/toc.xml" token="${current-loc}/" value=""/>
+	</target>
+	
+</project>
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/docbook/usermanual.xml b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/docbook/usermanual.xml
new file mode 100644
index 0000000..1caf578
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/docbook/usermanual.xml
@@ -0,0 +1,1292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<book>
+  <title>XPath 2.0 Processor User Manual</title>
+
+  <chapter id="Introduction">
+    <title>Introduction</title>
+
+    <para>What is PsychohPath? PsychoPath is a XPath 2.0 XML Schema Aware
+    processor. It is nearly fully compliant to the XPath 2.0 test suite. It is
+    a library that does not require eclipse to be used. Known adopters of
+    PsychoPath include the Xerces-J project for XML Schemas 1.1 assertion
+    support.</para>
+
+    <para>PsychoPath is the only known open-source java XPath 2.0 processor
+    that is fully schema aware. SAXON HE only supports the core functionality.
+    XML Schema awarness provides tighter static checking, and can be used to
+    help determine if certain operations can or should occur on an XML node.
+    For a detailed description of the PsychoPath's design please see the
+    <ulink url="/PsychoPathXPathProcessor/Design">design</ulink>
+    document.</para>
+
+    <section id="Getting_PsychoPath">
+      <title>Getting PsychoPath</title>
+
+      <para>Currently there is no standalone build of PsychoPath. However, you
+      can download the <ulink
+      url="http://download.eclipse.org/webtools/downloads/drops/R3.1/R-3.1-20090616035105/">WTP
+      WST 3.1</ulink> zip file, and use the
+      org.eclipse.wst.xml.xpath2.processor.jar file. This jar has no
+      dependencies on eclipse, and will work as a standard jar file. If you
+      are using an OSGI container, then this is treated as a standard OSGI
+      bundle.</para>
+
+      <tip>
+        <title>PsychoPath 1.1M1</title>
+
+        <para>PsychoPath 1.1M1 is also available to <ulink
+        url="http://download.eclipse.org/webtools/downloads/drops/R3.2/S-3.2M1b-20090814143519/">download</ulink>.
+        1.1M1 passes 96% of the XPath 2.0 test suite.</para>
+      </tip>
+
+      <para>Additional dependencies you currently need are:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>IBM ICU 4.0 or greater</para>
+        </listitem>
+
+        <listitem>
+          <para>Xerces 2.8.0 or greater</para>
+        </listitem>
+
+        <listitem>
+          <para>JavaCup 0.10 or greater.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>If using eclipse, these are all available from the Orbit project.
+      Others can find the necessary jars from their respective project
+      pages.</para>
+    </section>
+  </chapter>
+
+  <chapter id="How_to_feed_Psychopath_XPath_expressions">
+    <title>Using PsychoPath XPath 2.0 API</title>
+
+    <para>Since PsychoPath has been implemented as an external library and not
+    as a complete program, in order to use it, it needs to be accessed from
+    inside another program. To process XPath 2.0 expressions using PsychoPath
+    from another programs one needs to go through the following
+    process:</para>
+
+    <orderedlist>
+      <listitem>
+        <para>Load the XML document</para>
+      </listitem>
+
+      <listitem>
+        <para>Optionally validate the XML document</para>
+      </listitem>
+
+      <listitem>
+        <para>Initialize static and dynamic context in respect to the document
+        root</para>
+      </listitem>
+
+      <listitem>
+        <para>Parse the XPath 2.0 expression</para>
+      </listitem>
+
+      <listitem>
+        <para>Statically verify the XPath 2.0 expression</para>
+      </listitem>
+
+      <listitem>
+        <para>Evaluate the XPath 2.0 expression in respect to the XML
+        document</para>
+      </listitem>
+    </orderedlist>
+
+    <para>To give a better idea of how this process actually works, we’ll go
+    through an example of processing and evaluating the string expression
+    “Hello World!”. In this example the XML document that we load is called
+    “XPexample.xml”.</para>
+
+    <section id="Non-Schema_Aware">
+      <title>Non-Schema Aware</title>
+
+      <programlisting>/**
+ * First load and optionally validate the XML document 
+*/
+// Create an InputStream from the XML document
+InputStream is = new FileInputStream(“XPexample.xml”);
+
+// Initializing the Xerces DOM loader.
+DOMLoader loader = new XercesLoader();
+
+// Optionally set flag to validate XML document loader.setvalidating(validate);
+// Loads the XML document and stores the DOM root
+Document doc = loader.load(is);
+
+/**
+ * Dynamic contexts must be initialised to defaults
+ * dependent on the XML Schema.
+*/
+
+// Extracting the schema from DOM root of Xpexpression.xml.
+ElementPSVI rootPSVI = (ElementPSVI)doc.getDocumentElement();
+XSModel schema = rootPSVI.getSchemaInformation();
+
+// Initialising the DynamicContext.
+DynamicContext dc = new DefaultDynamicContext(schema, doc);
+
+// Register the namespaces of the XPath 2.0 predefined datatypes
+dc.addnamespace(“xs”,”[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]”);
+
+// Register the XPath 2.0 standard functions
+dc.addfunctionlibrary(new FnFunctionLibrary());
+dc.addfunctionlibrary(new XSCtrLibrary());
+
+/**
+ * Parsing the XPath 2.0 expression into an AST representation
+ */
+// Initialises PsychoPath’s supplied parser.
+XPathParser xpp = new JflexCupParser();
+
+// Parses the XPath expression.
+XPath xp = xpp.parse(xpath);
+/**
+ * Static check the AST to verift structural validity of  
+ * XPath 2.0 expression
+ */
+
+// Initializing StaticChecker.
+StaticChecker namecheck = new StaticNameResolver(sc);
+
+// Static Checking the Xpath expression ’Hello World!’ namecheck.check(xp);
+/**
+ * Evaluate the XPath 2.0 expression
+ */
+ 
+// Initializing the evaluator with DynamicContext and the name
+// of the XML document XPexample.xml as parameters.
+Evaluator eval = new DefaultEvaluator(dc, doc);
+ 
+// Evaluates the XPath 2.0 expression, storing the result
+// in the ResultSequence
+ResultSequence rs = eval.evaluate(xp); 
+</programlisting>
+    </section>
+
+    <section id="Schema_Aware">
+      <title>Schema Aware</title>
+
+      <para></para>
+
+      <programlisting>/**
+ * First load and optionally validate the XML document 
+*/
+
+ SchemaFactory schemaFactory = new XMLSchemaFactory();
+ URL schemaURL = new File("XPexample.xsd").toURL();
+ Schema jaxpschema = schemaFactory.newSchema(schemaURL);
+
+// Create an InputStream from the XML document
+InputStream is = new FileInputStream(“XPexample.xml”);
+
+// Initializing the Xerces DOM loader.
+DOMLoader loader = new XercesLoader(jaxpschema);
+
+// Optionally set flag to validate XML document loader.setvalidating(validate);
+// Loads the XML document and stores the DOM root
+Document doc = loader.load(is);
+
+/**
+ * Dynamic contexts must be initialised to defaults
+ * dependent on the XML Schema.
+*/
+
+// Initialising the DynamicContext.
+DynamicContext dc = new DefaultDynamicContext(jaxpschema, doc);
+
+// Register the namespaces of the XPath 2.0 predefined datatypes
+dc.addnamespace(“xs”,”[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]”);
+
+// Register the XPath 2.0 standard functions
+dc.addfunctionlibrary(new FnFunctionLibrary());
+dc.addfunctionlibrary(new XSCtrLibrary());
+
+/**
+ * Parsing the XPath 2.0 expression into an AST representation
+ */
+// Initialises PsychoPath’s supplied parser.
+XPathParser xpp = new JflexCupParser();
+
+// Parses the XPath expression.
+XPath xp = xpp.parse(xpath);
+
+/**
+ * Static check the AST to verift structural validity of  
+ * XPath 2.0 expression
+ */
+
+// Initilising StaticChecker.
+StaticChecker namecheck = new StaticNameResolver(sc);
+
+// Static Checking the Xpath expression ’Hello World!’ namecheck.check(xp);
+/**
+ * Evaluate the XPath 2.0 expression
+ */
+
+// Initialising the evaluator with DynamicContext and the name
+// of the XML document XPexample.xml as parameters.
+Evaluator eval = new DefaultEvaluator(dc, doc); 
+
+// Evaluates the XPath 2.0 expression, storing the result
+// in the ResultSequence
+ResultSequence rs = eval.evaluate(xp); 
+</programlisting>
+
+      <para>XPath 2.0 defines everything to be a sequence of items, including
+      the arguments to expressions and the result of operations. Thus, the
+      overall result of an XPath expression evaluation is also a sequence of
+      items. PsychoPath uses the class ResultSequence as a Collections wrapper
+      to store these sequences and therefore, the result of an evaluation is
+      of this type also. The ResultSequence consists of zero or more items; an
+      item may be a node or a simple-value. “Hello World!” is an example of a
+      single value with length 1. A general sequence could be written as (“a”,
+      “s”, “d”, “f”).</para>
+
+      <para>Extraction of certain items from the ResultSequence class is
+      described below, with details of the different operations that one might
+      apply on the ResultSequence. Consider that ’rs’ is the ResultSequence,
+      then:</para>
+
+      <para></para>
+
+      <programlisting>// Will return the number of elements in the sequence, in this
+// case of ’Hello World!’ expression size = 1.
+rs.size(); 
+
+// Will return the n’th element in the sequence, in this case of
+// ’Hello World!’, if n = 1, then it will return
+// XSString of “Hello World!”, but if n = 2, it will return
+// Empty Result.
+rs.get(n);
+
+//Will return true if the sequence is empty.
+rs.empty(); 
+
+// Will return the first element of the sequence, 
+// in this example it will return XSString of “Hello World!” 
+rs.first() 
+</programlisting>
+
+      <para>However, all the items extracted will be of the type’s base class
+      AnyType and need to be casted into its actual subtype.</para>
+
+      <para>Certain operations always return a particular type and using this
+      knowledge, the extracted item can be immediately casted. In our example
+      “Hello World!” returns a string (easily known as it is inside the quotes
+      ’ ’ ), so this can safely be casted as such:</para>
+
+      <para><programlisting>XSString xsstring = XSString)(rs.first());</programlisting>The
+      actual result can now be extracted from this XSString in the following
+      manner: <programlisting>String str = xsstring.value();</programlisting></para>
+
+      <para>The details of how to cast extracted items from AnyType into their
+      actual subtypes with examples is in the next section on How to use each
+      production in the grammar.</para>
+
+      <para>However, if the expected return type is unknown or multiple types
+      are possible, the types hierarchy can be traversed in a breadth first
+      manner making use of the Java instanceof operator to ascertain the
+      actual type. </para>
+    </section>
+
+    <section id="How_to_use_the_XPath_2.0_grammar_with_PsychoPath">
+      <title>How to use the XPath 2.0 grammar with PsychoPath</title>
+
+      <para>In this section we will try to give you an overview of the XPath
+      2.0 grammar in general and how each production in the grammar should be
+      used with PsychoPath. For the formal specifications, see the W3C
+      web-site for XPath 2.0 specification <ulink
+      url="http://www.w3.org/TR/xpath20">http://www.w3.org/TR/xpath20</ulink>.</para>
+
+      <section id="Constants">
+        <title>Constants</title>
+
+        <para>String literals are written as “Hello” or ‘Hello’. In each case
+        the opposite kind of quotation mark can be used within the string: ‘He
+        said “Hello” ’ or “London is a big city”. To feed PsychoPath, “ ‘Hello
+        World!’ ”or “ “Hello World!” ” can be used to feed it with strings.
+        Remember that the ResultSequence returns AnyType so since a string is
+        being expected as the result, first it has to be casted in the code
+        like this: <programlisting>XSString xsstring = (XSString)(rs.first());</programlisting>
+        Numeric constants follow the Java rules for decimal literals: for
+        example, 4 or 4.67; a negative number can be written as -3.05. The
+        numeric literal is taken as a double precision floating point number
+        if it uses scientific notation (e.g. 1.0e7), as a fixed point decimal
+        if it includes a decimal point, or as an integer otherwise. When
+        extracting number literals from the ResultSequence, possible types to
+        be returned include <emphasis role="italic">XSDecima''l (e.g. :
+        xs:decimal: 4.67),''XSInteger ''(e.g. : xs:integer: 4) or
+        ''XSDouble</emphasis> (e.g. : xs:double 1e0). All of which need to be
+        cast in the same manner as stated before: from AnyType to their
+        corresponding types.</para>
+
+        <para>There are no boolean constants as such: <emphasis
+        role="italic">true, false</emphasis> instead the function calls
+        <emphasis role="bold">true()</emphasis> and <emphasis
+        role="bold">false()</emphasis> are used.</para>
+
+        <para>Constants of other data types can be written using constructors.
+        These look like function calls but require a string literal as their
+        argument. For example, <emphasis
+        role="bold">xs:float(“10.7”)</emphasis> produces a single-precision
+        floating point number.</para>
+      </section>
+
+      <section id="Path_expressions">
+        <title>Path expressions</title>
+
+        <para>A path expression is a sequence of steps separated by the
+        <emphasis role="bold">/''' or '''//</emphasis> operator. For example,
+        <emphasis role="bold">../@desc</emphasis> selects the desc attribute
+        of the parent of the context node.</para>
+
+        <para>In XPath 2.0, path expressions have been generalized so that any
+        expression can be used as an operand of <emphasis
+        role="bold">/</emphasis>, (both on the left and the right), as long as
+        its value is a sequence of nodes. For example, it is possible to use a
+        union expression (in parentheses) or a call to the id()
+        function.</para>
+
+        <para>In practice, it only makes sense to use expressions on the right
+        of <emphasis role="bold">"/"</emphasis> if they depend on the context
+        item. It is legal to write $x/$y provided both $x and $y are sequences
+        of nodes, but the result is exactly the same as writing <emphasis
+        role="bold"> <emphasis role="italic">./$y</emphasis>
+        </emphasis>.</para>
+
+        <para>Note that the expressions <emphasis role="bold">./$X</emphasis>
+        or <emphasis role="bold">$X/.</emphasis> can be used to remove
+        duplicates from <emphasis role="bold">$X</emphasis> and sort the
+        results into document order.</para>
+
+        <para>The operator <emphasis role="bold">//</emphasis> is an
+        abbreviation for <emphasis
+        role="bold">/descendant-or-self::node()</emphasis>. An expression of
+        the form <emphasis role="bold">/E</emphasis> is shorthand for
+        <emphasis role="bold">root(.)/E</emphasis>, and the expression
+        <emphasis role="bold">/''' on its own is shorthand for
+        '''root(.)</emphasis>.</para>
+      </section>
+
+      <section id="Axis_steps">
+        <title>Axis steps</title>
+
+        <para>The basic primitive for accessing a source document is the axis
+        step. Axis steps may be combined into path expressions using the path
+        operators "/" and "//", and they may be filtered using filter
+        expressions in the same way as the result of any other
+        expression.</para>
+
+        <para>An axis step has the basic form axis::node-test, and selects
+        nodes on a given axis that satisfy the node-test. The axes available
+        are:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>element: age</para>
+          </listitem>
+
+          <listitem>
+            <para>element: age</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The rest of the axes act in the same manner.</para>
+      </section>
+
+      <section id="Set_difference.2C_intersection_and_Union">
+        <title>Set difference, intersection and Union</title>
+
+        <para>The expression E1 except E2 selects all nodes that are in E1
+        unless they are also in E2. Both expressions must return sequences of
+        nodes. The results are returned in document order. For example, @*
+        except @note returns all attributes except the note attribute. The
+        expression E1 intersect E2 selects all nodes that are in both E1 and
+        E2. Both expressions must return sequences of nodes. The results are
+        returned in document order. The expression E1 union E2 selects all
+        nodes that are in either E1 or E2 or both. Both expressions must
+        return sequences of nodes. The results are returned in document order.
+        A complete example of the above expression would be as follows.
+        Consider an XML document which looks like this:</para>
+
+        <programlisting>&lt;nodes&gt;
+  &lt;a&gt;
+    &lt;connecteda&gt;A&lt;/connecteda&gt;
+    &lt;connecteda&gt;B&lt;/connecteda&gt;
+    &lt;connecteda&gt;C&lt;/connecteda&gt;
+  &lt;/a&gt;
+  &lt;b&gt;
+    &lt;connectedb&gt;B&lt;/connectedb&gt;
+    &lt;connectedb&gt;C&lt;/connectedb&gt;
+    &lt;connectedb&gt;D&lt;/connectedb&gt;
+  &lt;/b&gt;
+&lt;/nodes&gt;
+</programlisting>
+
+        <para>Then an example of each of the expressions would be:</para>
+
+        <para><programlisting>data(/a/*) union data(/b/*)</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:string: A</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:string: B</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:string: C</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:string: D</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>data(/a/*) intersect data(/b/*)</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:string: B</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:string: C</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>data(/a/*) except data(/b/*)</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:string: D</para>
+          </listitem>
+        </orderedlist>
+      </section>
+
+      <section id="Arithmetic_Expressions">
+        <title>Arithmetic Expressions</title>
+
+        <section id="Unary">
+          <title>Unary</title>
+
+          <para>minus and plus: The unary minus operator changes the sign of a
+          number. For example -1 is minus one, and -1e0 is the double value
+          negative -1.</para>
+        </section>
+
+        <section id="Multiplication_and_Division:">
+          <title>Multiplication and Division:</title>
+
+          <para>The operator * multiplies two numbers. If the operands are of
+          different types, XPath 2.0 specifications say that one of them is
+          promoted to the type of the other. The result is the same type as
+          the operands after promotion.</para>
+
+          <para>The operator div divides two numbers. Dividing two integers
+          produces a double; in other cases the result is the same type as the
+          operands.</para>
+
+          <para>The operator idiv performs integer division. For example, the
+          result of 10 idiv 3 is 3.</para>
+
+          <para>The mod operator returns the modulus (or remainder) after
+          division.</para>
+
+          <para>The operators * and div may also be used to multiply or divide
+          a range by a number.</para>
+
+          <para>For example, <emphasis role="italic">(1 idiv 1 to
+          3)</emphasis> returns the result: <emphasis
+          role="italic">xs:integer: 1, xs:integer: 2, xs:integer:
+          3</emphasis></para>
+        </section>
+
+        <section id="Addition_and_Subtraction:">
+          <title>Addition and Subtraction:</title>
+
+          <para>The operators <emphasis role="bold">+</emphasis> and <emphasis
+          role="italic">'-'</emphasis> perform addition and subtraction of
+          numbers, in the usual way. Once again, if the operands are of
+          different types, XPath 2.0 specifications say one of them is
+          promoted but numeric type promotion is currently unsupported by
+          PsychoPath. The result is of the same type as the operands.</para>
+
+          <para>Examples of above would be:</para>
+
+          <para><programlisting> -(5 + 7)</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>xs:integer: -12</para>
+            </listitem>
+          </orderedlist>
+
+          <para><programlisting>-xs:float(’1.23’)</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>xs:float: -1.23</para>
+            </listitem>
+          </orderedlist>
+
+          <para><programlisting>-xs:double(’1.23’)</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>xs:double: -1.23</para>
+            </listitem>
+          </orderedlist>
+
+          <para><programlisting>(+5 - +7)</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>xs:integer: -2</para>
+            </listitem>
+          </orderedlist>
+
+          <para><programlisting>(1 to 5 div 0 )</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <itemizedlist>
+            <listitem>
+              <para>FAIL (division by zero!)</para>
+            </listitem>
+          </itemizedlist>
+
+          <para><programlisting>5*6*10*5*96 div 20 div 3 div 1</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>xs:decimal: 2400.0</para>
+            </listitem>
+          </orderedlist>
+
+          <para><programlisting>31 mod 15</programlisting></para>
+
+          <para> <emphasis role="bold">result:</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>xs:integer: 1</para>
+            </listitem>
+          </orderedlist>
+        </section>
+      </section>
+
+      <section id="Range_expressions">
+        <title>Range expressions</title>
+
+        <para>The expression E1 to E2 returns a sequence of integers. For
+        example, 1 to 5 returns the sequence 1, 2, 3, 4, 5. This is useful in
+        for expressions, for example the first five nodes of a node sequence
+        can be processed by writing for $i in 1 to 5 return (//x) <ulink
+        url="$i">$i</ulink>. Another example:</para>
+
+        <para><programlisting>(1+1 to 10)</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:integer: 2</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 3</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 4</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 5</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 6</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 7</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 8</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 9</para>
+          </listitem>
+
+          <listitem>
+            <para>xs:integer: 10</para>
+          </listitem>
+        </orderedlist>
+      </section>
+
+      <section id="Comparisons">
+        <title>Comparisons</title>
+
+        <para>The simplest comparison operators are <emphasis
+        role="bold">eq</emphasis>, <emphasis role="bold">ne</emphasis>,
+        <emphasis role="bold">lt</emphasis>, <emphasis
+        role="bold">le</emphasis>, <emphasis role="bold">gt</emphasis>,
+        <emphasis role="bold">ge</emphasis>. These compare two atomic values
+        of the same type, for example two integers, two dates, or two strings.
+        (Collation hasn’t been implemented in current version of PsychoPath).
+        If the operands are not atomic values, an error is raised.</para>
+
+        <para>The operators <emphasis role="bold">=''', </emphasis>!='
+        <emphasis role="italic">, '</emphasis>&lt;=' <emphasis role="italic">,
+        '</emphasis>&gt; <emphasis role="bold">, '''&lt;</emphasis>, and
+        <emphasis role="bold">&gt;=</emphasis> can compare arbitrary
+        sequences. The result is true if any pair of items from the two
+        sequences has the specified relationship, for example <emphasis
+        role="italic">$A = $B</emphasis> is true if there is an item in
+        <emphasis role="italic">$A</emphasis> that is equal to some item in
+        <emphasis role="italic">$B</emphasis>.</para>
+
+        <para>The operators <emphasis role="bold">is</emphasis> and <emphasis
+        role="bold">isnot</emphasis> test whether the operands represent the
+        same (identical) node. For example, <emphasis role="italic">title
+        <ulink url="1">1</ulink> is * <ulink url="@note">@note</ulink> <ulink
+        url="1">1</ulink> </emphasis> is true if the first title child is the
+        first child element that has a <emphasis
+        role="italic">@note</emphasis> attribute. If either operand is an
+        empty sequence the result is an empty sequence (which will usually be
+        treated as false).</para>
+
+        <para>The operators <emphasis role="bold">&lt;&lt;</emphasis> and
+        <emphasis role="bold">&gt;&gt;</emphasis> test whether one node
+        precedes or follows another in document order. Consider this XML
+        document:</para>
+
+        <programlisting>&lt;book&gt;
+ &lt;title&gt;Being a Dog Is a Full-Time Job&lt;/title&gt;
+ &lt;author&gt;Charles M. Schulz&lt;/author&gt;
+ &lt;character&gt;
+   &lt;name&gt;Snoopy&lt;/name&gt;
+   &lt;friend-of&gt;Peppermint Patty&lt;/friend-of&gt;
+   &lt;since&gt;1950-10-04&lt;/since&gt;
+   &lt;age&gt;2&lt;/age&gt;
+   &lt;qualification&gt;extroverted beagle&lt;/qualification&gt;
+ &lt;/character&gt;
+ &lt;character&gt;
+   &lt;name&gt;Peppermint Patty&lt;/name&gt;
+   &lt;since&gt;1966-08-22&gt;/since&gt;
+   &lt;age&gt;4&lt;/age&gt;
+   &lt;qualification&gt;bold, brash and tomboyish&lt;/qualification&gt;
+ &lt;/character&gt;
+&lt;/book&gt;
+</programlisting>
+
+        <para>Example:</para>
+
+        <para><programlisting>book/character name="Snoopy" &lt;&lt; book/character Patty" </programlisting></para>
+
+        <para><emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:boolean: true</para>
+          </listitem>
+        </orderedlist>
+
+        <para>book/character <ulink url="name=&quot;Peppermint">Patty"</ulink>
+        &lt;&lt; book/character <ulink
+        url="name=&quot;Snoopy&quot;">name="Snoopy"</ulink> <emphasis
+        role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:boolean: false</para>
+          </listitem>
+        </orderedlist>
+      </section>
+
+      <section id="Conditional_Expressions">
+        <title>Conditional Expressions</title>
+
+        <para>XPath 2.0 allows a conditional expression of the form <emphasis
+        role="italic">if ( E1 ) then E2 else E3</emphasis>. For example,
+        <emphasis role="italic">if (@discount) then @discount else
+        0</emphasis> returns the value of the discount attribute if it is
+        present, or zero otherwise.</para>
+      </section>
+
+      <section id="Quantified_Expressions">
+        <title>Quantified Expressions</title>
+
+        <para>The expression <emphasis role="italic">some $x in E1 satisfies
+        E2</emphasis> returns true if there is an item in the sequence E1 for
+        which the effective boolean value of E2 is true. Note that E2 must use
+        the range variable <emphasis role="italic">$x</emphasis> to refer to
+        the item being tested; it does not become the context item. For
+        example, <emphasis role="italic">some $x in @* satisfies $x eq
+        ""</emphasis> is true if the context item is an element that has at
+        least one zero-length attribute value.</para>
+
+        <para>Similarly, the expression <emphasis role="italic">every $x in E1
+        satisfies E2</emphasis> returns true if every item in the sequence
+        given by E1 satisfies the condition.</para>
+      </section>
+
+      <section id="And.2C_Or_Expressions">
+        <title>And, Or Expressions</title>
+
+        <para>The expression <emphasis role="italic">E1 and E2</emphasis>
+        returns true if the effective boolean values of E1 and E2 are both
+        true. The expression <emphasis role="italic">E1 or E2</emphasis>
+        returns true if the effective boolean values of either or both of E1
+        and E2 are true.</para>
+
+        <para><programlisting> (for a truth table) 1 and 1</programlisting></para>
+
+        <para><emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:boolean: true</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>1 and 0</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:boolean: false</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>1 or 0</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:boolean: true</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>0 or 1</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:boolean: true</para>
+          </listitem>
+        </orderedlist>
+
+        <para></para>
+      </section>
+
+      <section id="SequenceType_Matching_Expressions">
+        <title>SequenceType Matching Expressions</title>
+
+        <para>The rules for SequenceType matching compare the actual type of a
+        value with an expected type. These rules are a subset of the formal
+        rules that match a value with an expected type defined in XQuery 1.0
+        and XPath 2.0 Formal Semantics <ulink
+        url="http://www.w3.org/TR/xpath20/#XQueryFormalSemantics">http://www.w3.org/TR/xpath20/#XQueryFormalSemantics</ulink>,
+        because the Formal Semantics must be able to match a value with any
+        XML Schema type, whereas the rules below only match values against
+        those types expressible by the SequenceType syntax.</para>
+
+        <para>Some of the rules for SequenceType matching require determining
+        whether a given type name is the same as or derived from an expected
+        type name. The given type name may be "known" (defined in the in-scope
+        schema definitions), or "unknown" (not defined in the in-scope schema
+        definitions). An unknown type name might be encountered, for example,
+        if a source document has been validated using a schema that was not
+        imported into the static context. In this case, an implementation is
+        allowed (but is not required) to provide an implementation-dependent
+        mechanism for determining whether the unknown type name is derived
+        from the expected type name. For example, an implementation might
+        maintain a data dictionary containing information about type
+        hierarchies. consider the following XML document:</para>
+
+        <programlisting>&lt;sorbo&gt;
+ &lt;is&gt;elite&lt;/is&gt;
+ &lt;!-- life sux --&gt;
+&lt;/sorbo&gt;
+</programlisting>
+
+        <para>Then, the following are some example of SequenceType
+        matchings:</para>
+
+        <para><programlisting> element({*})</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>element: sorbo</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>element(elite)</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>Empty results</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>sorbo/comment()</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>comment: life sux</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>data(/sorbo/comment())</programlisting></para>
+
+        <para> <emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>xs:string: life sux</para>
+          </listitem>
+        </orderedlist>
+
+        <para><programlisting>sorbo/node()</programlisting></para>
+
+        <para><emphasis role="bold">result:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>text:</para>
+          </listitem>
+
+          <listitem>
+            <para>element: is</para>
+          </listitem>
+
+          <listitem>
+            <para>comment: life sux</para>
+          </listitem>
+
+          <listitem>
+            <para>text:</para>
+          </listitem>
+        </orderedlist>
+
+        <para></para>
+      </section>
+    </section>
+  </chapter>
+
+  <chapter id="How_to_use_XPath_2.0_functions_with_PsychoPath">
+    <title>How to use XPath 2.0 functions with PsychoPath</title>
+
+    <para>The aim of this section is to give the user an overview of the
+    available XPath 2.0 functions that are implemented in PsychoPath. For the
+    formal specifications, see the W3C web-site for XPath 2.0 functions and
+    operators <ulink
+    url="http://www.w3.org/TR/xpath-functions/">http://www.w3.org/TR/xpath-functions/</ulink>.</para>
+
+    <section id="Accessors">
+      <title>Accessors</title>
+
+      <para>In order for PsychoPath to operate on instances of the XPath 2.0
+      data model, the model must expose the properties of the items it
+      contains. It does this by defining a family of accessor functions. These
+      functions are not available to users or applications to call directly.
+      Instead, they are descriptions of the information that an implementation
+      of the model must expose to applications.</para>
+
+      <para>data(‘string’)</para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XSString)rs.first()).stringvalue();
+println(n);</programlisting></para>
+
+      <para>In order to get the result of ‘string’</para>
+    </section>
+
+    <section id="Constructor_Functions">
+      <title>Constructor Functions</title>
+
+      <para><programlisting>xs:dateTime("2002-02-01T10:00:00+06:00")</programlisting></para>
+
+      <para>From within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XSDateTime)rs.first()).stringvalue(); println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘2002-02-01T04:00:00Z’</para>
+    </section>
+
+    <section id="Functions_on_Numeric_Values">
+      <title>Functions on Numeric Values</title>
+
+      <para><programlisting>ceiling(xs:float(‘10.4’))</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>float n = ((XSFloat)rs.first()).floatvalue();
+println(n);</programlisting></para>
+
+      <para>In order to get the result of ‘11.0’</para>
+    </section>
+
+    <section id="Functions_to_Assemble_and_Disassemble_Strings">
+      <title>Functions to Assemble and Disassemble Strings</title>
+
+      <para><programlisting>codepoints-to-string(0111)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XSString)rs.first()).stringvalue();
+println(n);&lt;/source&gt;</programlisting></para>
+
+      <para>In order to get the result of ‘o’</para>
+    </section>
+
+    <section id="Compare_and_Other_Functions_on_String_Values">
+      <title>Compare and Other Functions on String Values</title>
+
+      <para><programlisting>concat(‘un’, ‘grateful’)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XSString)rs.first()).stringvalue();
+println(n);</programlisting></para>
+
+      <para>In order to get the result of ‘ungrateful’</para>
+    </section>
+
+    <section id="Functions_Based_on_Substring_Matching">
+      <title>Functions Based on Substring Matching</title>
+
+      <para><programlisting>contains("abc", "edf")</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value();
+println(n);</programlisting></para>
+
+      <para>In order to get the result of ‘false’</para>
+    </section>
+
+    <section id="String_Functions_that_Use_Pattern_Matching">
+      <title>String Functions that Use Pattern Matching</title>
+
+      <para><programlisting>matches(‘abcd’, ‘abcd’)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value();
+println(n);</programlisting></para>
+
+      <para>In order to get the result of ‘true’</para>
+    </section>
+
+    <section id="Functions_on_Boolean_Values">
+      <title>Functions on Boolean Values</title>
+
+      <para><programlisting>not(true())</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value();
+println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘false’</para>
+    </section>
+
+    <section id="Component_Extraction_Functions_on_Durations.2C_Dates_and_Times">
+      <title>Component Extraction Functions on Durations, Dates and
+      Times</title>
+
+      <para><programlisting>timezone-from-time(xs:time("13:20:00+05:00"))</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); 
+println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘PT5H’</para>
+    </section>
+
+    <section id="Functions_Related_to_QNames">
+      <title>Functions Related to QNames</title>
+
+      <para><programlisting>local-name-from-QName(QName(‘ <ulink
+            url="http://www.example.com/example">http://www.example.com/example</ulink>’, ‘person’))</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XSNCName)rs.first()).stringvalue();
+println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘person’</para>
+    </section>
+
+    <section id="Functions_on_Nodes">
+      <title>Functions on Nodes</title>
+
+      <para></para>
+
+      <section id="General_Functions_on_Sequences">
+        <title>General Functions on Sequences</title>
+
+        <para><programlisting>remove((‘s’,‘o’,‘m’,‘e’,‘t’,‘h’,‘i’,‘n’,‘g’), 6)</programlisting></para>
+
+        <para>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</para>
+
+        <programlisting>for (Iterator iter = rs.iterator(); iter.hasNext();) {
+  Object item = iter.next(); 
+  String n = ((XSString)item).stringvalue();
+  print(n + " ");
+} println("");
+</programlisting>
+
+        <para>in order to get the result of ‘s o m e t i n g’</para>
+      </section>
+
+      <section id="Functions_That_Test_the_Cardinality_of_Sequences">
+        <title>Functions That Test the Cardinality of Sequences</title>
+
+        <para><programlisting>one-or-more((1,2,3,4,5))</programlisting></para>
+
+        <para>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</para>
+
+        <programlisting>for (Iterator iter = rs.iterator(); iter.hasNext();) {
+ Object item = iter.next();
+ int n = ((XSInteger)item).intvalue();
+ print(n + " ");
+} println("");
+</programlisting>
+
+        <para>in order to get the result of ‘1 2 3 4 5’</para>
+      </section>
+
+      <section id="Deep-Equal.2C_Aggregate_Functions.2C_and_Functions_that_Generate_Sequences">
+        <title>Deep-Equal, Aggregate Functions, and Functions that Generate
+        Sequences</title>
+
+        <para><programlisting>avg((3,4,5))</programlisting></para>
+
+        <para>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</para>
+
+        <para><programlisting>double avg = ((XSDouble)rs.first()).doublevalue();
+println(avg);</programlisting></para>
+
+        <para>in order to get the result of ‘4.0’</para>
+      </section>
+
+      <section id="Context_Functions">
+        <title>Context Functions</title>
+
+        <para><programlisting>(10 to 20) = 2</programlisting></para>
+
+        <para>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</para>
+
+        <para><programlisting>int pos = ((XSInteger)rs.first()).intvalue(); println(pos);</programlisting></para>
+
+        <para>in order to get the result of ‘11’</para>
+      </section>
+    </section>
+  </chapter>
+
+  <chapter id="How_to_use_XPath_2.0_operators_with_PsychoPath">
+    <title>How to use XPath 2.0 operators with PsychoPath</title>
+
+    <para>The aim of this section is to give the user an overview of the
+    available XPath 2.0 operators that are implemented in PsychoPath. For the
+    formal specifications, see the W3C web-site for XPath 2.0 functions and
+    operators <ulink
+    url="http://www.w3.org/TR/xpath-functions/">http://www.w3.org/TR/xpath-functions/</ulink>.</para>
+
+    <para></para>
+
+    <section id="Operators_on_Numeric_Values">
+      <title>Operators on Numeric Values</title>
+
+      <para><programlisting>xs:integer(4) + xs:integer(3)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>Integer n = ((XSInteger)rs.first()).integervalue(); 
+println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘7’</para>
+    </section>
+
+    <section id="Comparison_of_Numeric_Values">
+      <title>Comparison of Numeric Values</title>
+
+      <para><programlisting>xs:decimal(3.3) = xs:decimal(6.6)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value(); println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘false’</para>
+    </section>
+
+    <section id="Operators_on_Boolean_Values">
+      <title>Operators on Boolean Values</title>
+
+      <para><programlisting>xs:boolean(’true’) gt xs:boolean(’false’)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value(); println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘true’</para>
+    </section>
+
+    <section id="Comparisons_of_Duration.2C_Date_and_Time_Values">
+      <title>Comparisons of Duration, Date and Time Values</title>
+
+      <para><programlisting>xs:time("23:00:00+06:00") lt xs:time("12:00:00-06:00")</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value(); 
+println(n);</programlisting></para>
+
+      <para>in order to get the result of ‘true’</para>
+    </section>
+
+    <section id="Arithmetic_Functions_on_Durations">
+      <title>Arithmetic Functions on Durations</title>
+
+      <para><programlisting>multiply-dayTimeDuration(xs:dayTimeDuration("PT2H10M"), 2.1)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); 
+println(n);</programlisting></para>
+
+      <para>which returns a xdt:dayTimeDuration value corresponding to 4 hours
+      and 33 minutes ‘PT4H33M’</para>
+    </section>
+
+    <section id="Arithmetic_Functions_Dates_and_Times">
+      <title>Arithmetic Functions Dates and Times</title>
+
+      <para><programlisting>add-yearMonthDuration-to-dateTime( xs:dateTime("2000-10-30T11:12:00"), xdt:yearMonthDuration("P1Y2M"))</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>String n = ((XSDateTime)rs.first()).stringvalue(); 
+println(n);</programlisting></para>
+
+      <para>which returns an xs:dateTime value corresponding to the lexical
+      representation ‘2001-12-30T11:12:00’</para>
+    </section>
+
+    <section id="Operators_Related_to_QNames_And_Nodes">
+      <title>Operators Related to QNames And Nodes</title>
+
+      <para><programlisting>xs:QName(’ao’) eq xs:QName(’ao’)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>boolean n = ((XSBoolean)rs.first()).value(); 
+println(n);</programlisting></para>
+
+      <para>which returns the result of ‘true’</para>
+    </section>
+
+    <section id="Union.2C_Intersection_and_Except">
+      <title>Union, Intersection and Except</title>
+
+      <para><programlisting>union($seq2, $seq3)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <programlisting>for (Iterator iter = rs.iterator(); iter.hasNext();) {
+  Object item = iter.next();
+  String n = ((XSString)item).stringvalue();
+  print(n + ", ");
+}
+println("");
+</programlisting>
+
+      <para> </para>
+
+      <para>which returns the sequence consisting of $item1, $item2,
+      $item3.</para>
+
+      <para></para>
+    </section>
+
+    <section id="Operators_that_Generate_Sequences">
+      <title>Operators that Generate Sequences</title>
+
+      <para><programlisting>(1 to 3)</programlisting></para>
+
+      <para>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</para>
+
+      <para><programlisting>int n = (XSInteger)rs.first()).stringvalue(); 
+println(n);</programlisting></para>
+
+      <para>which returns the sequence consisting of 1, 2, 3.</para>
+    </section>
+  </chapter>
+</book>
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/book.css b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/book.css
new file mode 100644
index 0000000..f4c35e7
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/book.css
@@ -0,0 +1,222 @@
+p.Code {
+	display: block;
+	text-align: left;
+	text-indent: 0.00pt;
+	margin-top: 0.000000pt;
+	margin-bottom: 0.000000pt;
+	margin-right: 0.000000pt;
+	margin-left: 15pt;
+	font-weight: normal;
+	font-style: normal;
+	color: #4444CC;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+	font-family: "Courier New", Courier, monospace;
+}
+
+H6.CaptionFigColumn {
+	display: block;
+	text-align: left;
+	text-indent: 0.000000pt;
+	margin-top: 3.000000pt;
+	margin-bottom: 11.000000pt;
+	margin-right: 0.000000pt;
+	margin-left: 0.000000pt;
+	font-size: 75%;
+	font-weight: bold;
+	font-style: Italic;
+	color: #000000;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+p.Note {
+	display: block;
+	text-align: left;
+	text-indent: 0pt;
+	margin-top: 19.500000pt;
+	margin-bottom: 19.500000pt;
+	margin-right: 0.000000pt;
+	margin-left: 30pt;
+	font-size: 110%;
+	font-weight: normal;
+	font-style: Italic;
+	color: #000000;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+EM.UILabel {
+	font-weight: Bold;
+	font-style: normal;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+EM.CodeName {
+	font-weight: Bold;
+	font-style: normal;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+	font-family: "Courier New", Courier, monospace;
+}
+
+UL.NavList {
+	margin-left: 1.5em;
+	padding-left: 0px;
+	list-style-type: none;
+}
+
+body,html {
+	border: 0px
+}
+
+/* following font face declarations need to be removed for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+	font-family: Arial, Helvetica, sans-serif;
+	color: #000000
+}
+
+pre,code {
+	font-family: "Courier New", Courier, monospace;
+}
+
+/* end font face declarations */
+@media print {
+	html {
+		font-size: 12pt
+	}
+}
+
+body {
+	font-size: 83%;
+	background: #FFFFFF;
+	margin-bottom: 1em
+}
+
+h1 {
+	font-size: 180%;
+	margin-top: 5px;
+	margin-bottom: 1px
+}
+
+h2 {
+	font-size: 140%;
+	margin-top: 25px;
+	margin-bottom: 3px
+}
+
+h3 {
+	font-size: 110%;
+	margin-top: 20px;
+	margin-bottom: 3px
+}
+
+h4 {
+	font-size: 100%;
+	margin-top: 20px;
+	margin-bottom: 3px;
+	font-style: italic
+}
+
+p {
+	margin-top: 10px;
+	margin-bottom: 10px
+}
+
+pre {
+	font-size: 93%;
+	margin-left: 6;
+	color: #4444CC
+}
+
+code {
+	font-size: 93%;
+}
+
+table {
+	font-size: 100%
+}  /* needed for quirks mode */
+a:link {
+	color: #0000FF
+}
+
+a:hover {
+	color: #000080
+}
+
+a:visited {
+	text-decoration: underline
+}
+
+ul {
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+
+li {
+	margin-top: 5px;
+	margin-bottom: 5px;
+}
+
+li p {
+	margin-top: 5px;
+	margin-bottom: 5px;
+}
+
+ol {
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+
+dl {
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+
+dt {
+	margin-top: 5px;
+	margin-bottom: 5px;
+	font-weight: bold;
+}
+
+dd {
+	margin-top: 5px;
+	margin-bottom: 5px;
+}
+
+strong {
+	font-weight: bold
+}
+
+em {
+	font-style: italic
+}
+
+var {
+	font-style: italic
+}
+
+div.revision {
+	border-left-style: solid;
+	border-left-width: thin;
+	border-left-color: #7B68EE;
+	padding-left: 5;
+}
+
+th {
+	font-weight: bold;
+}
+
+pre.programlisting {
+	background-color: silver;
+	border: thin;
+	border-style: dashed;
+	color: black;
+	padding-left: 5;
+}
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch01.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch01.html
new file mode 100644
index 0000000..3435cf1
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch01.html
@@ -0,0 +1,20 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Introduction</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="prev" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="next" href="ch02.html" title="Using PsychoPath XPath 2.0 API"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="Introduction"></a>Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><ul><li><span class="section"><a href="ch01.html#Getting_PsychoPath">Getting PsychoPath</a></span></li></ul></div><p>What is PsychohPath? PsychoPath is a XPath 2.0 XML Schema Aware
+    processor. It is nearly fully compliant to the XPath 2.0 test suite. It is
+    a library that does not require eclipse to be used. Known adopters of
+    PsychoPath include the Xerces-J project for XML Schemas 1.1 assertion
+    support.</p><p>PsychoPath is the only known open-source java XPath 2.0 processor
+    that is fully schema aware. SAXON HE only supports the core functionality.
+    XML Schema awarness provides tighter static checking, and can be used to
+    help determine if certain operations can or should occur on an XML node.
+    For a detailed description of the PsychoPath's design please see the
+    <a class="ulink" href="/PsychoPathXPathProcessor/Design" target="_top">design</a>
+    document.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Getting_PsychoPath"></a>Getting PsychoPath</h2></div></div></div><p>Currently there is no standalone build of PsychoPath. However, you
+      can download the <a class="ulink" href="http://download.eclipse.org/webtools/downloads/drops/R3.1/R-3.1-20090616035105/" target="_top">WTP
+      WST 3.1</a> zip file, and use the
+      org.eclipse.wst.xml.xpath2.processor.jar file. This jar has no
+      dependencies on eclipse, and will work as a standard jar file. If you
+      are using an OSGI container, then this is treated as a standard OSGI
+      bundle.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">PsychoPath 1.1M1</h3><p>PsychoPath 1.1M1 is also available to <a class="ulink" href="http://download.eclipse.org/webtools/downloads/drops/R3.2/S-3.2M1b-20090814143519/" target="_top">download</a>.
+        1.1M1 passes 96% of the XPath 2.0 test suite.</p></div><p>Additional dependencies you currently need are:</p><div class="itemizedlist"><ul type="disc"><li><p>IBM ICU 4.0 or greater</p></li><li><p>Xerces 2.8.0 or greater</p></li><li><p>JavaCup 0.10 or greater.</p></li></ul></div><p>If using eclipse, these are all available from the Orbit project.
+      Others can find the necessary jars from their respective project
+      pages.</p></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02.html
new file mode 100644
index 0000000..7f1ac76
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02.html
@@ -0,0 +1,70 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using PsychoPath XPath 2.0 API</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="prev" href="ch01.html" title="Introduction"><link rel="next" href="ch02s02.html" title="Schema Aware"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="How_to_feed_Psychopath_XPath_expressions"></a>Using PsychoPath XPath 2.0 API</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><ul><li><span class="section"><a href="ch02.html#Non-Schema_Aware">Non-Schema Aware</a></span></li><li><span class="section"><a href="ch02s02.html">Schema Aware</a></span></li><li><span class="section"><a href="ch02s03.html">How to use the XPath 2.0 grammar with PsychoPath</a></span><ul><li><span class="section"><a href="ch02s03.html#Constants">Constants</a></span></li><li><span class="section"><a href="ch02s03s02.html">Path expressions</a></span></li><li><span class="section"><a href="ch02s03s03.html">Axis steps</a></span></li><li><span class="section"><a href="ch02s03s04.html">Set difference, intersection and Union</a></span></li><li><span class="section"><a href="ch02s03s05.html">Arithmetic Expressions</a></span><ul><li><span class="section"><a href="ch02s03s05.html#Unary">Unary</a></span></li><li><span class="section"><a href="ch02s03s05s02.html">Multiplication and Division:</a></span></li><li><span class="section"><a href="ch02s03s05s03.html">Addition and Subtraction:</a></span></li></ul></li><li><span class="section"><a href="ch02s03s06.html">Range expressions</a></span></li><li><span class="section"><a href="ch02s03s07.html">Comparisons</a></span></li><li><span class="section"><a href="ch02s03s08.html">Conditional Expressions</a></span></li><li><span class="section"><a href="ch02s03s09.html">Quantified Expressions</a></span></li><li><span class="section"><a href="ch02s03s10.html">And, Or Expressions</a></span></li><li><span class="section"><a href="ch02s03s11.html">SequenceType Matching Expressions</a></span></li></ul></li></ul></div><p>Since PsychoPath has been implemented as an external library and not
+    as a complete program, in order to use it, it needs to be accessed from
+    inside another program. To process XPath 2.0 expressions using PsychoPath
+    from another programs one needs to go through the following
+    process:</p><div class="orderedlist"><ol type="1"><li><p>Load the XML document</p></li><li><p>Optionally validate the XML document</p></li><li><p>Initialize static and dynamic context in respect to the document
+        root</p></li><li><p>Parse the XPath 2.0 expression</p></li><li><p>Statically verify the XPath 2.0 expression</p></li><li><p>Evaluate the XPath 2.0 expression in respect to the XML
+        document</p></li></ol></div><p>To give a better idea of how this process actually works, we&rsquo;ll go
+    through an example of processing and evaluating the string expression
+    &ldquo;Hello World!&rdquo;. In this example the XML document that we load is called
+    &ldquo;XPexample.xml&rdquo;.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Non-Schema_Aware"></a>Non-Schema Aware</h2></div></div></div><pre class="programlisting">/**
+ * First load and optionally validate the XML document 
+*/
+// Create an InputStream from the XML document
+InputStream is = new FileInputStream(&ldquo;XPexample.xml&rdquo;);
+
+// Initializing the Xerces DOM loader.
+DOMLoader loader = new XercesLoader();
+
+// Optionally set flag to validate XML document loader.setvalidating(validate);
+// Loads the XML document and stores the DOM root
+Document doc = loader.load(is);
+
+/**
+ * Dynamic contexts must be initialised to defaults
+ * dependent on the XML Schema.
+*/
+
+// Extracting the schema from DOM root of Xpexpression.xml.
+ElementPSVI rootPSVI = (ElementPSVI)doc.getDocumentElement();
+XSModel schema = rootPSVI.getSchemaInformation();
+
+// Initialising the DynamicContext.
+DynamicContext dc = new DefaultDynamicContext(schema, doc);
+
+// Register the namespaces of the XPath 2.0 predefined datatypes
+dc.addnamespace(&ldquo;xs&rdquo;,&rdquo;[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]&rdquo;);
+
+// Register the XPath 2.0 standard functions
+dc.addfunctionlibrary(new FnFunctionLibrary());
+dc.addfunctionlibrary(new XSCtrLibrary());
+
+/**
+ * Parsing the XPath 2.0 expression into an AST representation
+ */
+// Initialises PsychoPath&rsquo;s supplied parser.
+XPathParser xpp = new JflexCupParser();
+
+// Parses the XPath expression.
+XPath xp = xpp.parse(xpath);
+/**
+ * Static check the AST to verift structural validity of  
+ * XPath 2.0 expression
+ */
+
+// Initializing StaticChecker.
+StaticChecker namecheck = new StaticNameResolver(sc);
+
+// Static Checking the Xpath expression &rsquo;Hello World!&rsquo; namecheck.check(xp);
+/**
+ * Evaluate the XPath 2.0 expression
+ */
+ 
+// Initializing the evaluator with DynamicContext and the name
+// of the XML document XPexample.xml as parameters.
+Evaluator eval = new DefaultEvaluator(dc, doc);
+ 
+// Evaluates the XPath 2.0 expression, storing the result
+// in the ResultSequence
+ResultSequence rs = eval.evaluate(xp); 
+</pre></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s02.html
new file mode 100644
index 0000000..19a87cf
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s02.html
@@ -0,0 +1,101 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Schema Aware</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02.html" title="Using PsychoPath XPath 2.0 API"><link rel="prev" href="ch02.html" title="Using PsychoPath XPath 2.0 API"><link rel="next" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Schema_Aware"></a>Schema Aware</h2></div></div></div><p></p><pre class="programlisting">/**
+ * First load and optionally validate the XML document 
+*/
+
+ SchemaFactory schemaFactory = new XMLSchemaFactory();
+ URL schemaURL = new File("XPexample.xsd").toURL();
+ Schema jaxpschema = schemaFactory.newSchema(schemaURL);
+
+// Create an InputStream from the XML document
+InputStream is = new FileInputStream(&ldquo;XPexample.xml&rdquo;);
+
+// Initializing the Xerces DOM loader.
+DOMLoader loader = new XercesLoader(jaxpschema);
+
+// Optionally set flag to validate XML document loader.setvalidating(validate);
+// Loads the XML document and stores the DOM root
+Document doc = loader.load(is);
+
+/**
+ * Dynamic contexts must be initialised to defaults
+ * dependent on the XML Schema.
+*/
+
+// Initialising the DynamicContext.
+DynamicContext dc = new DefaultDynamicContext(jaxpschema, doc);
+
+// Register the namespaces of the XPath 2.0 predefined datatypes
+dc.addnamespace(&ldquo;xs&rdquo;,&rdquo;[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]&rdquo;);
+
+// Register the XPath 2.0 standard functions
+dc.addfunctionlibrary(new FnFunctionLibrary());
+dc.addfunctionlibrary(new XSCtrLibrary());
+
+/**
+ * Parsing the XPath 2.0 expression into an AST representation
+ */
+// Initialises PsychoPath&rsquo;s supplied parser.
+XPathParser xpp = new JflexCupParser();
+
+// Parses the XPath expression.
+XPath xp = xpp.parse(xpath);
+
+/**
+ * Static check the AST to verift structural validity of  
+ * XPath 2.0 expression
+ */
+
+// Initilising StaticChecker.
+StaticChecker namecheck = new StaticNameResolver(sc);
+
+// Static Checking the Xpath expression &rsquo;Hello World!&rsquo; namecheck.check(xp);
+/**
+ * Evaluate the XPath 2.0 expression
+ */
+
+// Initialising the evaluator with DynamicContext and the name
+// of the XML document XPexample.xml as parameters.
+Evaluator eval = new DefaultEvaluator(dc, doc); 
+
+// Evaluates the XPath 2.0 expression, storing the result
+// in the ResultSequence
+ResultSequence rs = eval.evaluate(xp); 
+</pre><p>XPath 2.0 defines everything to be a sequence of items, including
+      the arguments to expressions and the result of operations. Thus, the
+      overall result of an XPath expression evaluation is also a sequence of
+      items. PsychoPath uses the class ResultSequence as a Collections wrapper
+      to store these sequences and therefore, the result of an evaluation is
+      of this type also. The ResultSequence consists of zero or more items; an
+      item may be a node or a simple-value. &ldquo;Hello World!&rdquo; is an example of a
+      single value with length 1. A general sequence could be written as (&ldquo;a&rdquo;,
+      &ldquo;s&rdquo;, &ldquo;d&rdquo;, &ldquo;f&rdquo;).</p><p>Extraction of certain items from the ResultSequence class is
+      described below, with details of the different operations that one might
+      apply on the ResultSequence. Consider that &rsquo;rs&rsquo; is the ResultSequence,
+      then:</p><p></p><pre class="programlisting">// Will return the number of elements in the sequence, in this
+// case of &rsquo;Hello World!&rsquo; expression size = 1.
+rs.size(); 
+
+// Will return the n&rsquo;th element in the sequence, in this case of
+// &rsquo;Hello World!&rsquo;, if n = 1, then it will return
+// XSString of &ldquo;Hello World!&rdquo;, but if n = 2, it will return
+// Empty Result.
+rs.get(n);
+
+//Will return true if the sequence is empty.
+rs.empty(); 
+
+// Will return the first element of the sequence, 
+// in this example it will return XSString of &ldquo;Hello World!&rdquo; 
+rs.first() 
+</pre><p>However, all the items extracted will be of the type&rsquo;s base class
+      AnyType and need to be casted into its actual subtype.</p><p>Certain operations always return a particular type and using this
+      knowledge, the extracted item can be immediately casted. In our example
+      &ldquo;Hello World!&rdquo; returns a string (easily known as it is inside the quotes
+      &rsquo; &rsquo; ), so this can safely be casted as such:</p><p><pre class="programlisting">XSString xsstring = XSString)(rs.first());</pre>The
+      actual result can now be extracted from this XSString in the following
+      manner: <pre class="programlisting">String str = xsstring.value();</pre></p><p>The details of how to cast extracted items from AnyType into their
+      actual subtypes with examples is in the next section on How to use each
+      production in the grammar.</p><p>However, if the expected return type is unknown or multiple types
+      are possible, the types hierarchy can be traversed in a breadth first
+      manner making use of the Java instanceof operator to ascertain the
+      actual type.&nbsp;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03.html
new file mode 100644
index 0000000..cba921f
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03.html
@@ -0,0 +1,25 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to use the XPath 2.0 grammar with PsychoPath</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02.html" title="Using PsychoPath XPath 2.0 API"><link rel="prev" href="ch02s02.html" title="Schema Aware"><link rel="next" href="ch02s03s02.html" title="Path expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="How_to_use_the_XPath_2.0_grammar_with_PsychoPath"></a>How to use the XPath 2.0 grammar with PsychoPath</h2></div></div></div><p>In this section we will try to give you an overview of the XPath
+      2.0 grammar in general and how each production in the grammar should be
+      used with PsychoPath. For the formal specifications, see the W3C
+      web-site for XPath 2.0 specification <a class="ulink" href="http://www.w3.org/TR/xpath20" target="_top">http://www.w3.org/TR/xpath20</a>.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Constants"></a>Constants</h3></div></div></div><p>String literals are written as &ldquo;Hello&rdquo; or &lsquo;Hello&rsquo;. In each case
+        the opposite kind of quotation mark can be used within the string: &lsquo;He
+        said &ldquo;Hello&rdquo; &rsquo; or &ldquo;London is a big city&rdquo;. To feed PsychoPath, &ldquo; &lsquo;Hello
+        World!&rsquo; &rdquo;or &ldquo; &ldquo;Hello World!&rdquo; &rdquo; can be used to feed it with strings.
+        Remember that the ResultSequence returns AnyType so since a string is
+        being expected as the result, first it has to be casted in the code
+        like this: <pre class="programlisting">XSString xsstring = (XSString)(rs.first());</pre>
+        Numeric constants follow the Java rules for decimal literals: for
+        example, 4 or 4.67; a negative number can be written as -3.05. The
+        numeric literal is taken as a double precision floating point number
+        if it uses scientific notation (e.g. 1.0e7), as a fixed point decimal
+        if it includes a decimal point, or as an integer otherwise. When
+        extracting number literals from the ResultSequence, possible types to
+        be returned include <span class="italic">XSDecima''l (e.g.&nbsp;:
+        xs:decimal: 4.67),''XSInteger ''(e.g.&nbsp;: xs:integer: 4) or
+        ''XSDouble</span> (e.g.&nbsp;: xs:double 1e0). All of which need to be
+        cast in the same manner as stated before: from AnyType to their
+        corresponding types.</p><p>There are no boolean constants as such: <span class="italic">true, false</span> instead the function calls
+        <span class="bold"><strong>true()</strong></span> and <span class="bold"><strong>false()</strong></span> are used.</p><p>Constants of other data types can be written using constructors.
+        These look like function calls but require a string literal as their
+        argument. For example, <span class="bold"><strong>xs:float(&ldquo;10.7&rdquo;)</strong></span> produces a single-precision
+        floating point number.</p></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s02.html
new file mode 100644
index 0000000..a5ad00c
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s02.html
@@ -0,0 +1,20 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Path expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="next" href="ch02s03s03.html" title="Axis steps"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Path_expressions"></a>Path expressions</h3></div></div></div><p>A path expression is a sequence of steps separated by the
+        <span class="bold"><strong>/''' or '''//</strong></span> operator. For example,
+        <span class="bold"><strong>../@desc</strong></span> selects the desc attribute
+        of the parent of the context node.</p><p>In XPath 2.0, path expressions have been generalized so that any
+        expression can be used as an operand of <span class="bold"><strong>/</strong></span>, (both on the left and the right), as long as
+        its value is a sequence of nodes. For example, it is possible to use a
+        union expression (in parentheses) or a call to the id()
+        function.</p><p>In practice, it only makes sense to use expressions on the right
+        of <span class="bold"><strong>"/"</strong></span> if they depend on the context
+        item. It is legal to write $x/$y provided both $x and $y are sequences
+        of nodes, but the result is exactly the same as writing <span class="bold"><strong> <span class="italic">./$y</span>
+        </strong></span>.</p><p>Note that the expressions <span class="bold"><strong>./$X</strong></span>
+        or <span class="bold"><strong>$X/.</strong></span> can be used to remove
+        duplicates from <span class="bold"><strong>$X</strong></span> and sort the
+        results into document order.</p><p>The operator <span class="bold"><strong>//</strong></span> is an
+        abbreviation for <span class="bold"><strong>/descendant-or-self::node()</strong></span>. An expression of
+        the form <span class="bold"><strong>/E</strong></span> is shorthand for
+        <span class="bold"><strong>root(.)/E</strong></span>, and the expression
+        <span class="bold"><strong>/''' on its own is shorthand for
+        '''root(.)</strong></span>.</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s03.html
new file mode 100644
index 0000000..b86638b
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s03.html
@@ -0,0 +1,7 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Axis steps</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s02.html" title="Path expressions"><link rel="next" href="ch02s03s04.html" title="Set difference, intersection and Union"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Axis_steps"></a>Axis steps</h3></div></div></div><p>The basic primitive for accessing a source document is the axis
+        step. Axis steps may be combined into path expressions using the path
+        operators "/" and "//", and they may be filtered using filter
+        expressions in the same way as the result of any other
+        expression.</p><p>An axis step has the basic form axis::node-test, and selects
+        nodes on a given axis that satisfy the node-test. The axes available
+        are:</p><div class="orderedlist"><ol type="1"><li><p>element: age</p></li><li><p>element: age</p></li></ol></div><p>The rest of the axes act in the same manner.</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s04.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s04.html
new file mode 100644
index 0000000..9a0198f
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s04.html
@@ -0,0 +1,23 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Set difference, intersection and Union</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s03.html" title="Axis steps"><link rel="next" href="ch02s03s05.html" title="Arithmetic Expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Set_difference.2C_intersection_and_Union"></a>Set difference, intersection and Union</h3></div></div></div><p>The expression E1 except E2 selects all nodes that are in E1
+        unless they are also in E2. Both expressions must return sequences of
+        nodes. The results are returned in document order. For example, @*
+        except @note returns all attributes except the note attribute. The
+        expression E1 intersect E2 selects all nodes that are in both E1 and
+        E2. Both expressions must return sequences of nodes. The results are
+        returned in document order. The expression E1 union E2 selects all
+        nodes that are in either E1 or E2 or both. Both expressions must
+        return sequences of nodes. The results are returned in document order.
+        A complete example of the above expression would be as follows.
+        Consider an XML document which looks like this:</p><pre class="programlisting">&lt;nodes&gt;
+  &lt;a&gt;
+    &lt;connecteda&gt;A&lt;/connecteda&gt;
+    &lt;connecteda&gt;B&lt;/connecteda&gt;
+    &lt;connecteda&gt;C&lt;/connecteda&gt;
+  &lt;/a&gt;
+  &lt;b&gt;
+    &lt;connectedb&gt;B&lt;/connectedb&gt;
+    &lt;connectedb&gt;C&lt;/connectedb&gt;
+    &lt;connectedb&gt;D&lt;/connectedb&gt;
+  &lt;/b&gt;
+&lt;/nodes&gt;
+</pre><p>Then an example of each of the expressions would be:</p><p><pre class="programlisting">data(/a/*) union data(/b/*)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:string: A</p></li><li><p>xs:string: B</p></li><li><p>xs:string: C</p></li><li><p>xs:string: D</p></li></ol></div><p><pre class="programlisting">data(/a/*) intersect data(/b/*)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:string: B</p></li><li><p>xs:string: C</p></li></ol></div><p><pre class="programlisting">data(/a/*) except data(/b/*)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:string: D</p></li></ol></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05.html
new file mode 100644
index 0000000..56c1276
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Arithmetic Expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s04.html" title="Set difference, intersection and Union"><link rel="next" href="ch02s03s05s02.html" title="Multiplication and Division:"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Arithmetic_Expressions"></a>Arithmetic Expressions</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Unary"></a>Unary</h4></div></div></div><p>minus and plus: The unary minus operator changes the sign of a
+          number. For example -1 is minus one, and -1e0 is the double value
+          negative -1.</p></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05s02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05s02.html
new file mode 100644
index 0000000..74f1c81
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05s02.html
@@ -0,0 +1,11 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Multiplication and Division:</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03s05.html" title="Arithmetic Expressions"><link rel="prev" href="ch02s03s05.html" title="Arithmetic Expressions"><link rel="next" href="ch02s03s05s03.html" title="Addition and Subtraction:"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Multiplication_and_Division:"></a>Multiplication and Division:</h4></div></div></div><p>The operator * multiplies two numbers. If the operands are of
+          different types, XPath 2.0 specifications say that one of them is
+          promoted to the type of the other.&nbsp;The result is the same type as
+          the operands after promotion.</p><p>The operator div divides two numbers. Dividing two integers
+          produces a double; in other cases the result is the same type as the
+          operands.</p><p>The operator idiv performs integer division. For example, the
+          result of 10 idiv 3 is 3.</p><p>The mod operator returns the modulus (or remainder) after
+          division.</p><p>The operators * and div may also be used to multiply or divide
+          a range by a number.</p><p>For example, <span class="italic">(1 idiv 1 to
+          3)</span> returns the result: <span class="italic">xs:integer: 1, xs:integer: 2, xs:integer:
+          3</span></p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05s03.html
new file mode 100644
index 0000000..0434e26
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s05s03.html
@@ -0,0 +1,5 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Addition and Subtraction:</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03s05.html" title="Arithmetic Expressions"><link rel="prev" href="ch02s03s05s02.html" title="Multiplication and Division:"><link rel="next" href="ch02s03s06.html" title="Range expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Addition_and_Subtraction:"></a>Addition and Subtraction:</h4></div></div></div><p>The operators <span class="bold"><strong>+</strong></span> and <span class="italic">'-'</span> perform addition and subtraction of
+          numbers, in the usual way. Once again, if the operands are of
+          different types, XPath 2.0 specifications say one of them is
+          promoted but numeric type promotion is currently unsupported by
+          PsychoPath. The result is of the same type as the operands.</p><p>Examples of above would be:</p><p><pre class="programlisting"> -(5 + 7)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:integer: -12</p></li></ol></div><p><pre class="programlisting">-xs:float(&rsquo;1.23&rsquo;)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:float: -1.23</p></li></ol></div><p><pre class="programlisting">-xs:double(&rsquo;1.23&rsquo;)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:double: -1.23</p></li></ol></div><p><pre class="programlisting">(+5 - +7)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:integer: -2</p></li></ol></div><p><pre class="programlisting">(1 to 5 div 0 )</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="itemizedlist"><ul type="disc"><li><p>FAIL (division by zero!)</p></li></ul></div><p><pre class="programlisting">5*6*10*5*96 div 20 div 3 div 1</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:decimal: 2400.0</p></li></ol></div><p><pre class="programlisting">31 mod 15</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:integer: 1</p></li></ol></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s06.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s06.html
new file mode 100644
index 0000000..325296e
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s06.html
@@ -0,0 +1,4 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Range expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s05s03.html" title="Addition and Subtraction:"><link rel="next" href="ch02s03s07.html" title="Comparisons"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Range_expressions"></a>Range expressions</h3></div></div></div><p>The expression E1 to E2 returns a sequence of integers. For
+        example, 1 to 5 returns the sequence 1, 2, 3, 4, 5. This is useful in
+        for expressions, for example the first five nodes of a node sequence
+        can be processed by writing for $i in 1 to 5 return (//x) <a class="ulink" href="$i" target="_top">$i</a>. Another example:</p><p><pre class="programlisting">(1+1 to 10)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:integer: 2</p></li><li><p>xs:integer: 3</p></li><li><p>xs:integer: 4</p></li><li><p>xs:integer: 5</p></li><li><p>xs:integer: 6</p></li><li><p>xs:integer: 7</p></li><li><p>xs:integer: 8</p></li><li><p>xs:integer: 9</p></li><li><p>xs:integer: 10</p></li></ol></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s07.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s07.html
new file mode 100644
index 0000000..b9f6dd2
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s07.html
@@ -0,0 +1,39 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Comparisons</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s06.html" title="Range expressions"><link rel="next" href="ch02s03s08.html" title="Conditional Expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Comparisons"></a>Comparisons</h3></div></div></div><p>The simplest comparison operators are <span class="bold"><strong>eq</strong></span>, <span class="bold"><strong>ne</strong></span>,
+        <span class="bold"><strong>lt</strong></span>, <span class="bold"><strong>le</strong></span>, <span class="bold"><strong>gt</strong></span>,
+        <span class="bold"><strong>ge</strong></span>. These compare two atomic values
+        of the same type, for example two integers, two dates, or two strings.
+        (Collation hasn&rsquo;t been implemented in current version of PsychoPath).
+        If the operands are not atomic values, an error is raised.</p><p>The operators <span class="bold"><strong>=''',&nbsp;</strong></span>!='
+        <span class="italic">, '</span>&lt;=' <span class="italic">,
+        '</span>&gt; <span class="bold"><strong>, '''&lt;</strong></span>, and
+        <span class="bold"><strong>&gt;=</strong></span> can compare arbitrary
+        sequences. The result is true if any pair of items from the two
+        sequences has the specified relationship, for example <span class="italic">$A = $B</span> is true if there is an item in
+        <span class="italic">$A</span> that is equal to some item in
+        <span class="italic">$B</span>.</p><p>The operators <span class="bold"><strong>is</strong></span> and <span class="bold"><strong>isnot</strong></span> test whether the operands represent the
+        same (identical) node. For example, <span class="italic">title
+        <a class="ulink" href="1" target="_top">1</a> is * <a class="ulink" href="@note" target="_top">@note</a> <a class="ulink" href="1" target="_top">1</a> </span> is true if the first title child is the
+        first child element that has a <span class="italic">@note</span> attribute. If either operand is an
+        empty sequence the result is an empty sequence (which will usually be
+        treated as false).</p><p>The operators <span class="bold"><strong>&lt;&lt;</strong></span> and
+        <span class="bold"><strong>&gt;&gt;</strong></span> test whether one node
+        precedes or follows another in document order. Consider this XML
+        document:</p><pre class="programlisting">&lt;book&gt;
+ &lt;title&gt;Being a Dog Is a Full-Time Job&lt;/title&gt;
+ &lt;author&gt;Charles M. Schulz&lt;/author&gt;
+ &lt;character&gt;
+   &lt;name&gt;Snoopy&lt;/name&gt;
+   &lt;friend-of&gt;Peppermint Patty&lt;/friend-of&gt;
+   &lt;since&gt;1950-10-04&lt;/since&gt;
+   &lt;age&gt;2&lt;/age&gt;
+   &lt;qualification&gt;extroverted beagle&lt;/qualification&gt;
+ &lt;/character&gt;
+ &lt;character&gt;
+   &lt;name&gt;Peppermint Patty&lt;/name&gt;
+   &lt;since&gt;1966-08-22&gt;/since&gt;
+   &lt;age&gt;4&lt;/age&gt;
+   &lt;qualification&gt;bold, brash and tomboyish&lt;/qualification&gt;
+ &lt;/character&gt;
+&lt;/book&gt;
+</pre><p>Example:</p><p><pre class="programlisting">book/character name="Snoopy" &lt;&lt; book/character Patty" </pre></p><p><span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:boolean: true</p></li></ol></div><p>book/character <a class="ulink" href="name=%22Peppermint" target="_top">Patty"</a>
+        &lt;&lt; book/character <a class="ulink" href="name=%22Snoopy%22" target="_top">name="Snoopy"</a> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:boolean: false</p></li></ol></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s08.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s08.html
new file mode 100644
index 0000000..788fefc
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s08.html
@@ -0,0 +1,4 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Conditional Expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s07.html" title="Comparisons"><link rel="next" href="ch02s03s09.html" title="Quantified Expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Conditional_Expressions"></a>Conditional Expressions</h3></div></div></div><p>XPath 2.0 allows a conditional expression of the form <span class="italic">if ( E1 ) then E2 else E3</span>. For example,
+        <span class="italic">if (@discount) then @discount else
+        0</span> returns the value of the discount attribute if it is
+        present, or zero otherwise.</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s09.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s09.html
new file mode 100644
index 0000000..4d0e877
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s09.html
@@ -0,0 +1,10 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Quantified Expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s08.html" title="Conditional Expressions"><link rel="next" href="ch02s03s10.html" title="And, Or Expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Quantified_Expressions"></a>Quantified Expressions</h3></div></div></div><p>The expression <span class="italic">some $x in E1 satisfies
+        E2</span> returns true if there is an item in the sequence E1 for
+        which the effective boolean value of E2 is true. Note that E2 must use
+        the range variable <span class="italic">$x</span> to refer to
+        the item being tested; it does not become the context item. For
+        example, <span class="italic">some $x in @* satisfies $x eq
+        ""</span> is true if the context item is an element that has at
+        least one zero-length attribute value.</p><p>Similarly, the expression <span class="italic">every $x in E1
+        satisfies E2</span> returns true if every item in the sequence
+        given by E1 satisfies the condition.</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s10.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s10.html
new file mode 100644
index 0000000..ce4ff84
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s10.html
@@ -0,0 +1,5 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>And, Or Expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s09.html" title="Quantified Expressions"><link rel="next" href="ch02s03s11.html" title="SequenceType Matching Expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="And.2C_Or_Expressions"></a>And, Or Expressions</h3></div></div></div><p>The expression <span class="italic">E1 and E2</span>
+        returns true if the effective boolean values of E1 and E2 are both
+        true. The expression <span class="italic">E1 or E2</span>
+        returns true if the effective boolean values of either or both of E1
+        and E2 are true.</p><p><pre class="programlisting"> (for a truth table) 1 and 1</pre></p><p><span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:boolean: true</p></li></ol></div><p><pre class="programlisting">1 and 0</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:boolean: false</p></li></ol></div><p><pre class="programlisting">1 or 0</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:boolean: true</p></li></ol></div><p><pre class="programlisting">0 or 1</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:boolean: true</p></li></ol></div><p></p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s11.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s11.html
new file mode 100644
index 0000000..9385c68
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03s11.html
@@ -0,0 +1,23 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SequenceType Matching Expressions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch02s03.html" title="How to use the XPath 2.0 grammar with PsychoPath"><link rel="prev" href="ch02s03s10.html" title="And, Or Expressions"><link rel="next" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="SequenceType_Matching_Expressions"></a>SequenceType Matching Expressions</h3></div></div></div><p>The rules for SequenceType matching compare the actual type of a
+        value with an expected type. These rules are a subset of the formal
+        rules that match a value with an expected type defined in XQuery 1.0
+        and XPath 2.0 Formal Semantics <a class="ulink" href="http://www.w3.org/TR/xpath20/#XQueryFormalSemantics" target="_top">http://www.w3.org/TR/xpath20/#XQueryFormalSemantics</a>,
+        because the Formal Semantics must be able to match a value with any
+        XML Schema type, whereas the rules below only match values against
+        those types expressible by the SequenceType syntax.</p><p>Some of the rules for SequenceType matching require determining
+        whether a given type name is the same as or derived from an expected
+        type name. The given type name may be "known" (defined in the in-scope
+        schema definitions), or "unknown" (not defined in the in-scope schema
+        definitions). An unknown type name might be encountered, for example,
+        if a source document has been validated using a schema that was not
+        imported into the static context. In this case, an implementation is
+        allowed (but is not required) to provide an implementation-dependent
+        mechanism for determining whether the unknown type name is derived
+        from the expected type name. For example, an implementation might
+        maintain a data dictionary containing information about type
+        hierarchies. consider the following XML document:</p><pre class="programlisting">&lt;sorbo&gt;
+ &lt;is&gt;elite&lt;/is&gt;
+ &lt;!-- life sux --&gt;
+&lt;/sorbo&gt;
+</pre><p>Then, the following are some example of SequenceType
+        matchings:</p><p><pre class="programlisting"> element({*})</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>element: sorbo</p></li></ol></div><p><pre class="programlisting">element(elite)</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>Empty results</p></li></ol></div><p><pre class="programlisting">sorbo/comment()</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>comment: life sux</p></li></ol></div><p><pre class="programlisting">data(/sorbo/comment())</pre></p><p> <span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>xs:string: life sux</p></li></ol></div><p><pre class="programlisting">sorbo/node()</pre></p><p><span class="bold"><strong>result:</strong></span></p><div class="orderedlist"><ol type="1"><li><p>text:</p></li><li><p>element: is</p></li><li><p>comment: life sux</p></li><li><p>text:</p></li></ol></div><p></p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03.html
new file mode 100644
index 0000000..37ac396
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03.html
@@ -0,0 +1,13 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to use XPath 2.0 functions with PsychoPath</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="prev" href="ch02s03s11.html" title="SequenceType Matching Expressions"><link rel="next" href="ch03s02.html" title="Constructor Functions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="How_to_use_XPath_2.0_functions_with_PsychoPath"></a>How to use XPath 2.0 functions with PsychoPath</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><ul><li><span class="section"><a href="ch03.html#Accessors">Accessors</a></span></li><li><span class="section"><a href="ch03s02.html">Constructor Functions</a></span></li><li><span class="section"><a href="ch03s03.html">Functions on Numeric Values</a></span></li><li><span class="section"><a href="ch03s04.html">Functions to Assemble and Disassemble Strings</a></span></li><li><span class="section"><a href="ch03s05.html">Compare and Other Functions on String Values</a></span></li><li><span class="section"><a href="ch03s06.html">Functions Based on Substring Matching</a></span></li><li><span class="section"><a href="ch03s07.html">String Functions that Use Pattern Matching</a></span></li><li><span class="section"><a href="ch03s08.html">Functions on Boolean Values</a></span></li><li><span class="section"><a href="ch03s09.html">Component Extraction Functions on Durations, Dates and
+      Times</a></span></li><li><span class="section"><a href="ch03s10.html">Functions Related to QNames</a></span></li><li><span class="section"><a href="ch03s11.html">Functions on Nodes</a></span><ul><li><span class="section"><a href="ch03s11.html#General_Functions_on_Sequences">General Functions on Sequences</a></span></li><li><span class="section"><a href="ch03s11s02.html">Functions That Test the Cardinality of Sequences</a></span></li><li><span class="section"><a href="ch03s11s03.html">Deep-Equal, Aggregate Functions, and Functions that Generate
+        Sequences</a></span></li><li><span class="section"><a href="ch03s11s04.html">Context Functions</a></span></li></ul></li></ul></div><p>The aim of this section is to give the user an overview of the
+    available XPath 2.0 functions that are implemented in PsychoPath. For the
+    formal specifications, see the W3C web-site for XPath 2.0 functions and
+    operators <a class="ulink" href="http://www.w3.org/TR/xpath-functions/" target="_top">http://www.w3.org/TR/xpath-functions/</a>.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Accessors"></a>Accessors</h2></div></div></div><p>In order for PsychoPath to operate on instances of the XPath 2.0
+      data model, the model must expose the properties of the items it
+      contains. It does this by defining a family of accessor functions. These
+      functions are not available to users or applications to call directly.
+      Instead, they are descriptions of the information that an implementation
+      of the model must expose to applications.</p><p>data(&lsquo;string&rsquo;)</p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XSString)rs.first()).stringvalue();
+println(n);</pre></p><p>In order to get the result of &lsquo;string&rsquo;</p></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s02.html
new file mode 100644
index 0000000..04df21f
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s02.html
@@ -0,0 +1,2 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constructor Functions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="next" href="ch03s03.html" title="Functions on Numeric Values"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Constructor_Functions"></a>Constructor Functions</h2></div></div></div><p><pre class="programlisting">xs:dateTime("2002-02-01T10:00:00+06:00")</pre></p><p>From within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XSDateTime)rs.first()).stringvalue(); println(n);</pre></p><p>in order to get the result of &lsquo;2002-02-01T04:00:00Z&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s03.html
new file mode 100644
index 0000000..c9203ea
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s03.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions on Numeric Values</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s02.html" title="Constructor Functions"><link rel="next" href="ch03s04.html" title="Functions to Assemble and Disassemble Strings"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_on_Numeric_Values"></a>Functions on Numeric Values</h2></div></div></div><p><pre class="programlisting">ceiling(xs:float(&lsquo;10.4&rsquo;))</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">float n = ((XSFloat)rs.first()).floatvalue();
+println(n);</pre></p><p>In order to get the result of &lsquo;11.0&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s04.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s04.html
new file mode 100644
index 0000000..7cef82c
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s04.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions to Assemble and Disassemble Strings</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s03.html" title="Functions on Numeric Values"><link rel="next" href="ch03s05.html" title="Compare and Other Functions on String Values"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_to_Assemble_and_Disassemble_Strings"></a>Functions to Assemble and Disassemble Strings</h2></div></div></div><p><pre class="programlisting">codepoints-to-string(0111)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XSString)rs.first()).stringvalue();
+println(n);&lt;/source&gt;</pre></p><p>In order to get the result of &lsquo;o&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s05.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s05.html
new file mode 100644
index 0000000..8c54f5c
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s05.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Compare and Other Functions on String Values</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s04.html" title="Functions to Assemble and Disassemble Strings"><link rel="next" href="ch03s06.html" title="Functions Based on Substring Matching"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Compare_and_Other_Functions_on_String_Values"></a>Compare and Other Functions on String Values</h2></div></div></div><p><pre class="programlisting">concat(&lsquo;un&rsquo;, &lsquo;grateful&rsquo;)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XSString)rs.first()).stringvalue();
+println(n);</pre></p><p>In order to get the result of &lsquo;ungrateful&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s06.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s06.html
new file mode 100644
index 0000000..f609e13
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s06.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions Based on Substring Matching</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s05.html" title="Compare and Other Functions on String Values"><link rel="next" href="ch03s07.html" title="String Functions that Use Pattern Matching"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_Based_on_Substring_Matching"></a>Functions Based on Substring Matching</h2></div></div></div><p><pre class="programlisting">contains("abc", "edf")</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value();
+println(n);</pre></p><p>In order to get the result of &lsquo;false&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s07.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s07.html
new file mode 100644
index 0000000..ee2acc6
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s07.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>String Functions that Use Pattern Matching</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s06.html" title="Functions Based on Substring Matching"><link rel="next" href="ch03s08.html" title="Functions on Boolean Values"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="String_Functions_that_Use_Pattern_Matching"></a>String Functions that Use Pattern Matching</h2></div></div></div><p><pre class="programlisting">matches(&lsquo;abcd&rsquo;, &lsquo;abcd&rsquo;)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value();
+println(n);</pre></p><p>In order to get the result of &lsquo;true&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s08.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s08.html
new file mode 100644
index 0000000..18ee268
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s08.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions on Boolean Values</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s07.html" title="String Functions that Use Pattern Matching"><link rel="next" href="ch03s09.html" title="Component Extraction Functions on Durations, Dates and Times"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_on_Boolean_Values"></a>Functions on Boolean Values</h2></div></div></div><p><pre class="programlisting">not(true())</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value();
+println(n);</pre></p><p>in order to get the result of &lsquo;false&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s09.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s09.html
new file mode 100644
index 0000000..ac64dd5
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s09.html
@@ -0,0 +1,4 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Component Extraction Functions on Durations, Dates and Times</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s08.html" title="Functions on Boolean Values"><link rel="next" href="ch03s10.html" title="Functions Related to QNames"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Component_Extraction_Functions_on_Durations.2C_Dates_and_Times"></a>Component Extraction Functions on Durations, Dates and
+      Times</h2></div></div></div><p><pre class="programlisting">timezone-from-time(xs:time("13:20:00+05:00"))</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); 
+println(n);</pre></p><p>in order to get the result of &lsquo;PT5H&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s10.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s10.html
new file mode 100644
index 0000000..41d2e40
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s10.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions Related to QNames</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s09.html" title="Component Extraction Functions on Durations, Dates and Times"><link rel="next" href="ch03s11.html" title="Functions on Nodes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_Related_to_QNames"></a>Functions Related to QNames</h2></div></div></div><p><pre class="programlisting">local-name-from-QName(QName(&lsquo; <a class="ulink" href="http://www.example.com/example" target="_top">http://www.example.com/example</a>&rsquo;, &lsquo;person&rsquo;))</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XSNCName)rs.first()).stringvalue();
+println(n);</pre></p><p>in order to get the result of &lsquo;person&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11.html
new file mode 100644
index 0000000..458c7b1
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11.html
@@ -0,0 +1,7 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions on Nodes</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03.html" title="How to use XPath 2.0 functions with PsychoPath"><link rel="prev" href="ch03s10.html" title="Functions Related to QNames"><link rel="next" href="ch03s11s02.html" title="Functions That Test the Cardinality of Sequences"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_on_Nodes"></a>Functions on Nodes</h2></div></div></div><p></p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="General_Functions_on_Sequences"></a>General Functions on Sequences</h3></div></div></div><p><pre class="programlisting">remove((&lsquo;s&rsquo;,&lsquo;o&rsquo;,&lsquo;m&rsquo;,&lsquo;e&rsquo;,&lsquo;t&rsquo;,&lsquo;h&rsquo;,&lsquo;i&rsquo;,&lsquo;n&rsquo;,&lsquo;g&rsquo;), 6)</pre></p><p>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</p><pre class="programlisting">for (Iterator iter = rs.iterator(); iter.hasNext();) {
+  Object item = iter.next(); 
+  String n = ((XSString)item).stringvalue();
+  print(n + " ");
+} println("");
+</pre><p>in order to get the result of &lsquo;s o m e t i n g&rsquo;</p></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s02.html
new file mode 100644
index 0000000..2fa440a
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s02.html
@@ -0,0 +1,7 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Functions That Test the Cardinality of Sequences</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03s11.html" title="Functions on Nodes"><link rel="prev" href="ch03s11.html" title="Functions on Nodes"><link rel="next" href="ch03s11s03.html" title="Deep-Equal, Aggregate Functions, and Functions that Generate Sequences"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Functions_That_Test_the_Cardinality_of_Sequences"></a>Functions That Test the Cardinality of Sequences</h3></div></div></div><p><pre class="programlisting">one-or-more((1,2,3,4,5))</pre></p><p>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</p><pre class="programlisting">for (Iterator iter = rs.iterator(); iter.hasNext();) {
+ Object item = iter.next();
+ int n = ((XSInteger)item).intvalue();
+ print(n + " ");
+} println("");
+</pre><p>in order to get the result of &lsquo;1 2 3 4 5&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s03.html
new file mode 100644
index 0000000..e8734e0
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s03.html
@@ -0,0 +1,4 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Deep-Equal, Aggregate Functions, and Functions that Generate Sequences</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03s11.html" title="Functions on Nodes"><link rel="prev" href="ch03s11s02.html" title="Functions That Test the Cardinality of Sequences"><link rel="next" href="ch03s11s04.html" title="Context Functions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Deep-Equal.2C_Aggregate_Functions.2C_and_Functions_that_Generate_Sequences"></a>Deep-Equal, Aggregate Functions, and Functions that Generate
+        Sequences</h3></div></div></div><p><pre class="programlisting">avg((3,4,5))</pre></p><p>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</p><p><pre class="programlisting">double avg = ((XSDouble)rs.first()).doublevalue();
+println(avg);</pre></p><p>in order to get the result of &lsquo;4.0&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s04.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s04.html
new file mode 100644
index 0000000..1b243d6
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch03s11s04.html
@@ -0,0 +1,2 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Context Functions</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch03s11.html" title="Functions on Nodes"><link rel="prev" href="ch03s11s03.html" title="Deep-Equal, Aggregate Functions, and Functions that Generate Sequences"><link rel="next" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Context_Functions"></a>Context Functions</h3></div></div></div><p><pre class="programlisting">(10 to 20) = 2</pre></p><p>from within a Java application, in order to extract the result
+        from the result sequence, one would have to use this code:</p><p><pre class="programlisting">int pos = ((XSInteger)rs.first()).intvalue(); println(pos);</pre></p><p>in order to get the result of &lsquo;11&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04.html
new file mode 100644
index 0000000..789f613
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04.html
@@ -0,0 +1,6 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to use XPath 2.0 operators with PsychoPath</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="prev" href="ch03s11s04.html" title="Context Functions"><link rel="next" href="ch04s02.html" title="Comparison of Numeric Values"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="How_to_use_XPath_2.0_operators_with_PsychoPath"></a>How to use XPath 2.0 operators with PsychoPath</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><ul><li><span class="section"><a href="ch04.html#Operators_on_Numeric_Values">Operators on Numeric Values</a></span></li><li><span class="section"><a href="ch04s02.html">Comparison of Numeric Values</a></span></li><li><span class="section"><a href="ch04s03.html">Operators on Boolean Values</a></span></li><li><span class="section"><a href="ch04s04.html">Comparisons of Duration, Date and Time Values</a></span></li><li><span class="section"><a href="ch04s05.html">Arithmetic Functions on Durations</a></span></li><li><span class="section"><a href="ch04s06.html">Arithmetic Functions Dates and Times</a></span></li><li><span class="section"><a href="ch04s07.html">Operators Related to QNames And Nodes</a></span></li><li><span class="section"><a href="ch04s08.html">Union, Intersection and Except</a></span></li><li><span class="section"><a href="ch04s09.html">Operators that Generate Sequences</a></span></li></ul></div><p>The aim of this section is to give the user an overview of the
+    available XPath 2.0 operators that are implemented in PsychoPath. For the
+    formal specifications, see the W3C web-site for XPath 2.0 functions and
+    operators <a class="ulink" href="http://www.w3.org/TR/xpath-functions/" target="_top">http://www.w3.org/TR/xpath-functions/</a>.</p><p></p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Operators_on_Numeric_Values"></a>Operators on Numeric Values</h2></div></div></div><p><pre class="programlisting">xs:integer(4) + xs:integer(3)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">Integer n = ((XSInteger)rs.first()).integervalue(); 
+println(n);</pre></p><p>in order to get the result of &lsquo;7&rsquo;</p></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s02.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s02.html
new file mode 100644
index 0000000..c2d40a5
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s02.html
@@ -0,0 +1,2 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Comparison of Numeric Values</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="next" href="ch04s03.html" title="Operators on Boolean Values"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Comparison_of_Numeric_Values"></a>Comparison of Numeric Values</h2></div></div></div><p><pre class="programlisting">xs:decimal(3.3) = xs:decimal(6.6)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value(); println(n);</pre></p><p>in order to get the result of &lsquo;false&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s03.html
new file mode 100644
index 0000000..8f02b1e
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s03.html
@@ -0,0 +1,2 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Operators on Boolean Values</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s02.html" title="Comparison of Numeric Values"><link rel="next" href="ch04s04.html" title="Comparisons of Duration, Date and Time Values"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Operators_on_Boolean_Values"></a>Operators on Boolean Values</h2></div></div></div><p><pre class="programlisting">xs:boolean(&rsquo;true&rsquo;) gt xs:boolean(&rsquo;false&rsquo;)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value(); println(n);</pre></p><p>in order to get the result of &lsquo;true&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s04.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s04.html
new file mode 100644
index 0000000..5ecc9c5
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s04.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Comparisons of Duration, Date and Time Values</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s03.html" title="Operators on Boolean Values"><link rel="next" href="ch04s05.html" title="Arithmetic Functions on Durations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Comparisons_of_Duration.2C_Date_and_Time_Values"></a>Comparisons of Duration, Date and Time Values</h2></div></div></div><p><pre class="programlisting">xs:time("23:00:00+06:00") lt xs:time("12:00:00-06:00")</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value(); 
+println(n);</pre></p><p>in order to get the result of &lsquo;true&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s05.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s05.html
new file mode 100644
index 0000000..611b868
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s05.html
@@ -0,0 +1,4 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Arithmetic Functions on Durations</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s04.html" title="Comparisons of Duration, Date and Time Values"><link rel="next" href="ch04s06.html" title="Arithmetic Functions Dates and Times"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Arithmetic_Functions_on_Durations"></a>Arithmetic Functions on Durations</h2></div></div></div><p><pre class="programlisting">multiply-dayTimeDuration(xs:dayTimeDuration("PT2H10M"), 2.1)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); 
+println(n);</pre></p><p>which returns a xdt:dayTimeDuration value corresponding to 4 hours
+      and 33 minutes &lsquo;PT4H33M&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s06.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s06.html
new file mode 100644
index 0000000..41722ea
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s06.html
@@ -0,0 +1,4 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Arithmetic Functions Dates and Times</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s05.html" title="Arithmetic Functions on Durations"><link rel="next" href="ch04s07.html" title="Operators Related to QNames And Nodes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Arithmetic_Functions_Dates_and_Times"></a>Arithmetic Functions Dates and Times</h2></div></div></div><p><pre class="programlisting">add-yearMonthDuration-to-dateTime( xs:dateTime("2000-10-30T11:12:00"), xdt:yearMonthDuration("P1Y2M"))</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">String n = ((XSDateTime)rs.first()).stringvalue(); 
+println(n);</pre></p><p>which returns an xs:dateTime value corresponding to the lexical
+      representation &lsquo;2001-12-30T11:12:00&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s07.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s07.html
new file mode 100644
index 0000000..0d7d838
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s07.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Operators Related to QNames And Nodes</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s06.html" title="Arithmetic Functions Dates and Times"><link rel="next" href="ch04s08.html" title="Union, Intersection and Except"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Operators_Related_to_QNames_And_Nodes"></a>Operators Related to QNames And Nodes</h2></div></div></div><p><pre class="programlisting">xs:QName(&rsquo;ao&rsquo;) eq xs:QName(&rsquo;ao&rsquo;)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">boolean n = ((XSBoolean)rs.first()).value(); 
+println(n);</pre></p><p>which returns the result of &lsquo;true&rsquo;</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s08.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s08.html
new file mode 100644
index 0000000..9b4a308
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s08.html
@@ -0,0 +1,9 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Union, Intersection and Except</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s07.html" title="Operators Related to QNames And Nodes"><link rel="next" href="ch04s09.html" title="Operators that Generate Sequences"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Union.2C_Intersection_and_Except"></a>Union, Intersection and Except</h2></div></div></div><p><pre class="programlisting">union($seq2, $seq3)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><pre class="programlisting">for (Iterator iter = rs.iterator(); iter.hasNext();) {
+  Object item = iter.next();
+  String n = ((XSString)item).stringvalue();
+  print(n + ", ");
+}
+println("");
+</pre><p> </p><p>which returns the sequence consisting of $item1, $item2,
+      $item3.</p><p></p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s09.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s09.html
new file mode 100644
index 0000000..d822a00
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch04s09.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Operators that Generate Sequences</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="up" href="ch04.html" title="How to use XPath 2.0 operators with PsychoPath"><link rel="prev" href="ch04s08.html" title="Union, Intersection and Except"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Operators_that_Generate_Sequences"></a>Operators that Generate Sequences</h2></div></div></div><p><pre class="programlisting">(1 to 3)</pre></p><p>from within a Java application, in order to extract the result
+      from the result sequence, one would have to use this code:</p><p><pre class="programlisting">int n = (XSInteger)rs.first()).stringvalue(); 
+println(n);</pre></p><p>which returns the sequence consisting of 1, 2, 3.</p></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/index.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/index.html
new file mode 100644
index 0000000..3a1c190
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/index.html
@@ -0,0 +1,3 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>XPath 2.0 Processor User Manual</title><link href="book.css" rel="stylesheet" type="text/css"><link href="../book.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.74.0" name="generator"><link rel="home" href="index.html" title="XPath 2.0 Processor User Manual"><link rel="next" href="ch01.html" title="Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="N10001"></a>XPath 2.0 Processor User Manual</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><ul><li><span class="chapter"><a href="ch01.html">Introduction</a></span><ul><li><span class="section"><a href="ch01.html#Getting_PsychoPath">Getting PsychoPath</a></span></li></ul></li><li><span class="chapter"><a href="ch02.html">Using PsychoPath XPath 2.0 API</a></span><ul><li><span class="section"><a href="ch02.html#Non-Schema_Aware">Non-Schema Aware</a></span></li><li><span class="section"><a href="ch02s02.html">Schema Aware</a></span></li><li><span class="section"><a href="ch02s03.html">How to use the XPath 2.0 grammar with PsychoPath</a></span><ul><li><span class="section"><a href="ch02s03.html#Constants">Constants</a></span></li><li><span class="section"><a href="ch02s03s02.html">Path expressions</a></span></li><li><span class="section"><a href="ch02s03s03.html">Axis steps</a></span></li><li><span class="section"><a href="ch02s03s04.html">Set difference, intersection and Union</a></span></li><li><span class="section"><a href="ch02s03s05.html">Arithmetic Expressions</a></span><ul><li><span class="section"><a href="ch02s03s05.html#Unary">Unary</a></span></li><li><span class="section"><a href="ch02s03s05s02.html">Multiplication and Division:</a></span></li><li><span class="section"><a href="ch02s03s05s03.html">Addition and Subtraction:</a></span></li></ul></li><li><span class="section"><a href="ch02s03s06.html">Range expressions</a></span></li><li><span class="section"><a href="ch02s03s07.html">Comparisons</a></span></li><li><span class="section"><a href="ch02s03s08.html">Conditional Expressions</a></span></li><li><span class="section"><a href="ch02s03s09.html">Quantified Expressions</a></span></li><li><span class="section"><a href="ch02s03s10.html">And, Or Expressions</a></span></li><li><span class="section"><a href="ch02s03s11.html">SequenceType Matching Expressions</a></span></li></ul></li></ul></li><li><span class="chapter"><a href="ch03.html">How to use XPath 2.0 functions with PsychoPath</a></span><ul><li><span class="section"><a href="ch03.html#Accessors">Accessors</a></span></li><li><span class="section"><a href="ch03s02.html">Constructor Functions</a></span></li><li><span class="section"><a href="ch03s03.html">Functions on Numeric Values</a></span></li><li><span class="section"><a href="ch03s04.html">Functions to Assemble and Disassemble Strings</a></span></li><li><span class="section"><a href="ch03s05.html">Compare and Other Functions on String Values</a></span></li><li><span class="section"><a href="ch03s06.html">Functions Based on Substring Matching</a></span></li><li><span class="section"><a href="ch03s07.html">String Functions that Use Pattern Matching</a></span></li><li><span class="section"><a href="ch03s08.html">Functions on Boolean Values</a></span></li><li><span class="section"><a href="ch03s09.html">Component Extraction Functions on Durations, Dates and
+      Times</a></span></li><li><span class="section"><a href="ch03s10.html">Functions Related to QNames</a></span></li><li><span class="section"><a href="ch03s11.html">Functions on Nodes</a></span><ul><li><span class="section"><a href="ch03s11.html#General_Functions_on_Sequences">General Functions on Sequences</a></span></li><li><span class="section"><a href="ch03s11s02.html">Functions That Test the Cardinality of Sequences</a></span></li><li><span class="section"><a href="ch03s11s03.html">Deep-Equal, Aggregate Functions, and Functions that Generate
+        Sequences</a></span></li><li><span class="section"><a href="ch03s11s04.html">Context Functions</a></span></li></ul></li></ul></li><li><span class="chapter"><a href="ch04.html">How to use XPath 2.0 operators with PsychoPath</a></span><ul><li><span class="section"><a href="ch04.html#Operators_on_Numeric_Values">Operators on Numeric Values</a></span></li><li><span class="section"><a href="ch04s02.html">Comparison of Numeric Values</a></span></li><li><span class="section"><a href="ch04s03.html">Operators on Boolean Values</a></span></li><li><span class="section"><a href="ch04s04.html">Comparisons of Duration, Date and Time Values</a></span></li><li><span class="section"><a href="ch04s05.html">Arithmetic Functions on Durations</a></span></li><li><span class="section"><a href="ch04s06.html">Arithmetic Functions Dates and Times</a></span></li><li><span class="section"><a href="ch04s07.html">Operators Related to QNames And Nodes</a></span></li><li><span class="section"><a href="ch04s08.html">Union, Intersection and Except</a></span></li><li><span class="section"><a href="ch04s09.html">Operators that Generate Sequences</a></span></li></ul></li></ul></div></div></body></html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/lib/.cvsignore b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/lib/.cvsignore
new file mode 100644
index 0000000..aa9bb30
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/lib/.cvsignore
@@ -0,0 +1,3 @@
+org.eclipse.mylyn.wikitext.core_1.1.2.I20090813-1900-e3x.jar
+org.eclipse.mylyn.wikitext.mediawiki.core_1.1.2.I20090813-1900-e3x.jar
+plugins
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/mediawiki/.cvsignore b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/mediawiki/.cvsignore
new file mode 100644
index 0000000..4152f9d
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/mediawiki/.cvsignore
@@ -0,0 +1 @@
+usermanual
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/plugin.properties b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/plugin.properties
new file mode 100644
index 0000000..b679d29
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.wst.xsl.doc
+vendorName = Eclipse Web Tools Platform
+pluginName = XPath 2.0 (PsychoPath) User Documentation
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/plugin.xml b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/plugin.xml
new file mode 100644
index 0000000..1427912
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.help.toc">
+      <toc
+            file="toc.xml"
+            primary="true">
+      </toc>
+   </extension>
+
+</plugin>
diff --git a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/toc.xml b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/toc.xml
new file mode 100644
index 0000000..cda16b3
--- /dev/null
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/toc.xml
@@ -0,0 +1 @@
+<toc topic="html/index.html" label="XPath 2.0 Processor User Manual"><topic href="html/ch01.html" label="Introduction"><topic href="html/ch01.html#Getting_PsychoPath" label="Getting PsychoPath"></topic></topic><topic href="html/ch02.html" label="Using PsychoPath XPath 2.0 API"><topic href="html/ch02.html#Non-Schema_Aware" label="Non-Schema Aware"></topic><topic href="html/ch02s02.html" label="Schema Aware"></topic><topic href="html/ch02s03.html" label="How to use the XPath 2.0 grammar with PsychoPath"><topic href="html/ch02s03.html#Constants" label="Constants"></topic><topic href="html/ch02s03s02.html" label="Path expressions"></topic><topic href="html/ch02s03s03.html" label="Axis steps"></topic><topic href="html/ch02s03s04.html" label="Set difference, intersection and Union"></topic><topic href="html/ch02s03s05.html" label="Arithmetic Expressions"><topic href="html/ch02s03s05.html#Unary" label="Unary"></topic><topic href="html/ch02s03s05s02.html" label="Multiplication and Division:"></topic><topic href="html/ch02s03s05s03.html" label="Addition and Subtraction:"></topic></topic><topic href="html/ch02s03s06.html" label="Range expressions"></topic><topic href="html/ch02s03s07.html" label="Comparisons"></topic><topic href="html/ch02s03s08.html" label="Conditional Expressions"></topic><topic href="html/ch02s03s09.html" label="Quantified Expressions"></topic><topic href="html/ch02s03s10.html" label="And, Or Expressions"></topic><topic href="html/ch02s03s11.html" label="SequenceType Matching Expressions"></topic></topic></topic><topic href="html/ch03.html" label="How to use XPath 2.0 functions with PsychoPath"><topic href="html/ch03.html#Accessors" label="Accessors"></topic><topic href="html/ch03s02.html" label="Constructor Functions"></topic><topic href="html/ch03s03.html" label="Functions on Numeric Values"></topic><topic href="html/ch03s04.html" label="Functions to Assemble and Disassemble Strings"></topic><topic href="html/ch03s05.html" label="Compare and Other Functions on String Values"></topic><topic href="html/ch03s06.html" label="Functions Based on Substring Matching"></topic><topic href="html/ch03s07.html" label="String Functions that Use Pattern Matching"></topic><topic href="html/ch03s08.html" label="Functions on Boolean Values"></topic><topic href="html/ch03s09.html" label="Component Extraction Functions on Durations, Dates and Times"></topic><topic href="html/ch03s10.html" label="Functions Related to QNames"></topic><topic href="html/ch03s11.html" label="Functions on Nodes"><topic href="html/ch03s11.html#General_Functions_on_Sequences" label="General Functions on Sequences"></topic><topic href="html/ch03s11s02.html" label="Functions That Test the Cardinality of Sequences"></topic><topic href="html/ch03s11s03.html" label="Deep-Equal, Aggregate Functions, and Functions that Generate Sequences"></topic><topic href="html/ch03s11s04.html" label="Context Functions"></topic></topic></topic><topic href="html/ch04.html" label="How to use XPath 2.0 operators with PsychoPath"><topic href="html/ch04.html#Operators_on_Numeric_Values" label="Operators on Numeric Values"></topic><topic href="html/ch04s02.html" label="Comparison of Numeric Values"></topic><topic href="html/ch04s03.html" label="Operators on Boolean Values"></topic><topic href="html/ch04s04.html" label="Comparisons of Duration, Date and Time Values"></topic><topic href="html/ch04s05.html" label="Arithmetic Functions on Durations"></topic><topic href="html/ch04s06.html" label="Arithmetic Functions Dates and Times"></topic><topic href="html/ch04s07.html" label="Operators Related to QNames And Nodes"></topic><topic href="html/ch04s08.html" label="Union, Intersection and Except"></topic><topic href="html/ch04s09.html" label="Operators that Generate Sequences"></topic></topic></toc>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.xml.xpath2.processor.feature/feature.xml b/features/org.eclipse.wst.xml.xpath2.processor.feature/feature.xml
index 298c2fc..732e96c 100644
--- a/features/org.eclipse.wst.xml.xpath2.processor.feature/feature.xml
+++ b/features/org.eclipse.wst.xml.xpath2.processor.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.xml.xpath2.processor.feature"
       label="%featureName"
-      version="1.1.002.qualifier"
+      version="1.1.003.qualifier"
       provider-name="%provider"
       plugin="org.eclipse.wst.xml.xpath2">
 
@@ -52,4 +52,10 @@
          install-size="0"
          version="0.0.0"/>
 
+   <plugin
+         id="org.eclipse.wst.xml.xpath2.processor.doc.user"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
 </feature>