Author: buildbot
Date: Mon Dec 31 10:06:03 2012
New Revision: 844375
Log:
Staging update by buildbot for ode
Modified:
websites/staging/ode/trunk/content/ (props changed)
websites/staging/ode/trunk/content/extensions/activity-failure-and-recovery.html
websites/staging/ode/trunk/content/extensions/implicit-correlations.html
websites/staging/ode/trunk/content/extensions/xpath-extensions.html
Propchange: websites/staging/ode/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Dec 31 10:06:03 2012
@@ -1 +1 @@
-1427061
+1427065
Modified:
websites/staging/ode/trunk/content/extensions/activity-failure-and-recovery.html
==============================================================================
---
websites/staging/ode/trunk/content/extensions/activity-failure-and-recovery.html
(original)
+++
websites/staging/ode/trunk/content/extensions/activity-failure-and-recovery.html
Mon Dec 31 10:06:03 2012
@@ -28,7 +28,7 @@
<li class="">
<a href="/getting-ode.html">Getting ODE</a>
</li>
- <li class=" dropdown">
+ <li class="active dropdown">
<a href="/user-guide.html" class="dropdown-toggle"
data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/userguide/">User Guide</a></li>
@@ -83,7 +83,8 @@
<div class="row">
<div class="span12">
- <p>There are several types of error conditions. In this document we
introduce a class of error condition called <em>failures</em>, distinct from
<em>faults</em>, and describe how failures are caught and handled by the
process engine.</p>
+ <h2 id="overview">Overview</h2>
+<p>There are several types of error conditions. In this document we introduce
a class of error condition called <em>failures</em>, distinct from
<em>faults</em>, and describe how failures are caught and handled by the
process engine.</p>
<p>A service returns a fault in response to a request it cannot process. A
process may also raise a fault internally when it encounters a terminal error
condition, e.g. a faulty expression or false join condition. In addition,
processes may raise faults in order to terminate normal processing.</p>
<p>In contrast, failures are non-terminal error conditions that do not affect
the normal flow of the process. We keep the process definition simple and
straightforward by delegating failure handling to the process engine and
administrator.</p>
<p>For example, when the process is unable to perform DNS resolution to
determine the service endpoint, it generates a failure. An administrator can
fix the DNS server and tell the process engine to retry the activity. Had the
DNS error been reported as a fault, the process would either terminate or
require complex fault handling and recovery logic to proceed past this point of
failure.</p>
Modified:
websites/staging/ode/trunk/content/extensions/implicit-correlations.html
==============================================================================
--- websites/staging/ode/trunk/content/extensions/implicit-correlations.html
(original)
+++ websites/staging/ode/trunk/content/extensions/implicit-correlations.html
Mon Dec 31 10:06:03 2012
@@ -28,7 +28,7 @@
<li class="">
<a href="/getting-ode.html">Getting ODE</a>
</li>
- <li class=" dropdown">
+ <li class="active dropdown">
<a href="/user-guide.html" class="dropdown-toggle"
data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/userguide/">User Guide</a></li>
Modified: websites/staging/ode/trunk/content/extensions/xpath-extensions.html
==============================================================================
--- websites/staging/ode/trunk/content/extensions/xpath-extensions.html
(original)
+++ websites/staging/ode/trunk/content/extensions/xpath-extensions.html Mon Dec
31 10:06:03 2012
@@ -28,7 +28,7 @@
<li class="">
<a href="/getting-ode.html">Getting ODE</a>
</li>
- <li class=" dropdown">
+ <li class="active dropdown">
<a href="/user-guide.html" class="dropdown-toggle"
data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/userguide/">User Guide</a></li>
@@ -83,7 +83,8 @@
<div class="row">
<div class="span12">
- <p>Apache ODE extends the default XPath coverage provided by the <a
href="/ws-bpel-20.html">WS-BPEL</a> specification mostly by adding support for
<a href="http://www.w3.org/TR/xpath20/">XPath 2.0</a> and by offering a few
utility extension functions to make some assignments easier.</p>
+ <h2 id="overview">Overview</h2>
+<p>Apache ODE extends the default XPath coverage provided by the <a
href="/ws-bpel-20.html">WS-BPEL</a> specification mostly by adding support for
<a href="http://www.w3.org/TR/xpath20/">XPath 2.0</a> and by offering a few
utility extension functions to make some assignments easier.</p>
<p><a name="XPathExtensions-XPath2.0"></a></p>
<h3 id="xpath-20">XPath 2.0</h3>
<p>To use XPath 2.0 in your processes just use the following
<em>queryLanguage</em> and <em>expressionLanguage</em> attributes:</p>
@@ -99,7 +100,7 @@
<p><a name="XPathExtensions-insert-before"></a></p>
<h4 id="insert-before">insert-before</h4>
<p>This is a function that allows you to insert one or more siblings
(specified by the $siblings argument in the signature below) before the first
node of children (specified by the $children argument), all of whose nodes must
have the same parent (specified by the $context argument).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Insert Before</B></DIV><DIV
class="codeContent panelContent">
+<p><span class="caption">Insert Before</span>
ode:insert-before($context as node(), $children as node()<em>, $siblings
as node()</em>) as node() </p>
<p>By design, this function is non-updating in that it preserves the identity
and properties of its arguments (i.e., they don't try to change the XML
in-place). Instead, a modified copy of the context node is created, essentially
giving it a new identity. Further, it returns a single R-value item, as opposed
to a sequence. The example below illustrates how it may be used in the context
of an assign activity:</p>
<div class="codehilite"><pre><span class="nt"><assign></span>
@@ -112,228 +113,256 @@
<p>For those familiar with the <a
href="http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/">XQuery Update
Facility</a>, the above example is semantically equivalent to the expression
shown below:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>XQuery Equivalent</B></DIV><DIV
class="codeContent panelContent">
- insert nodes $siblings before $parent/child::node[position()=last()] </p>
-<p><a name="XPathExtensions-insert-after"></a></p>
-<h4 id="insert-after">insert-after</h4>
-<p>This is a function that allows you to insert one or more siblings
(specified by the $siblings argument in the signature below) after the last
node of children (specified by the $children argument), all of whose nodes must
have the same parent (specified by the $context argument).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Insert After</B></DIV><DIV
class="codeContent panelContent">
- ode:insert-after($context as node(), $children as node()<em>, $siblings as
node()</em>) as node() </p>
-<p>By design, this function is non-updating in that it preserves the identity
and properties of its arguments (i.e., they don't try to change the XML
in-place). Instead, a modified copy of the context node is created, essentially
giving it a new identity. Further, it returns a single R-value item, as opposed
to a sequence. The example below illustrates how it may be used in the context
of an assign activity:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><copy></span>
- <span class="nt"><from></span>ode:insert-after(<span
class="p">$</span><span class="nv">parent</span>, <span class="p">$</span><span
class="nv">parent</span>/child::node(), <span class="p">$</span><span
class="nv">siblings</span>)<span class="nt"></from></span>
- <span class="nt"><to</span> <span class="na">variable=</span><span
class="s">"parent"</span><span class="nt">/></span>
- <span class="nt"></copy></span>
-<span class="nt"></assign></span>
-</pre></div>
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>XQuery Equivalent</b></div><div
class="codeContent panelContent">
+ insert nodes $siblings before $parent/child::node[position()=last()]
+<a name="XPathExtensions-insert-after"></a>
+#### insert-after
-<p>For those familiar with the <a
href="http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/">XQuery Update
Facility</a>, the above example is semantically equivalent to the expression
shown below:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>XQuery Equivalent</B></DIV><DIV
class="codeContent panelContent">
- insert nodes $siblings after $parent/child::node()</p>
-<p><a name="XPathExtensions-insert-as-first-into"></a></p>
-<h4 id="insert-as-first-into">insert-as-first-into</h4>
-<p>This is a function that allows you to insert the node(s) (specified by the
$children argument in the signature below) as the first child(ren) of a given
context node (specified by the $context argument).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Insert As First Into</B></DIV><DIV
class="codeContent panelContent">
- ode:insert-as-first-into($context as node(), $children as node()*) as
node() </p>
-<p>By design, this function is non-updating in that it preserves the identity
and properties of its arguments (i.e., they don't try to change the XML
in-place). Instead, a modified copy of the context node is created, essentially
giving it a new identity. Further, it returns a single R-value item, as opposed
to a sequence. The example below illustrates how it may be used in the context
of an assign activity:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><copy></span>
- <span class="nt"><from></span>ode:insert-as-first-into(<span
class="p">$</span><span class="nv">parent</span>, <span class="p">$</span><span
class="nv">children</span>)<span class="nt"></from></span>
- <span class="nt"><to</span> <span class="na">variable=</span><span
class="s">"parent"</span><span class="nt">/></span>
- <span class="nt"></copy></span>
-<span class="nt"></assign></span>
-</pre></div>
+This is a function that allows you to insert one or more siblings (specified
by the $siblings argument in the signature below) after the last node of
children (specified by the $children argument), all of whose nodes must have
the same parent (specified by the $context argument).
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Insert After</b></div><div
class="codeContent panelContent">
+ ode:insert-after($context as node(), $children as node()*, $siblings as
node()*) as node()
-<p>For those familiar with the <a
href="http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/">XQuery Update
Facility</a>, the above example is semantically equivalent to the expression
shown below:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>XQuery Equivalent</B></DIV><DIV
class="codeContent panelContent">
- insert nodes $children as first into $parent </p>
-<p><a name="XPathExtensions-insert-as-last-into"></a></p>
-<h4 id="insert-as-last-into">insert-as-last-into</h4>
-<p>This is a function that allows you to insert the node(s) (specified by the
$children argument in the signature below) as the last child(ren) of a given
context node (specified by the $context argument).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Insert As Last Into</B></DIV><DIV
class="codeContent panelContent">
- ode:insert-as-last-into($context as node(), $children as node()*) as
node() </p>
-<p>By design, this function is non-updating in that it preserves the identity
and properties of its arguments (i.e., they don't try to change the XML
in-place). Instead, a modified copy of the context node is created, essentially
giving it a new identity. Further, it returns a single R-value item, as opposed
to a sequence. The example below illustrates how it may be used in the context
of an assign activity:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><copy></span>
- <span class="nt"><from></span>ode:insert-as-last-into(<span
class="p">$</span><span class="nv">parent</span>, <span class="p">$</span><span
class="nv">children</span>)<span class="nt"></from></span>
- <span class="nt"><to</span> <span class="na">variable=</span><span
class="s">"parent"</span><span class="nt">/></span>
- <span class="nt"></copy></span>
-<span class="nt"></assign></span>
-</pre></div>
+By design, this function is non-updating in that it preserves the identity and
properties of its arguments (i.e., they don't try to change the XML in-place).
Instead, a modified copy of the context node is created, essentially giving it
a new identity. Further, it returns a single R-value item, as opposed to a
sequence. The example below illustrates how it may be used in the context of an
assign activity:
+ <assign>
+ <copy>
+ <from>ode:insert-after($parent, $parent/child::node(),
$siblings)</from>
+ <to variable="parent"/>
+ </copy>
+ </assign>
-<p>For those familiar with the <a
href="http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/">XQuery Update
Facility</a>, the above example is semantically equivalent to the expression
shown below:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>XQuery Equivalent</B></DIV><DIV
class="codeContent panelContent">
- insert nodes $children as last into $parent </p>
-<p><a name="XPathExtensions-delete"></a></p>
-<h4 id="delete">delete</h4>
-<p>This is a function that allows you to delete one or more node(s) (specified
by the $children argument in the signature below) from its parent (specified by
the $context argument).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Delete</B></DIV><DIV class="codeContent
panelContent">
- ode:delete($context as node(), $children as node()*) as node() </p>
-<p>By design, this function is non-updating in that it preserves the identity
and properties of its arguments (i.e., they don't try to change the XML
in-place). Instead, a modified copy of the context node is created, essentially
giving it a new identity. Further, it returns a single R-value item, as opposed
to a sequence. The example below illustrates how it may be used in the context
of an assign activity:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><copy></span>
- <span class="nt"><from></span>ode:delete(<span
class="p">$</span><span class="nv">parent</span>, <span class="p">$</span><span
class="nv">children</span>)<span class="nt"></from></span>
- <span class="nt"><to</span> <span class="na">variable=</span><span
class="s">"parent"</span><span class="nt">/></span>
- <span class="nt"></copy></span>
-<span class="nt"></assign></span>
-</pre></div>
+For those familiar with the [XQuery Update
Facility](http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/), the above
example is semantically equivalent to the expression shown below:
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>XQuery Equivalent</b></div><div
class="codeContent panelContent">
+ insert nodes $siblings after $parent/child::node()
-<p>For those familiar with the <a
href="http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/">XQuery Update
Facility</a>, the above example is semantically equivalent to the expression
shown below:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>XQuery Equivalent</B></DIV><DIV
class="codeContent panelContent">
- delete nodes $children </p>
-<p><a name="XPathExtensions-rename"></a></p>
-<h4 id="rename">rename</h4>
-<p>This is a function that allows you to rename the context node (specified by
the $context argument in the signature below) as per the given name (specified
by $item, which is either a QName, Element or String).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Rename</B></DIV><DIV class="codeContent
panelContent">
- ode:rename($context as node(), $name as item()) as node() </p>
-<p>By design, this function is non-updating in that it preserves the identity
and properties of its arguments (i.e., they don't try to change the XML
in-place). Instead, a modified copy of the context node is created, essentially
giving it a new identity. Further, it returns a single R-value item, as opposed
to a sequence. The example below illustrates how it may be used in the context
of an assign activity:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><copy></span>
- <span class="nt"><from></span>ode:rename(<span
class="p">$</span><span class="nv">person</span>,
fn:QName("http://www.example.com/example", "manager"))<span
class="nt"></from></span>
- <span class="nt"><to</span> <span class="na">variable=</span><span
class="s">"person"</span><span class="nt">/></span>
- <span class="nt"></copy></span>
-<span class="nt"></assign></span>
-</pre></div>
+<a name="XPathExtensions-insert-as-first-into"></a>
+#### insert-as-first-into
+This is a function that allows you to insert the node(s) (specified by the
$children argument in the signature below) as the first child(ren) of a given
context node (specified by the $context argument).
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Insert As First Into</b></div><div
class="codeContent panelContent">
+ ode:insert-as-first-into($context as node(), $children as node()*) as
node()
+
+By design, this function is non-updating in that it preserves the identity and
properties of its arguments (i.e., they don't try to change the XML in-place).
Instead, a modified copy of the context node is created, essentially giving it
a new identity. Further, it returns a single R-value item, as opposed to a
sequence. The example below illustrates how it may be used in the context of an
assign activity:
+
+ <assign>
+ <copy>
+ <from>ode:insert-as-first-into($parent, $children)</from>
+ <to variable="parent"/>
+ </copy>
+ </assign>
+
+For those familiar with the [XQuery Update
Facility](http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/), the above
example is semantically equivalent to the expression shown below:
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>XQuery Equivalent</b></div><div
class="codeContent panelContent">
+ insert nodes $children as first into $parent
+
+<a name="XPathExtensions-insert-as-last-into"></a>
+#### insert-as-last-into
+
+This is a function that allows you to insert the node(s) (specified by the
$children argument in the signature below) as the last child(ren) of a given
context node (specified by the $context argument).
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Insert As Last Into</b></div><div
class="codeContent panelContent">
+ ode:insert-as-last-into($context as node(), $children as node()*) as
node()
+
+By design, this function is non-updating in that it preserves the identity and
properties of its arguments (i.e., they don't try to change the XML in-place).
Instead, a modified copy of the context node is created, essentially giving it
a new identity. Further, it returns a single R-value item, as opposed to a
sequence. The example below illustrates how it may be used in the context of an
assign activity:
+
+ <assign>
+ <copy>
+ <from>ode:insert-as-last-into($parent, $children)</from>
+ <to variable="parent"/>
+ </copy>
+ </assign>
+
+For those familiar with the [XQuery Update
Facility](http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/), the above
example is semantically equivalent to the expression shown below:
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>XQuery Equivalent</b></div><div
class="codeContent panelContent">
+ insert nodes $children as last into $parent
+
+<a name="XPathExtensions-delete"></a>
+#### delete
+
+This is a function that allows you to delete one or more node(s) (specified by
the $children argument in the signature below) from its parent (specified by
the $context argument).
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Delete</b></div><div class="codeContent
panelContent">
+ ode:delete($context as node(), $children as node()*) as node()
+
+By design, this function is non-updating in that it preserves the identity and
properties of its arguments (i.e., they don't try to change the XML in-place).
Instead, a modified copy of the context node is created, essentially giving it
a new identity. Further, it returns a single R-value item, as opposed to a
sequence. The example below illustrates how it may be used in the context of an
assign activity:
+
+ <assign>
+ <copy>
+ <from>ode:delete($parent, $children)</from>
+ <to variable="parent"/>
+ </copy>
+ </assign>
+
+For those familiar with the [XQuery Update
Facility](http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/), the above
example is semantically equivalent to the expression shown below:
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>XQuery Equivalent</b></div><div
class="codeContent panelContent">
+ delete nodes $children
+
+<a name="XPathExtensions-rename"></a>
+#### rename
+
+This is a function that allows you to rename the context node (specified by
the $context argument in the signature below) as per the given name (specified
by $item, which is either a QName, Element or String).
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Rename</b></div><div class="codeContent
panelContent">
+ ode:rename($context as node(), $name as item()) as node()
+
+By design, this function is non-updating in that it preserves the identity and
properties of its arguments (i.e., they don't try to change the XML in-place).
Instead, a modified copy of the context node is created, essentially giving it
a new identity. Further, it returns a single R-value item, as opposed to a
sequence. The example below illustrates how it may be used in the context of an
assign activity:
+
+ <assign>
+ <copy>
+ <from>ode:rename($person, fn:QName("http://www.example.com/example",
"manager"))</from>
+ <to variable="person"/>
+ </copy>
+ </assign>
+
+For those familiar with the [XQuery Update
Facility](http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/), the above
example is semantically equivalent to the expression shown below:
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>XQuery Equivalent</b></div><div
class="codeContent panelContent">
+ rename $person as fn:QName("http://www.example.com/example", "manager")
-<p>For those familiar with the <a
href="http://www.w3.org/TR/2008/CR-xquery-update-10-20080801/">XQuery Update
Facility</a>, the above example is semantically equivalent to the expression
shown below:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>XQuery Equivalent</B></DIV><DIV
class="codeContent panelContent">
- rename $person as fn:QName("http://www.example.com/example", "manager")</p>
<div class="alert alert-warning"><h4 class="alert-heading">Assign
Assumptions</h4>
The WS-BPEL requires that "for a copy operation to be valid, the data
referred to by the from-spec and the to-spec MUST be of compatible types."
Hence, make sure that when you rename an element, the new name refers to a type
that is compatible with the target variable. In other words, it should be of a
substitutable (essentially stronger) complex type.
</div>
-<p><a name="XPathExtensions-split-to-elements"></a></p>
-<h4 id="split-to-elements">split-to-elements</h4>
-<p>It's impossible to split a given string into a sequence of elements using
assignments. The only possible alternative is XSL which is a lot of complexity
for a very simple usage pattern. The <em>ode:splitToElements</em> function
splits a given string (that can be a variable reference) into several elements
by using a specific separators. Here is an example:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><from></span>ode:split-to-elements(<span
class="p">$</span><span class="nv">authorizeMessage</span><span
class="p">.</span><span class="nv">credential</span>/userList, ',',
'user')<span class="nt"></from></span>
- <span class="nt"><to></span><span class="p">$</span><span
class="nv">authorizedUsers</span><span class="nt"></to></span>
-<span class="nt"></assign></span>
-</pre></div>
+<a name="XPathExtensions-split-to-elements"></a>
+#### split-to-elements
+It's impossible to split a given string into a sequence of elements using
assignments. The only possible alternative is XSL which is a lot of complexity
for a very simple usage pattern. The _ode:splitToElements_ function splits a
given string (that can be a variable reference) into several elements by using
a specific separators. Here is an example:
-<p>If the source element contains a list like "joe, paul, fred" the target
variable will be assigned the sequence of elements:</p>
-<div class="codehilite"><pre><span class="nt"><user></span>joe<span
class="nt"></user></span>
-<span class="nt"><user></span>paul<span class="nt"></user></span>
-<span class="nt"><user></span>fred<span class="nt"></user></span>
-</pre></div>
+ <assign>
+ <from>ode:split-to-elements($authorizeMessage.credential/userList, ',',
'user')</from>
+ <to>$authorizedUsers</to>
+ </assign>
+If the source element contains a list like "joe, paul, fred" the target
variable will be assigned the sequence of elements:
-<p>Alternatively this function can take a fourth parameter that would be the
namespace of the elements used to wrap the split strings:</p>
-<div class="codehilite"><pre><span
class="err">ode:split-to-elements(stringToSplit,</span> <span
class="err">separator,</span> <span class="err">targetElement,</span> <span
class="err">targetNamespace)</span>
-</pre></div>
+ <user>joe</user>
+ <user>paul</user>
+ <user>fred</user>
+Alternatively this function can take a fourth parameter that would be the
namespace of the elements used to wrap the split strings:
+
+ ode:split-to-elements(stringToSplit, separator, targetElement,
targetNamespace)
<div class="alert alert-info"><h4 class="alert-heading">Deprecated Name</h4>
This function was formerly known as splitToElements, which may still be
used, but is deprecated.
</div>
-<p><a name="XPathExtensions-combine-url(base,relative)"></a></p>
-<h4 id="combine-urlbase-relative">combine-url(base, relative)</h4>
-<p>Takes the relative URL and combines it with the base URL to return a new
absolute URL. If the relative parameter is an absolute URL, returns it instead.
-This function is similar to <a
href="http://www.w3.org/TR/2004/WD-xpath-functions-20040723/#func-resolve-uri">func-resolve-uri</a>.
However the latter is available in XPath 2.0 only.</p>
-<p><a
name="XPathExtensions-compose-url(template,\[name,value\](name,value\.html)*)"></a></p>
-<h4 id="compose-urltemplate-91name-value93">compose-url(template, [name,
value]*)</h4>
-<p><a name="XPathExtensions-compose-url(template,pairs)"></a></p>
-<h4 id="compose-urltemplate-pairs">compose-url(template, pairs)</h4>
-<p>Expands the template URL by substituting place holders in the template, for
example, ('/order/{id}', 'id', 5) returns '/order/5'. Substitute values are
either name/value pairs passed as separate parameters, or a node-set returning
elements with name mapping to value. The functions applies proper encoding to
the mapped values. Undefined variables are replaced with an empty string. This
function returns an URL.
-See also the <a
href="http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.html">URI
Template spec</a>.</p>
-<p><a
name="XPathExtensions-expand-template(template,\[name,value\](name,value\.html)*)"></a></p>
-<h4 id="expand-templatetemplate-91name-value93">expand-template(template,
[name, value]*)</h4>
-<p><a name="XPathExtensions-expand-template(template,pairs)"></a></p>
-<h4 id="expand-templatetemplate-pairs">expand-template(template, pairs)</h4>
-<p>Similar to <code>composeURL</code> but undefined variables are
<em><em>not</em></em> replaced with an empty string. They are ignored. As a
result with incomplete mapping may return a new URL template.</p>
-<p><a name="XPathExtensions-dom-to-string"></a></p>
-<h4 id="dom-to-string">dom-to-string</h4>
-<p>This is a function that serializes a DOM node (specified by the $node
argument in the signature below) into a string.</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Dom To String</B></DIV><DIV
class="codeContent panelContent">
- ode:dom-to-string($node as node()) as xs:string</p>
-<p><a name="XPathExtensions-process-property"></a></p>
-<h4 id="process-property">process-property</h4>
-<p>This is a function that allows you to retrieve the value of a property,
defined in deploy.xml for the current process, with the given name (specified
by the $name argument in the signature below, which is either a QName, String,
Element or Single-Valued List).</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>Process Property</B></DIV><DIV
class="codeContent panelContent">
- ode:process-property($name as item()) as node() </p>
-<p>Basically, this method gives you a way to reference properties, defined in
deploy.xml for a given process, directly in the BPEL code for that process. The
$name argument refers to any schema item that resolves to a QName. The return
value is the child node of the property element with the given name.</p>
-<p>The example below illustrates how it may be used in the context of an
assign activity:</p>
-<div class="codehilite"><pre><span class="nt"><assign></span>
- <span class="nt"><copy></span>
- <span
class="nt"><from></span>ode:process-property("auctionEpr")<span
class="nt"></from></span>
- <span class="nt"><to</span> <span class="na">partnerLink=</span><span
class="s">"partnerLink"</span><span class="nt">/></span>
- <span class="nt"></copy></span>
-<span class="nt"></assign></span>
-</pre></div>
-
+<a name="XPathExtensions-combine-url(base,relative)"></a>
+#### combine-url(base, relative)
-<p>where, the property called "epr" is defined in the corresponding deploy.xml
as follows:</p>
-<div class="codehilite"><pre><span class="nt"><deploy</span> <span
class="na">xmlns=</span><span
class="s">"http://www.apache.org/ode/schemas/dd/2007/03"</span>
- <span class="na">xmlns:tns=</span><span
class="s">"http://ode/bpel/process"</span><span class="nt">></span>
- <span class="nt"><process</span> <span class="na">name=</span><span
class="s">"tns:negotiate"</span><span class="nt">></span>
- <span class="nt"><property</span> <span class="na">name=</span><span
class="s">"auctionEpr"</span><span class="nt">></span>
- <span class="nt"><sref:service-ref</span>
- <span class="na">xmlns:sref=</span><span class="s">"
http://docs.oasis-open.org/wsbpel/2.0/serviceref"</span>
- <span class="na">xmlns:addr=</span><span
class="s">"http://example.com/addressing"</span>
- <span class="na">xmlns:as=</span><span
class="s">"http://example.com/auction/wsdl/auctionService/"</span><span
class="nt">></span>
- <span class="nt"><addr:EndpointReference></span>
- <span
class="nt"><addr:Address></span>http://example.com/auction/RegistrationService<span
class="ni">&lt;</span>/addr:Address>
- <span
class="nt"><addr:ServiceName></span>as:RegistrationService<span
class="nt"></addr:ServiceName></span>
- <span class="nt"></addr:EndpointReference></span>
- <span class="nt"></sref:service-ref></span>
- <span class="nt"></property></span>...
- <span class="nt"></process></span>
-<span class="nt"></deploy></span>
-</pre></div>
+Takes the relative URL and combines it with the base URL to return a new
absolute URL. If the relative parameter is an absolute URL, returns it instead.
+This function is similar to
[func-resolve-uri](http://www.w3.org/TR/2004/WD-xpath-functions-20040723/#func-resolve-uri).
However the latter is available in XPath 2.0 only.
+<a
name="XPathExtensions-compose-url(template,\[name,value\](name,value\.html)*)"></a>
+#### compose-url(template, \[name, value\]*)
+<a name="XPathExtensions-compose-url(template,pairs)"></a>
+#### compose-url(template, pairs)
+
+Expands the template URL by substituting place holders in the template, for
example, ('/order/\{id\}', 'id', 5) returns '/order/5'. Substitute values are
either name/value pairs passed as separate parameters, or a node-set returning
elements with name mapping to value. The functions applies proper encoding to
the mapped values. Undefined variables are replaced with an empty string. This
function returns an URL.
+See also the [URI Template
spec](http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.html).
+
+<a
name="XPathExtensions-expand-template(template,\[name,value\](name,value\.html)*)"></a>
+#### expand-template(template, \[name, value\]*)
+<a name="XPathExtensions-expand-template(template,pairs)"></a>
+#### expand-template(template, pairs)
+
+Similar to `composeURL` but undefined variables are *_not_* replaced with an
empty string. They are ignored. As a result with incomplete mapping may return
a new URL template.
+
+<a name="XPathExtensions-dom-to-string"></a>
+#### dom-to-string
+
+This is a function that serializes a DOM node (specified by the $node argument
in the signature below) into a string.
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Dom To String</b></div><div
class="codeContent panelContent">
+ ode:dom-to-string($node as node()) as xs:string
+
+<a name="XPathExtensions-process-property"></a>
+#### process-property
+
+This is a function that allows you to retrieve the value of a property,
defined in deploy.xml for the current process, with the given name (specified
by the $name argument in the signature below, which is either a QName, String,
Element or Single-Valued List).
+
+<div class="code panel" style="border-style: solid;border-width: 1px;"><div
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><b>Process Property</b></div><div
class="codeContent panelContent">
+ ode:process-property($name as item()) as node()
+
+Basically, this method gives you a way to reference properties, defined in
deploy.xml for a given process, directly in the BPEL code for that process. The
$name argument refers to any schema item that resolves to a QName. The return
value is the child node of the property element with the given name.
+
+The example below illustrates how it may be used in the context of an assign
activity:
+
+ <assign>
+ <copy>
+ <from>ode:process-property("auctionEpr")</from>
+ <to partnerLink="partnerLink"/>
+ </copy>
+ </assign>
+
+where, the property called "epr" is defined in the corresponding deploy.xml as
follows:
+
+ <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
+ xmlns:tns="http://ode/bpel/process">
+ <process name="tns:negotiate">
+ <property name="auctionEpr">
+ <sref:service-ref
+ xmlns:sref="
http://docs.oasis-open.org/wsbpel/2.0/serviceref"
+ xmlns:addr="http://example.com/addressing"
+ xmlns:as="http://example.com/auction/wsdl/auctionService/">
+ <addr:EndpointReference>
+
<addr:Address>http://example.com/auction/RegistrationService</addr:Address>
+
<addr:ServiceName>as:RegistrationService</addr:ServiceName>
+ </addr:EndpointReference>
+ </sref:service-ref>
+ </property>...
+ </process>
+ </deploy>
<div class="alert alert-info"><h4 class="alert-heading">Release
Information</h4>
This function will be available in the 1.3 or higher version of ODE.
</div>
-<p><a name="XPathExtensions-PredefinedProcessProperties"></a></p>
-<h4 id="predefined-process-properties">Predefined Process Properties</h4>
-<p><a name="XPathExtensions-Localhostinfo(nameandIPaddress)"></a></p>
-<h5 id="localhost-info-name-and-ip-address">Localhost info (name and IP
address)</h5>
-<div class="codehilite"><pre><span class="nt"><bpws:assign></span>
- <span class="nt"><bpws:copy></span>
- <span
class="nt"><bpws:from></span>ode:process-property('ode.localhost.name')<span
class="nt"></bpws:from></span>
- <span class="nt"><bpws:to></span><span class="p">$</span><span
class="nv">output</span><span class="p">.</span><span
class="nv">payload</span><span class="nt"></bpws:to></span>
- <span class="nt"></bpws:copy></span>
-<span class="nt"></bpws:assign></span>
-
-<span class="nt"><bpws:assign></span>
- <span class="nt"><bpws:copy></span>
- <span
class="nt"><bpws:from></span>ode:process-property('ode.localhost.address')<span
class="nt"></bpws:from></span>
- <span class="nt"><bpws:to></span><span class="p">$</span><span
class="nv">output</span><span class="p">.</span><span
class="nv">payload</span><span class="nt"></bpws:to></span>
- <span class="nt"></bpws:copy></span>
-<span class="nt"></bpws:assign></span>
-</pre></div>
+<a name="XPathExtensions-PredefinedProcessProperties"></a>
+#### Predefined Process Properties
+<a name="XPathExtensions-Localhostinfo(nameandIPaddress)"></a>
+##### Localhost info (name and IP address)
-<p><a name="XPathExtensions-ExtensionVariables"></a></p>
-<h3 id="extension-variables">Extension Variables</h3>
-<p><a name="XPathExtensions-InstanceId"></a></p>
-<h4 id="instance-id">Instance Id</h4>
-<div class="codehilite"><pre><span class="nv">$ode:pid</span>
-</pre></div>
+ <bpws:assign>
+ <bpws:copy>
+ <bpws:from>ode:process-property('ode.localhost.name')</bpws:from>
+ <bpws:to>$output.payload</bpws:to>
+ </bpws:copy>
+ </bpws:assign>
+ <bpws:assign>
+ <bpws:copy>
+ <bpws:from>ode:process-property('ode.localhost.address')</bpws:from>
+ <bpws:to>$output.payload</bpws:to>
+ </bpws:copy>
+ </bpws:assign>
-<p><a name="XPathExtensions-ProcessQName"></a></p>
-<h4 id="process-qname">Process QName</h4>
-<div class="codehilite"><pre><span class="nv">$ode:processQName</span>
-</pre></div>
+<a name="XPathExtensions-ExtensionVariables"></a>
+### Extension Variables
+<a name="XPathExtensions-InstanceId"></a>
+#### Instance Id
-<p><a name="XPathExtensions-CurrentEventDateTime"></a></p>
-<h4 id="currenteventdatetime">CurrentEventDateTime</h4>
-<p>This is equivalent to current-dateTime() XPath function, which works with
instance replayer. </p>
-<div class="codehilite"><pre><span class="nv">$ode:currentEventDateTime</span>
-</pre></div>
+ $ode:pid
+
+<a name="XPathExtensions-ProcessQName"></a>
+#### Process QName
+
+ $ode:processQName
+
+<a name="XPathExtensions-CurrentEventDateTime"></a>
+#### CurrentEventDateTime
+This is equivalent to current-dateTime() XPath function, which works with
instance replayer.
+ $ode:currentEventDateTime
<div class="alert alert-info"><h4 class="alert-heading">Release
Information</h4>
1.3.4 or higher