[343823] Update documentation in org.eclipse.wst.xml.xpath2.processor.sdk.doc and org.eclipse.wst.xml.xpath2.processor.doc.user
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
index c6f3063..d61d9da 100644
--- 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
@@ -2,7 +2,7 @@
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-Version: 2.0.0.qualifier
Bundle-Vendor: %vendorName
Require-Bundle: org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: J2SE-1.4
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
index 1caf578..45a3c18 100644
--- 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
@@ -1,423 +1,253 @@
-<?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">
+<?xml version='1.0' ?><!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
+ <title>usermanual</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="/wiki/PsychoPathXPathProcessor/Design">design</ulink> document.
+ </para>
+ <section id="Getting_PsychoPath">
+ <title>Getting PsychoPath</title>
+ <para>Standalone jars are only available through nightly builds. However, you can download the current WTP builds, 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>
+ <para>Additional dependencies you currently need are:</para>
+ <itemizedlist>
+ <listitem>
+ <para>IBM ICU 3.8</para>
+ </listitem>
+ <listitem>
+ <para>Xerces 2.8.0 or greater</para>
+ </listitem>
+ <listitem>
+ <para>JavaCup 0.10 or greater.</para>
+ </listitem>
+ </itemizedlist>
+ <para>These are all available from the
+ <ulink url="http://download.eclipse.org/tools/orbit/downloads/">Orbit project.</ulink>
+ </para>
+ </section>
+ </chapter>
+ <chapter id="How_to_feed_Psychopath_XPath_expressions">
+ <title>How to feed Psychopath XPath expressions</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>
+ <para>All 5 main steps have been explained in detail in
+ <ulink url="/wiki/PsychoPathXPathProcessor/UserInterface">User Interface</ulink>, so below is just a brief code summary:
+
+ </para>
+ <section id="Non-Schema_Aware">
+ <title>Non-Schema Aware</title>
+
+ <literallayout>/**
+* 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.
+</literallayout>
+ <literallayout>// Create an InputStream from the XML document
+InputStream is = new FileInputStream("XPexample.xml");
+</literallayout>
+ <literallayout>// Initializing the Xerces DOM loader.
DOMLoader loader = new XercesLoader();
-
-// Optionally set flag to validate XML document loader.setvalidating(validate);
+</literallayout>
+ <literallayout>// Optionally set flag to validate XML document
+// loader.set_validating(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
+</literallayout>
+ <literallayout>// Initialising the StaticContext using a builder with suitable defaults.
+StaticContextBuilder scb = new StaticContextBuilder();
+</literallayout>
+ <literallayout>/**
+ * Parsing the XPath 2.0 expression into an executable expression, including
+ * a static check and verification.
*/
-// 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
+String xpathText = "string-join(//character/name, ', ')";
+XPath2Expression expr = new Engine().parseExpression(xpathText, scb);
+</literallayout>
+ <literallayout>// Evaluates the XPath 2.0 expression, storing the result
// in the ResultSequence
-ResultSequence rs = eval.evaluate(xp);
-</programlisting>
- </section>
+ResultSequence rs = expr.evaluate(new DynamicContextBuilder(scb),
+ new Object[] { doc });
+</literallayout>
+ <literallayout>for (int i = 0; i < rs.size(); ++i) {
+ System.out.println("#" + i + ": " + rs.value(i));
+}
+</literallayout>
+ <para>
- <section id="Schema_Aware">
- <title>Schema Aware</title>
-
- <para></para>
-
- <programlisting>/**
+</para>
+ </section>
+ <section id="Schema_Aware">
+ <title>Schema Aware</title>
+
+ <literallayout>/**
* 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.
+InputStream is = new FileInputStream("XPexample.xml");
+</literallayout>
+ <literallayout>SchemaFactory schemaFactory = new XMLSchemaFactory();
+URL schemaURL = new File("XPexample.xsd").toURL();
+Schema jaxpschema = schemaFactory.newSchema(schemaURL);
+</literallayout>
+ <literallayout>// Initializing the Xerces DOM loader.
DOMLoader loader = new XercesLoader(jaxpschema);
-
-// Optionally set flag to validate XML document loader.setvalidating(validate);
+loader.set_validating(true);
+</literallayout>
+ <literallayout>// Optionally set flag to validate XML document
+// loader.set_validating(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
+</literallayout>
+ <literallayout>// Initialising the StaticContext using a builder with suitable defaults.
+StaticContextBuilder scb = new StaticContextBuilder();
+scb.withNamespace("xs", "http://www.w3.org/2001/XMLSchema");
+scb.withTypeModel(new XercesTypeModel(doc));
+</literallayout>
+ <literallayout>/**
+ * Parsing the XPath 2.0 expression into an executable expression, including
+ * a static check and verification.
*/
-// 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
+String xpathText = "for $elem in //*[. instance of xs:normalizedString] return concat(local-name($elem), ' : ', $elem/text())";
+XPath2Expression expr = new Engine().parseExpression(xpathText, scb);
+</literallayout>
+ <literallayout>// 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.
+ResultSequence rs = expr.evaluate(new DynamicContextBuilder(scb),
+ new Object[] { doc });
+</literallayout>
+ <literallayout>for (int i = 0; i < rs.size(); ++i) {
+ System.out.println("#" + i + ": " + rs.value(i));
+}
+</literallayout>
+
+ <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>// Will return the number of elements in the sequence, in this </para>
+ <literallayout>// case of ’Hello World!’ expression size = 1.
+</literallayout>
+ <literallayout>rs.size();
+</literallayout>
+ <literallayout>// Will return the n’th element in the sequence, in this case of
+// ’Hello World!’, if n = 0, then it will return
+// “Hello World!”.
+</literallayout>
+ <literallayout>rs.value(n);
+</literallayout>
+ <literallayout>//Will return true if the sequence is empty.
rs.empty();
+</literallayout>
+ <literallayout>// Will return the first element of the sequence,
+// in this example it will return xs:string of “Hello World!”
+rs.firstValue()
+</literallayout>
+ <para>
-// 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><nodes>
+ However, all the items extracted will be of the type’s "native" value (statically known as Object) 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>
+ <literallayout>String string = (String)(rs.value(0));
+
+</literallayout>
+ <para>The details of how to cast extracted items from Object into their actual subtypes with examples is in the next section on How to use each production in the grammar. As an alternative, you can call
+ </para>
+ <literallayout>ItemType itype = rs.itemType(n);
+Which will return the type of the n'th item in the result sequence.
+</literallayout>
+ <para>
+</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:
+ String xsstring = (String)(rs.firstValue());
+ 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">BigDecima''l (e.g. : xs:decimal: 4.67),''Int ''(e.g. : xs:integer: 4) or ''XSDouble</emphasis> (e.g. : xs:double 1e0). All of which need to be casted 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>
+ <literallayout><source lang="xml">
+<nodes>
<a>
<connecteda>A</connecteda>
<connecteda>B</connecteda>
@@ -429,269 +259,257 @@
<connectedb>D</connectedb>
</b>
</nodes>
-</programlisting>
+</literallayout>
+ <para>
+ then an example of each of the expressions would be: </para>
+ <literallayout>data(/a/*) union data(/b/*)
+</literallayout>
+ <para>
- <para>Then an example of each of the expressions would be:</para>
+ <emphasis role="italic">'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>
+ <literallayout>data(/a/*) intersect data(/b/*)
+</literallayout>
+ <para>
- <para><programlisting>data(/a/*) union data(/b/*)</programlisting></para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:string: B </para>
+ </listitem>
+ <listitem>
+ <para>xs:string: C
+</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>data(/a/*) except data(/b/*)
+</literallayout>
+ <para>
- <para> <emphasis role="bold">result:</emphasis></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. <strike></strike> 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>
+ <literallayout>-(5 + 7)
+</literallayout>
+ <para>
- <orderedlist>
- <listitem>
- <para>xs:string: A</para>
- </listitem>
+ <emphasis role="bold">result:</emphasis>
+
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:integer: -12</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>-xs:float(’1.23’)
+</literallayout>
+ <para>
- <listitem>
- <para>xs:string: B</para>
- </listitem>
+ <emphasis role="bold">result:</emphasis>
- <listitem>
- <para>xs:string: C</para>
- </listitem>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:float: -1.23
+</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>-xs:double(’1.23’)
+</literallayout>
+ <para>
- <listitem>
- <para>xs:string: D</para>
- </listitem>
- </orderedlist>
+ <emphasis role="bold">result:</emphasis>
- <para><programlisting>data(/a/*) intersect data(/b/*)</programlisting></para>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:double: -1.23
+</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>(+5 - +7)
+</literallayout>
+ <para>
- <para> <emphasis role="bold">result:</emphasis></para>
+ <emphasis role="bold">result:</emphasis>
- <orderedlist>
- <listitem>
- <para>xs:string: B</para>
- </listitem>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:integer: -2
+</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>(1 to 5 div 0 )
+</literallayout>
+ <para>
- <listitem>
- <para>xs:string: C</para>
- </listitem>
- </orderedlist>
+ <emphasis role="bold">result:</emphasis>
- <para><programlisting>data(/a/*) except data(/b/*)</programlisting></para>
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>FAIL (division by zero!)
+</para>
+ </listitem>
+ </itemizedlist>
+ <literallayout>5*6*10*5*96 div 20 div 3 div 1
+</literallayout>
+ <para>
- <para> <emphasis role="bold">result:</emphasis></para>
+ <emphasis role="bold">result:</emphasis>
- <orderedlist>
- <listitem>
- <para>xs:string: D</para>
- </listitem>
- </orderedlist>
- </section>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:decimal: 2400.0
+</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>31 mod 15
+</literallayout>
+ <para>
- <section id="Arithmetic_Expressions">
- <title>Arithmetic Expressions</title>
+ <emphasis role="bold">result:</emphasis>
- <section id="Unary">
- <title>Unary</title>
+ </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>
+ <literallayout>(1+1 to 10)
+</literallayout>
+ <para>
- <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><=' <emphasis role="italic">,
- '</emphasis>> <emphasis role="bold">, '''<</emphasis>, and
- <emphasis role="bold">>=</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"><<</emphasis> and
- <emphasis role="bold">>></emphasis> test whether one node
- precedes or follows another in document order. Consider this XML
- document:</para>
-
- <programlisting><book>
+ <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><='
+ <emphasis role="italic">, '</emphasis>>
+ <emphasis role="bold">, '''<</emphasis>, and
+ <emphasis role="bold">>=</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"><<</emphasis> and
+ <emphasis role="bold">>></emphasis> test whether one node precedes or follows another in document order. Consider this XML document (XPexample.xml):
+ <source lang="xml">
+ </para>
+ <literallayout><book>
<title>Being a Dog Is a Full-Time Job</title>
<author>Charles M. Schulz</author>
<character>
@@ -708,585 +526,501 @@
<qualification>bold, brash and tomboyish</qualification>
</character>
</book>
-</programlisting>
+</literallayout>
+ <para> </para>
+ <para>This file conforms to the following Schema (XPexample.xsd):</para>
+ <para><?xml version="1.0" encoding="UTF-8"?></para>
+ <literallayout><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+</literallayout>
+ <literallayout> <xs:element name="book">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="title" />
+ <xs:element ref="author" />
+ <xs:element maxOccurs="unbounded" ref="character" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</literallayout>
+ <literallayout> <xs:element name="title" type="characterName"></xs:element>
+</literallayout>
+ <literallayout> <xs:element name="author" type="characterName"></xs:element>
+</literallayout>
+ <literallayout> <xs:element name="character">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name" />
+ <xs:element ref="friend-of" minOccurs="0" />
+ <xs:element ref="since" />
+ <xs:element ref="age" />
+ <xs:element ref="qualification" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="name" type="characterName" />
+ <xs:element name="friend-of" type="characterName" />
+ <xs:element name="since" type="xs:date" />
+ <xs:element name="age" type="xs:nonNegativeInteger" />
+ <xs:element name="qualification" type="xs:string" />
+</literallayout>
+ <literallayout> <xs:simpleType name="characterName">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
+</literallayout>
+ <para> </para>
+ <para>
+ <emphasis role="bold">
+ <emphasis role="italic">Examples:</emphasis>
+ </emphasis>
+ </para>
+ <literallayout>book/character[name="Snoopy"] &lt;&lt; book/character[name="Peppermint Patty"]
+</literallayout>
+ <para>
- <para>Example:</para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:boolean: true</para>
+ </listitem>
+ </orderedlist>
+ <literallayout>book/character[name="Peppermint Patty"] &lt;&lt; book/character[name="Snoopy"]
+</literallayout>
+ <para>
- <para><programlisting>book/character name="Snoopy" << book/character Patty" </programlisting></para>
+ <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>
+ <para>
+ </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>
+ <emphasis role="bold">
+ <emphasis role="italic">Example:</emphasis>
+ </emphasis> (for a truth table)
+ </para>
+ <literallayout>1 and 1
+</literallayout>
+ <para>
- <para><emphasis role="bold">result:</emphasis></para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:boolean: true</para>
+ </listitem>
+ </orderedlist>
+ <para>
+ </para>
+ <literallayout>1 and 0
+</literallayout>
+ <para>
- <orderedlist>
- <listitem>
- <para>xs:boolean: true</para>
- </listitem>
- </orderedlist>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:boolean: false</para>
+ </listitem>
+ </orderedlist>
+ <para>
+ </para>
+ <literallayout>1 or 0
+</literallayout>
+ <para>
- <para>book/character <ulink url="name="Peppermint">Patty"</ulink>
- << book/character <ulink
- url="name="Snoopy"">name="Snoopy"</ulink> <emphasis
- role="bold">result:</emphasis></para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:boolean: true</para>
+ </listitem>
+ </orderedlist>
+ <para>
+ </para>
+ <literallayout>0 or 1
+</literallayout>
+ <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><sorbo>
- <is>elite</is>
+ <emphasis role="italic">'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:
+ <source lang="xml"><sorbo></para>
+ <literallayout> <is>elite</is>
<!-- life sux -->
-</sorbo>
-</programlisting>
+</literallayout>
+ <para></sorbo>
+
+ then, the following are some example of SequenceType matchings: </para>
+ <literallayout>element({*})
+</literallayout>
+ <para>
- <para>Then, the following are some example of SequenceType
- matchings:</para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>element: sorbo</para>
+ </listitem>
+ </orderedlist>
+ <para>
+ </para>
+ <literallayout>element(elite)
+</literallayout>
+ <para>
- <para><programlisting> element({*})</programlisting></para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>Empty results</para>
+ </listitem>
+ </orderedlist>
+ <literallayout> sorbo/comment()
+</literallayout>
+ <para>
- <para> <emphasis role="bold">result:</emphasis></para>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>comment: life sux</para>
+ </listitem>
+ </orderedlist>
+ <literallayout> data(/sorbo/comment())
+</literallayout>
+ <para>
- <orderedlist>
- <listitem>
- <para>element: sorbo</para>
- </listitem>
- </orderedlist>
+ <emphasis role="bold">result:</emphasis>
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>xs:string: life sux</para>
+ </listitem>
+ </orderedlist>
+ <para>
+ </para>
+ <literallayout>sorbo/node()
+</literallayout>
+ <para>
- <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);</source></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();
+ <emphasis role="italic">'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>
+ <literallayout>data(‘string’)
+</literallayout>
+ <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>String n = ((XSString)rs.first()).stringvalue(); println(n);</para>
+ <para>in order to get the result of ‘string’</para>
+ </section>
+ <section id="Constructor_Functions">
+ <title>Constructor Functions</title>
+ <literallayout>xs:dateTime("2002-02-01T10:00:00+06:00")
+</literallayout>
+ <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>String n = ((XSDateTime)rs.first()).stringvalue(); println(n);</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>
+ <literallayout>ceiling(xs:float(‘10.4’))
+</literallayout>
+ <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>float n = ((XSFloat)rs.first()).floatvalue(); println(n);</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>
+ <literallayout>codepoints-to-string(0111)
+</literallayout>
+ <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>String n = ((XSString)rs.first()).stringvalue(); println(n);</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>
+ <literallayout>concat(‘un’, ‘grateful’)
+</literallayout>
+ <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>String n = ((XSString)rs.first()).stringvalue(); println(n);</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>
+ <literallayout>contains("abc", "edf")
+</literallayout>
+ <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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</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>
+ <literallayout>matches(‘abcd’, ‘abcd’)
+</literallayout>
+ <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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</para>
+ <para>in order to get the result of ‘true’</para>
+ </section>
+ <section id="Functions_on_Boolean_Values">
+ <title>Functions on Boolean Values</title>
+ <literallayout>not(true())
+</literallayout>
+ <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>
+ boolean n = ((XSBoolean)rs.first()).value();
+ println(n);
+ </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>
+ <literallayout>timezone-from-time(xs:time("13:20:00+05:00"))
+</literallayout>
+ <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>String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); println(n);</para>
+ <para>in order to get the result of ‘PT5H’</para>
+ </section>
+ <section id="Functions_Related_to_QNames">
+ <title>Functions Related to QNames</title>
+ <literallayout>local-name-from-QName(QName(‘http://www.example.com/example’, ‘person’))
+</literallayout>
+ <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>String n = ((XSNCName)rs.first()).stringvalue(); println(n); </para>
+ <para>in order to get the result of ‘person’</para>
+ </section>
+ <section id="Functions_on_Nodes">
+ <title>Functions on Nodes</title>
+ <section id="General_Functions_on_Sequences">
+ <title>General Functions on Sequences</title>
+ <literallayout>remove((‘s’,‘o’,‘m’,‘e’,‘t’,‘h’,‘i’,‘n’,‘g’), 6)
+</literallayout>
+ <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>
+ for (Iterator iter = rs.iterator(); iter.hasNext();) {</para>
+ <literallayout> 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();
+</literallayout>
+ <para>}
+ println("");
+ </para>
+ <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>
+ <literallayout>one-or-more((1,2,3,4,5))
+</literallayout>
+ <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>
+ for (Iterator iter = rs.iterator(); iter.hasNext();) {</para>
+ <literallayout> 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>
+</literallayout>
+ <para>}
+ println("");
+ </para>
+ <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>
+ <literallayout>avg((3,4,5))
+</literallayout>
+ <para> </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>double avg = ((XSDouble)rs.first()).doublevalue(); println(avg); </para>
+ <para>in order to get the result of ‘4.0’</para>
+ </section>
+ <section id="Context_Functions">
+ <title>Context Functions</title>
+ <literallayout>(10 to 20)[position() = 2]
+</literallayout>
+ <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>int pos = ((XSInteger)rs.first()).intvalue(); println(pos);</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>
+ <literallayout>xs:integer(4) + xs:integer(3)
+</literallayout>
+ <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>Integer n = ((XSInteger)rs.first()).integervalue(); println(n);</para>
+ <para>in order to get the result of ‘7’</para>
+ </section>
+ <section id="Comparison_of_Numeric_Values">
+ <title>Comparison of Numeric Values</title>
+ <literallayout>xs:decimal(3.3) = xs:decimal(6.6)
+</literallayout>
+ <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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</para>
+ <para>in order to get the result of ‘false’</para>
+ </section>
+ <section id="Operators_on_Boolean_Values">
+ <title>Operators on Boolean Values</title>
+ <literallayout>xs:boolean(’true’) gt xs:boolean(’false’)
+</literallayout>
+ <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>boolean n = ((XSBoolean)rs.first()).value(); println(n); </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>
+ <literallayout>xs:time("23:00:00+06:00") lt xs:time("12:00:00-06:00")
+</literallayout>
+ <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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</para>
+ <para>in order to get the result of ‘true’</para>
+ </section>
+ <section id="Arithmetic_Functions_on_Durations">
+ <title>Arithmetic Functions on Durations</title>
+ <literallayout>multiply-dayTimeDuration(xdt:dayTimeDuration("PT2H10M"), 2.1)
+</literallayout>
+ <para> </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>String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); println(n);</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>
+ <literallayout>add-yearMonthDuration-to-dateTime( xs:dateTime("2000-10-30T11:12:00"), xdt:yearMonthDuration("P1Y2M"))
+</literallayout>
+ <para> </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>String n = ((XSDateTime)rs.first()).stringvalue(); println(n);</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>
+ <literallayout>xs:QName(’ao’) eq xs:QName(’ao’)
+</literallayout>
+ <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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</para>
+ <para>which returns the result of ‘true’</para>
+ </section>
+ <section id="Union.2C_Intersection_and_Except">
+ <title>Union, Intersection and Except</title>
+ <literallayout>union($seq2, $seq3)
+</literallayout>
+ <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>
+ for (Iterator iter = rs.iterator(); iter.hasNext();) {</para>
+ <literallayout>Object item = iter.next();
+String n = ((XSString)item).stringvalue();
+print(n + ", ");
+</literallayout>
+ <para>}
+ println("");
+ </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>
+ <literallayout>(1 to 3)
+</literallayout>
+ <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>int n = (XSInteger)rs.first()).stringvalue(); println(n);</para>
+ <para>which returns the sequence consisting of 1, 2, 3. </para>
+ <itemizedlist>
+ <listitem>
+ <para></para>
+ <itemizedlist>
+ <listitem>
+ <para></para>
+ <itemizedlist>
+ <listitem>
+ <para>-</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <ulink url="/wiki/Category:Draft_Documentation">Category:Draft_Documentation</ulink>
+ </para>
+ </section>
+ </chapter>
+</book>
\ No newline at end of file
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
index f4c35e7..27186e5 100644
--- 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
@@ -86,6 +86,17 @@
font-family: "Courier New", Courier, monospace;
}
+div.literallayout {
+ font-family: "Courier New", Courier, monospace;
+ background-color: silver;
+ border: thin;
+ border-style: dashed;
+ color: black;
+ padding-left: 5;
+}
+div.literallayout p {
+ font-family: "Courier New", Courier, monospace;
+}
/* end font face declarations */
@media print {
html {
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
index 3435cf1..ae133c8 100644
--- 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
@@ -1,20 +1,5 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Introduction</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="up" href="index.html" title="usermanual"><link rel="prev" href="index.html" title="usermanual"><link rel="next" href="ch02.html" title="How to feed Psychopath XPath expressions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter" title="Introduction"><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="/wiki/PsychoPathXPathProcessor/Design" target="_top">design</a> document.
+ </p><div class="section" title="Getting PsychoPath"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Getting_PsychoPath"></a>Getting PsychoPath</h2></div></div></div><p>Standalone jars are only available through nightly builds. However, you can download the current WTP builds, 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><p>Additional dependencies you currently need are:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>IBM ICU 3.8</p></li><li class="listitem"><p>Xerces 2.8.0 or greater</p></li><li class="listitem"><p>JavaCup 0.10 or greater.</p></li></ul></div><p>These are all available from the
+ <a class="ulink" href="http://download.eclipse.org/tools/orbit/downloads/" target="_top">Orbit project.</a>
+ </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
index 7f1ac76..1fd09dc 100644
--- 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
@@ -1,70 +1,32 @@
-<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’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”.</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(“XPexample.xml”);
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>How to feed Psychopath XPath expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="up" href="index.html" title="usermanual"><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" title="How to feed Psychopath XPath expressions"><div class="titlepage"><div><div><h2 class="title"><a name="How_to_feed_Psychopath_XPath_expressions"></a>How to feed Psychopath XPath expressions</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 class="orderedlist" type="1"><li class="listitem"><p>Load the XML document </p></li><li class="listitem"><p>Optionally validate the XML document </p></li><li class="listitem"><p>Initialize static and dynamic context in respect to the document root </p></li><li class="listitem"><p>Parse the XPath 2.0 expression </p></li><li class="listitem"><p>Statically verify the XPath 2.0 expression </p></li><li class="listitem"><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’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”. </p><p>All 5 main steps have been explained in detail in
+ <a class="ulink" href="/wiki/PsychoPathXPathProcessor/UserInterface" target="_top">User Interface</a>, so below is just a brief code summary:
+
+ </p><div class="section" title="Non-Schema Aware"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Non-Schema_Aware"></a>Non-Schema Aware</h2></div></div></div><div class="literallayout"><p>/**<br>
+* First load and optionally validate the XML document <br>
+*/<br>
+</p></div><div class="literallayout"><p>// Create an InputStream from the XML document<br>
+InputStream is = new FileInputStream("XPexample.xml");<br>
+</p></div><div class="literallayout"><p>// Initializing the Xerces DOM loader.<br>
+DOMLoader loader = new XercesLoader();<br>
+</p></div><div class="literallayout"><p>// Optionally set flag to validate XML document<br>
+// loader.set_validating(validate);<br>
+// Loads the XML document and stores the DOM root<br>
+Document doc = loader.load(is);<br>
+</p></div><div class="literallayout"><p>// Initialising the StaticContext using a builder with suitable defaults.<br>
+StaticContextBuilder scb = new StaticContextBuilder();<br>
+</p></div><div class="literallayout"><p>/**<br>
+ * Parsing the XPath 2.0 expression into an executable expression, including<br>
+ * a static check and verification.<br>
+ */<br>
+String xpathText = "string-join(//character/name, ', ')";<br>
+XPath2Expression expr = new Engine().parseExpression(xpathText, scb);<br>
+</p></div><div class="literallayout"><p>// Evaluates the XPath 2.0 expression, storing the result<br>
+// in the ResultSequence<br>
+ResultSequence rs = expr.evaluate(new DynamicContextBuilder(scb),<br>
+ new Object[] { doc });<br>
+</p></div><div class="literallayout"><p>for (int i = 0; i < rs.size(); ++i) {<br>
+ System.out.println("#" + i + ": " + rs.value(i));<br>
+}<br>
+</p></div><p>
-// 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);
-</pre></div></div></body></html>
\ No newline at end of file
+</p></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
index 19a87cf..4edd97f 100644
--- 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
@@ -1,101 +1,53 @@
-<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
-*/
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Schema Aware</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="up" href="ch02.html" title="How to feed Psychopath XPath expressions"><link rel="prev" href="ch02.html" title="How to feed Psychopath XPath expressions"><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" title="Schema Aware"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Schema_Aware"></a>Schema Aware</h2></div></div></div><div class="literallayout"><p>/**<br>
+ * First load and optionally validate the XML document <br>
+ */<br>
+// Create an InputStream from the XML document<br>
+InputStream is = new FileInputStream("XPexample.xml");<br>
+</p></div><div class="literallayout"><p>SchemaFactory schemaFactory = new XMLSchemaFactory();<br>
+URL schemaURL = new File("XPexample.xsd").toURL();<br>
+Schema jaxpschema = schemaFactory.newSchema(schemaURL);<br>
+</p></div><div class="literallayout"><p>// Initializing the Xerces DOM loader.<br>
+DOMLoader loader = new XercesLoader(jaxpschema);<br>
+loader.set_validating(true);<br>
+</p></div><div class="literallayout"><p>// Optionally set flag to validate XML document<br>
+// loader.set_validating(validate);<br>
+// Loads the XML document and stores the DOM root<br>
+Document doc = loader.load(is);<br>
+</p></div><div class="literallayout"><p>// Initialising the StaticContext using a builder with suitable defaults.<br>
+StaticContextBuilder scb = new StaticContextBuilder();<br>
+scb.withNamespace("xs", "http://www.w3.org/2001/XMLSchema");<br>
+scb.withTypeModel(new XercesTypeModel(doc));<br>
+</p></div><div class="literallayout"><p>/**<br>
+ * Parsing the XPath 2.0 expression into an executable expression, including<br>
+ * a static check and verification.<br>
+ */<br>
+String xpathText = "for $elem in //*[. instance of xs:normalizedString] return concat(local-name($elem), ' : ', $elem/text())";<br>
+XPath2Expression expr = new Engine().parseExpression(xpathText, scb);<br>
+</p></div><div class="literallayout"><p>// Evaluates the XPath 2.0 expression, storing the result<br>
+// in the ResultSequence<br>
+ResultSequence rs = expr.evaluate(new DynamicContextBuilder(scb),<br>
+ new Object[] { doc });<br>
+</p></div><div class="literallayout"><p>for (int i = 0; i < rs.size(); ++i) {<br>
+ System.out.println("#" + i + ": " + rs.value(i));<br>
+}<br>
+</p></div><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. “Hello World!” is an example of a single value with length 1. A general sequence could be written as (“a”, “s”, “d”, “f”). </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 ’rs’ is the ResultSequence, then: </p><p>// Will return the number of elements in the sequence, in this </p><div class="literallayout"><p>// case of ’Hello World!’ expression size = 1. <br>
+</p></div><div class="literallayout"><p>rs.size();<br>
+</p></div><div class="literallayout"><p>// Will return the n’th element in the sequence, in this case of <br>
+// ’Hello World!’, if n = 0, then it will return<br>
+// “Hello World!”.<br>
+</p></div><div class="literallayout"><p>rs.value(n);<br>
+</p></div><div class="literallayout"><p>//Will return true if the sequence is empty.<br>
+rs.empty(); <br>
+</p></div><div class="literallayout"><p>// Will return the first element of the sequence, <br>
+// in this example it will return xs:string of “Hello World!” <br>
+rs.firstValue() <br>
+</p></div><p>
- 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);
-</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. “Hello World!” is an example of a
- single value with length 1. A general sequence could be written as (“a”,
- “s”, “d”, “f”).</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 ’rs’ is the ResultSequence,
- then:</p><p></p><pre class="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()
-</pre><p>However, all the items extracted will be of the type’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
- “Hello World!” returns a string (easily known as it is inside the quotes
- ’ ’ ), 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. </p></div></body></html>
\ No newline at end of file
+ However, all the items extracted will be of the type’s "native" value (statically known as Object) 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 “Hello World!” returns a string (easily known as it is inside the quotes ’ ’ ), so this can safely be casted as such:
+ </p><div class="literallayout"><p>String string = (String)(rs.value(0));<br>
+ <br>
+</p></div><p>The details of how to cast extracted items from Object into their actual subtypes with examples is in the next section on How to use each production in the grammar. As an alternative, you can call
+ </p><div class="literallayout"><p>ItemType itype = rs.itemType(n);<br>
+Which will return the type of the n'th item in the result sequence.<br>
+</p></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/ch02s03.html b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/html/ch02s03.html
index cba921f..62a5251 100644
--- 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
@@ -1,25 +1,15 @@
-<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 “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: <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. :
- xs:decimal: 4.67),''XSInteger ''(e.g. : xs:integer: 4) or
- ''XSDouble</span> (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.</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(“10.7”)</strong></span> produces a single-precision
- floating point number.</p></div></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>How to use the XPath 2.0 grammar with PsychoPath</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="up" href="ch02.html" title="How to feed Psychopath XPath expressions"><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" title="How to use the XPath 2.0 grammar with PsychoPath"><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" title="Constants"><div class="titlepage"><div><div><h3 class="title"><a name="Constants"></a>Constants</h3></div></div></div><p>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:
+ String xsstring = (String)(rs.firstValue());
+ 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">BigDecima''l (e.g. : xs:decimal: 4.67),''Int ''(e.g. : xs:integer: 4) or ''XSDouble</span> (e.g. : xs:double 1e0). All of which need to be casted 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(“10.7”)</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
index a5ad00c..c0d9f72 100644
--- 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
@@ -1,20 +1,22 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Path expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Path expressions"><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
index b86638b..cb1c560 100644
--- 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
@@ -1,7 +1,2 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Axis steps</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Axis steps"><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 class="orderedlist" type="1"><li class="listitem"><p>element: age </p></li><li class="listitem"><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
index 9a0198f..74a9793 100644
--- 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
@@ -1,23 +1,30 @@
-<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"><nodes>
- <a>
- <connecteda>A</connecteda>
- <connecteda>B</connecteda>
- <connecteda>C</connecteda>
- </a>
- <b>
- <connectedb>B</connectedb>
- <connectedb>C</connectedb>
- <connectedb>D</connectedb>
- </b>
-</nodes>
-</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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Set difference, intersection and Union</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Set difference, intersection and Union"><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><div class="literallayout"><p><source lang="xml"><br>
+<nodes><br>
+ <a><br>
+ <connecteda>A</connecteda><br>
+ <connecteda>B</connecteda><br>
+ <connecteda>C</connecteda><br>
+ </a><br>
+ <b><br>
+ <connectedb>B</connectedb><br>
+ <connectedb>C</connectedb><br>
+ <connectedb>D</connectedb><br>
+ </b><br>
+</nodes><br>
+</p></div><p>
+ then an example of each of the expressions would be: </p><div class="literallayout"><p>data(/a/*) union data(/b/*)<br>
+</p></div><p>
+
+ <span class="italic">'result: '</span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:string: A </p></li><li class="listitem"><p>xs:string: B </p></li><li class="listitem"><p>xs:string: C </p></li><li class="listitem"><p>xs:string: D
+</p></li></ol></div><div class="literallayout"><p>data(/a/*) intersect data(/b/*)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:string: B </p></li><li class="listitem"><p>xs:string: C
+</p></li></ol></div><div class="literallayout"><p>data(/a/*) except data(/b/*)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><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
index 56c1276..e67da97 100644
--- 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
@@ -1,3 +1 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Arithmetic Expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Arithmetic Expressions"><div class="titlepage"><div><div><h3 class="title"><a name="Arithmetic_Expressions"></a>Arithmetic Expressions</h3></div></div></div><div class="section" title="Unary"><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
index 74f1c81..f9fcdf6 100644
--- 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
@@ -1,11 +1,8 @@
-<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. 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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Multiplication and Division:</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Multiplication and Division:"><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. <span style="color: red"><strike></strike></span> 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
index 0434e26..f5af886 100644
--- 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
@@ -1,5 +1,45 @@
-<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(’1.23’)</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(’1.23’)</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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Addition and Subtraction:</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Addition and Subtraction:"><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><div class="literallayout"><p>-(5 + 7)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:integer: -12</p></li></ol></div><div class="literallayout"><p>-xs:float(’1.23’)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:float: -1.23
+</p></li></ol></div><div class="literallayout"><p>-xs:double(’1.23’)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:double: -1.23
+</p></li></ol></div><div class="literallayout"><p>(+5 - +7)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:integer: -2
+</p></li></ol></div><div class="literallayout"><p>(1 to 5 div 0 )<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>FAIL (division by zero!)
+</p></li></ul></div><div class="literallayout"><p>5*6*10*5*96 div 20 div 3 div 1<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:decimal: 2400.0
+</p></li></ol></div><div class="literallayout"><p>31 mod 15<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><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
index 325296e..24e4546 100644
--- 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
@@ -1,4 +1,8 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Range expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Range expressions"><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><div class="literallayout"><p>(1+1 to 10)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:integer: 2 </p></li><li class="listitem"><p>xs:integer: 3 </p></li><li class="listitem"><p>xs:integer: 4 </p></li><li class="listitem"><p>xs:integer: 5 </p></li><li class="listitem"><p>xs:integer: 6 </p></li><li class="listitem"><p>xs:integer: 7 </p></li><li class="listitem"><p>xs:integer: 8 </p></li><li class="listitem"><p>xs:integer: 9 </p></li><li class="listitem"><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
index b9f6dd2..f630053 100644
--- 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
@@ -1,39 +1,94 @@
-<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’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>=''', </strong></span>!='
- <span class="italic">, '</span><=' <span class="italic">,
- '</span>> <span class="bold"><strong>, '''<</strong></span>, and
- <span class="bold"><strong>>=</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><<</strong></span> and
- <span class="bold"><strong>>></strong></span> test whether one node
- precedes or follows another in document order. Consider this XML
- document:</p><pre class="programlisting"><book>
- <title>Being a Dog Is a Full-Time Job</title>
- <author>Charles M. Schulz</author>
- <character>
- <name>Snoopy</name>
- <friend-of>Peppermint Patty</friend-of>
- <since>1950-10-04</since>
- <age>2</age>
- <qualification>extroverted beagle</qualification>
- </character>
- <character>
- <name>Peppermint Patty</name>
- <since>1966-08-22>/since>
- <age>4</age>
- <qualification>bold, brash and tomboyish</qualification>
- </character>
-</book>
-</pre><p>Example:</p><p><pre class="programlisting">book/character name="Snoopy" << 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>
- << 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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Comparisons</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Comparisons"><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’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>=''', </strong></span>!='
+ <span class="italic">, '</span><='
+ <span class="italic">, '</span>>
+ <span class="bold"><strong>, '''<</strong></span>, and
+ <span class="bold"><strong>>=</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><<</strong></span> and
+ <span class="bold"><strong>>></strong></span> test whether one node precedes or follows another in document order. Consider this XML document (XPexample.xml):
+ <source lang="xml">
+ </p><div class="literallayout"><p><book><br>
+ <title>Being a Dog Is a Full-Time Job</title><br>
+ <author>Charles M. Schulz</author><br>
+ <character><br>
+ <name>Snoopy</name><br>
+ <friend-of>Peppermint Patty</friend-of><br>
+ <since>1950-10-04</since><br>
+ <age>2</age><br>
+ <qualification>extroverted beagle</qualification><br>
+ </character><br>
+ <character><br>
+ <name>Peppermint Patty</name><br>
+ <since>1966-08-22>/since><br>
+ <age>4</age><br>
+ <qualification>bold, brash and tomboyish</qualification><br>
+ </character><br>
+</book><br>
+</p></div><p> </p><p>This file conforms to the following Schema (XPexample.xsd):</p><p><?xml version="1.0" encoding="UTF-8"?></p><div class="literallayout"><p><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"<br>
+ elementFormDefault="qualified"><br>
+</p></div><div class="literallayout"><p> <xs:element name="book"><br>
+ <xs:complexType><br>
+ <xs:sequence><br>
+ <xs:element ref="title" /><br>
+ <xs:element ref="author" /><br>
+ <xs:element maxOccurs="unbounded" ref="character" /><br>
+ </xs:sequence><br>
+ </xs:complexType><br>
+ </xs:element><br>
+</p></div><div class="literallayout"><p> <xs:element name="title" type="characterName"></xs:element><br>
+</p></div><div class="literallayout"><p> <xs:element name="author" type="characterName"></xs:element><br>
+</p></div><div class="literallayout"><p> <xs:element name="character"><br>
+ <xs:complexType><br>
+ <xs:sequence><br>
+ <xs:element ref="name" /><br>
+ <xs:element ref="friend-of" minOccurs="0" /><br>
+ <xs:element ref="since" /><br>
+ <xs:element ref="age" /><br>
+ <xs:element ref="qualification" /><br>
+ </xs:sequence><br>
+ </xs:complexType><br>
+ </xs:element><br>
+ <xs:element name="name" type="characterName" /><br>
+ <xs:element name="friend-of" type="characterName" /><br>
+ <xs:element name="since" type="xs:date" /><br>
+ <xs:element name="age" type="xs:nonNegativeInteger" /><br>
+ <xs:element name="qualification" type="xs:string" /><br>
+</p></div><div class="literallayout"><p> <xs:simpleType name="characterName"><br>
+ <xs:restriction base="xs:normalizedString"><br>
+ <xs:minLength value="1"/><br>
+ </xs:restriction><br>
+ </xs:simpleType><br>
+</xs:schema><br>
+</p></div><p> </p><p>
+ <span class="bold"><strong>
+ <span class="italic">Examples:</span>
+ </strong></span>
+ </p><div class="literallayout"><p>book/character[name="Snoopy"] &lt;&lt; book/character[name="Peppermint Patty"] <br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:boolean: true</p></li></ol></div><div class="literallayout"><p>book/character[name="Peppermint Patty"] &lt;&lt; book/character[name="Snoopy"]<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><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
index 788fefc..d822031 100644
--- 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
@@ -1,4 +1,5 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Conditional Expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Conditional Expressions"><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><p>
+ </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
index 4d0e877..85c2ae1 100644
--- 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
@@ -1,10 +1,7 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Quantified Expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Quantified Expressions"><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
index ce4ff84..da494ce 100644
--- 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
@@ -1,5 +1,28 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>And, Or Expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="And, Or Expressions"><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>
+ <span class="bold"><strong>
+ <span class="italic">Example:</span>
+ </strong></span> (for a truth table)
+ </p><div class="literallayout"><p>1 and 1<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:boolean: true</p></li></ol></div><p>
+ </p><div class="literallayout"><p>1 and 0<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:boolean: false</p></li></ol></div><p>
+ </p><div class="literallayout"><p>1 or 0<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:boolean: true</p></li></ol></div><p>
+ </p><div class="literallayout"><p>0 or 1<br>
+</p></div><p>
+
+ <span class="italic">'result: '</span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><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
index 9385c68..e2331f5 100644
--- 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
@@ -1,23 +1,31 @@
-<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"><sorbo>
- <is>elite</is>
- <!-- life sux -->
-</sorbo>
-</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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>SequenceType Matching Expressions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="SequenceType Matching Expressions"><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:
+ <source lang="xml"><sorbo></p><div class="literallayout"><p> <is>elite</is><br>
+ <!-- life sux --><br>
+</p></div><p></sorbo>
+
+ then, the following are some example of SequenceType matchings: </p><div class="literallayout"><p>element({*})<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>element: sorbo</p></li></ol></div><p>
+ </p><div class="literallayout"><p>element(elite)<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Empty results</p></li></ol></div><div class="literallayout"><p> sorbo/comment()<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>comment: life sux</p></li></ol></div><div class="literallayout"><p> data(/sorbo/comment())<br>
+</p></div><p>
+
+ <span class="bold"><strong>result:</strong></span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>xs:string: life sux</p></li></ol></div><p>
+ </p><div class="literallayout"><p>sorbo/node()<br>
+</p></div><p>
+
+ <span class="italic">'result: '</span>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>text: </p></li><li class="listitem"><p>element: is </p></li><li class="listitem"><p>comment: life sux </p></li><li class="listitem"><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
index 37ac396..9d08054 100644
--- 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
@@ -1,13 +1,5 @@
-<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(‘string’)</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 ‘string’</p></div></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>How to use XPath 2.0 functions with PsychoPath</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="up" href="index.html" title="usermanual"><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" title="How to use XPath 2.0 functions with PsychoPath"><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" title="Accessors"><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><div class="literallayout"><p>data(‘string’)<br>
+</p></div><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>String n = ((XSString)rs.first()).stringvalue(); println(n);</p><p>in order to get the result of ‘string’</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
index 04df21f..cb83576 100644
--- 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
@@ -1,2 +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 ‘2002-02-01T04:00:00Z’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Constructor Functions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Constructor Functions"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Constructor_Functions"></a>Constructor Functions</h2></div></div></div><div class="literallayout"><p>xs:dateTime("2002-02-01T10:00:00+06:00")<br>
+</p></div><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>String n = ((XSDateTime)rs.first()).stringvalue(); println(n);</p><p>in order to get the result of ‘2002-02-01T04:00:00Z’</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
index c9203ea..54e3290 100644
--- 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
@@ -1,3 +1,2 @@
-<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(‘10.4’))</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 ‘11.0’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions on Numeric Values</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions on Numeric Values"><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><div class="literallayout"><p>ceiling(xs:float(‘10.4’))<br>
+</p></div><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>float n = ((XSFloat)rs.first()).floatvalue(); println(n);</p><p>in order to get the result of ‘11.0’ </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
index 7cef82c..1892e2e 100644
--- 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
@@ -1,3 +1,2 @@
-<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);</source></pre></p><p>In order to get the result of ‘o’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions to Assemble and Disassemble Strings</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions to Assemble and Disassemble Strings"><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><div class="literallayout"><p>codepoints-to-string(0111)<br>
+</p></div><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>String n = ((XSString)rs.first()).stringvalue(); println(n);</p><p>in order to get the result of ‘o’</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
index 8c54f5c..0c996c9 100644
--- 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
@@ -1,3 +1,2 @@
-<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(‘un’, ‘grateful’)</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 ‘ungrateful’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Compare and Other Functions on String Values</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Compare and Other Functions on String Values"><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><div class="literallayout"><p>concat(‘un’, ‘grateful’)<br>
+</p></div><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>String n = ((XSString)rs.first()).stringvalue(); println(n);</p><p>in order to get the result of ‘ungrateful’</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
index f609e13..04322fd 100644
--- 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
@@ -1,3 +1,2 @@
-<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 ‘false’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions Based on Substring Matching</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions Based on Substring Matching"><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><div class="literallayout"><p>contains("abc", "edf")<br>
+</p></div><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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</p><p>in order to get the result of ‘false’</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
index ee2acc6..0a1ec2c 100644
--- 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
@@ -1,3 +1,2 @@
-<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(‘abcd’, ‘abcd’)</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 ‘true’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>String Functions that Use Pattern Matching</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="String Functions that Use Pattern Matching"><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><div class="literallayout"><p>matches(‘abcd’, ‘abcd’)<br>
+</p></div><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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</p><p>in order to get the result of ‘true’</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
index 18ee268..68300bf 100644
--- 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
@@ -1,3 +1,5 @@
-<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 ‘false’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions on Boolean Values</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions on Boolean Values"><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><div class="literallayout"><p>not(true())<br>
+</p></div><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>
+ boolean n = ((XSBoolean)rs.first()).value();
+ println(n);
+ </p><p>in order to get the result of ‘false’</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
index ac64dd5..3ee95ef 100644
--- 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
@@ -1,4 +1,2 @@
-<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 ‘PT5H’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Component Extraction Functions on Durations, Dates and Times</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Component Extraction Functions on Durations, Dates and Times"><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><div class="literallayout"><p>timezone-from-time(xs:time("13:20:00+05:00"))<br>
+</p></div><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>String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); println(n);</p><p>in order to get the result of ‘PT5H’</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
index 41d2e40..3333ac2 100644
--- 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
@@ -1,3 +1,2 @@
-<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(‘ <a class="ulink" href="http://www.example.com/example" target="_top">http://www.example.com/example</a>’, ‘person’))</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 ‘person’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions Related to QNames</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions Related to QNames"><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><div class="literallayout"><p>local-name-from-QName(QName(‘http://www.example.com/example’, ‘person’))<br>
+</p></div><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>String n = ((XSNCName)rs.first()).stringvalue(); println(n); </p><p>in order to get the result of ‘person’</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
index 458c7b1..77c4ccd 100644
--- 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
@@ -1,7 +1,8 @@
-<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((‘s’,‘o’,‘m’,‘e’,‘t’,‘h’,‘i’,‘n’,‘g’), 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 ‘s o m e t i n g’</p></div></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions on Nodes</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions on Nodes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Functions_on_Nodes"></a>Functions on Nodes</h2></div></div></div><div class="section" title="General Functions on Sequences"><div class="titlepage"><div><div><h3 class="title"><a name="General_Functions_on_Sequences"></a>General Functions on Sequences</h3></div></div></div><div class="literallayout"><p>remove((‘s’,‘o’,‘m’,‘e’,‘t’,‘h’,‘i’,‘n’,‘g’), 6)<br>
+</p></div><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>
+ for (Iterator iter = rs.iterator(); iter.hasNext();) {</p><div class="literallayout"><p> Object item = iter.next(); <br>
+ String n = ((XSString)item).stringvalue();<br>
+ print(n + " ");<br>
+</p></div><p>}
+ println("");
+ </p><p>in order to get the result of ‘s o m e t i n g’</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
index 2fa440a..c77c4d6 100644
--- 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
@@ -1,7 +1,8 @@
-<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 ‘1 2 3 4 5’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Functions That Test the Cardinality of Sequences</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Functions That Test the Cardinality of Sequences"><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><div class="literallayout"><p>one-or-more((1,2,3,4,5))<br>
+</p></div><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>
+ for (Iterator iter = rs.iterator(); iter.hasNext();) {</p><div class="literallayout"><p> Object item = iter.next();<br>
+ int n = ((XSInteger)item).intvalue();<br>
+ print(n + " ");<br>
+</p></div><p>}
+ println("");
+ </p><p>in order to get the result of ‘1 2 3 4 5’</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
index e8734e0..059d327 100644
--- 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
@@ -1,4 +1,2 @@
-<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 ‘4.0’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Deep-Equal, Aggregate Functions, and Functions that Generate Sequences</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Deep-Equal, Aggregate Functions, and Functions that Generate Sequences"><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><div class="literallayout"><p>avg((3,4,5))<br>
+</p></div><p> </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>double avg = ((XSDouble)rs.first()).doublevalue(); println(avg); </p><p>in order to get the result of ‘4.0’</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
index 1b243d6..d395098 100644
--- 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
@@ -1,2 +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 ‘11’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Context Functions</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Context Functions"><div class="titlepage"><div><div><h3 class="title"><a name="Context_Functions"></a>Context Functions</h3></div></div></div><div class="literallayout"><p>(10 to 20)[position() = 2]<br>
+</p></div><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>int pos = ((XSInteger)rs.first()).intvalue(); println(pos);</p><p>in order to get the result of ‘11’</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
index 789f613..9c471b4 100644
--- 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
@@ -1,6 +1,5 @@
-<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 ‘7’</p></div></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>How to use XPath 2.0 operators with PsychoPath</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="up" href="index.html" title="usermanual"><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" title="How to use XPath 2.0 operators with PsychoPath"><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" title="Operators on Numeric Values"><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><div class="literallayout"><p>xs:integer(4) + xs:integer(3)<br>
+</p></div><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>Integer n = ((XSInteger)rs.first()).integervalue(); println(n);</p><p>in order to get the result of ‘7’</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
index c2d40a5..845b269 100644
--- 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
@@ -1,2 +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 ‘false’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Comparison of Numeric Values</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Comparison of Numeric Values"><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><div class="literallayout"><p>xs:decimal(3.3) = xs:decimal(6.6)<br>
+</p></div><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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</p><p>in order to get the result of ‘false’</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
index 8f02b1e..d6ede41 100644
--- 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
@@ -1,2 +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(’true’) gt xs:boolean(’false’)</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 ‘true’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Operators on Boolean Values</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Operators on Boolean Values"><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><div class="literallayout"><p>xs:boolean(’true’) gt xs:boolean(’false’)<br>
+</p></div><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>boolean n = ((XSBoolean)rs.first()).value(); println(n); </p><p>in order to get the result of ‘true’</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
index 5ecc9c5..bdc75cc 100644
--- 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
@@ -1,3 +1,2 @@
-<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 ‘true’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Comparisons of Duration, Date and Time Values</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Comparisons of Duration, Date and Time Values"><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><div class="literallayout"><p>xs:time("23:00:00+06:00") lt xs:time("12:00:00-06:00")<br>
+</p></div><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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</p><p>in order to get the result of ‘true’</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
index 611b868..64fc1bd 100644
--- 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
@@ -1,4 +1,2 @@
-<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 ‘PT4H33M’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Arithmetic Functions on Durations</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Arithmetic Functions on Durations"><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><div class="literallayout"><p>multiply-dayTimeDuration(xdt:dayTimeDuration("PT2H10M"), 2.1)<br>
+</p></div><p> </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>String n = ((XDTDayTimeDuration)rs.first()).stringvalue(); println(n);</p><p>which returns a xdt:dayTimeDuration value corresponding to 4 hours and 33 minutes ‘PT4H33M’</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
index 41722ea..3680045 100644
--- 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
@@ -1,4 +1,2 @@
-<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 ‘2001-12-30T11:12:00’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Arithmetic Functions Dates and Times</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Arithmetic Functions Dates and Times"><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><div class="literallayout"><p>add-yearMonthDuration-to-dateTime( xs:dateTime("2000-10-30T11:12:00"), xdt:yearMonthDuration("P1Y2M"))<br>
+</p></div><p> </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>String n = ((XSDateTime)rs.first()).stringvalue(); println(n);</p><p>which returns an xs:dateTime value corresponding to the lexical representation ‘2001-12-30T11:12:00’</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
index 0d7d838..884e5ff 100644
--- 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
@@ -1,3 +1,2 @@
-<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(’ao’) eq xs:QName(’ao’)</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 ‘true’</p></div></body></html>
\ No newline at end of file
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Operators Related to QNames And Nodes</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Operators Related to QNames And Nodes"><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><div class="literallayout"><p>xs:QName(’ao’) eq xs:QName(’ao’)<br>
+</p></div><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>boolean n = ((XSBoolean)rs.first()).value(); println(n);</p><p>which returns the result of ‘true’</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
index 9b4a308..67a6732 100644
--- 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
@@ -1,9 +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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Union, Intersection and Except</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Union, Intersection and Except"><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><div class="literallayout"><p>union($seq2, $seq3)<br>
+</p></div><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>
+ for (Iterator iter = rs.iterator(); iter.hasNext();) {</p><div class="literallayout"><p>Object item = iter.next();<br>
+String n = ((XSString)item).stringvalue();<br>
+print(n + ", ");<br>
+</p></div><p>}
+ println("");
+ </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
index d822a00..4ed7fb6 100644
--- 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
@@ -1,3 +1,4 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Operators that Generate Sequences</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><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" title="Operators that Generate Sequences"><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><div class="literallayout"><p>(1 to 3)<br>
+</p></div><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>int n = (XSInteger)rs.first()).stringvalue(); println(n);</p><p>which returns the sequence consisting of 1, 2, 3. </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p></p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p></p><div class="itemizedlist"><ul class="itemizedlist" type="square"><li class="listitem"><p>-</p></li></ul></div></li></ul></div></li></ul></div><p>
+ <a class="ulink" href="/wiki/Category:Draft_Documentation" target="_top">Category:Draft_Documentation</a>
+ </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
index 3a1c190..012e55e 100644
--- 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
@@ -1,3 +1 @@
-<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
+<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>usermanual</title><link href="book.css" type="text/css" rel="stylesheet"><link href="book.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="usermanual"><link rel="next" href="ch01.html" title="Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="usermanual"><div class="titlepage"><div><div><h1 class="title"><a name="N10001"></a>usermanual</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">How to feed Psychopath XPath expressions</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/pom.xml b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/pom.xml
index 48cd7d4..543465b 100644
--- a/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/pom.xml
+++ b/docs/org.eclipse.wst.xml.xpath2.processor.doc.user/pom.xml
@@ -11,7 +11,7 @@
</parent>
<artifactId>org.eclipse.wst.xml.xpath2.processor.doc.user</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<name>PsychoPath XPath 2.0 Processor: User Documentation</name>
</project>
\ No newline at end of file