Author: buildbot
Date: Mon Dec 31 10:22:30 2012
New Revision: 844380
Log:
Staging update by buildbot for ode
Modified:
websites/staging/ode/trunk/content/ (props changed)
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:22:30 2012
@@ -1 +1 @@
-1427068
+1427069
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:22:30 2012
@@ -117,256 +117,280 @@
<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>
-<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()]
+<div class="caption">XQuery Equivalent</div>
-<a name="XPathExtensions-insert-after"></a>
-#### insert-after
+<div class="codehilite"><pre>insert nodes $siblings before
$parent/child::node[position()=last()]
+</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><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>
+<div class="caption">Insert After</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:
+<div class="codehilite"><pre>ode:insert-after($context as node(), $children as
node()*, $siblings as node()*) as node()
+</pre></div>
- <assign>
- <copy>
- <from>ode:insert-after($parent, $parent/child::node(),
$siblings)</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:
+<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 after $parent/child::node()
-<a name="XPathExtensions-insert-as-first-into"></a>
-#### insert-as-first-into
+<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>
+<div class="caption">XQuery Equivalent</div>
-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="codehilite"><pre>insert nodes $siblings after $parent/child::node()
+</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>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:
+<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>
+<div class="caption">Insert As First Into</div>
- <assign>
- <copy>
- <from>ode:insert-as-first-into($parent, $children)</from>
- <to variable="parent"/>
- </copy>
- </assign>
+<div class="codehilite"><pre>ode:insert-as-first-into($context as node(),
$children as node()*) as node()
+</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 $children as first into $parent
+<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>
-<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).
+<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>
+<div class="caption">XQuery Equivalent</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>Insert As Last Into</b></div><div
class="codeContent panelContent">
- ode:insert-as-last-into($context as node(), $children as node()*) as
node()
+<div class="codehilite"><pre>insert nodes $children as first into $parent
+</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-as-last-into($parent, $children)</from>
- <to variable="parent"/>
- </copy>
- </assign>
+<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>
+<div class="caption">Insert As Last Into</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="codehilite"><pre>ode:insert-as-last-into($context as node(),
$children as node()*) as node()
+</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 $children as last into $parent
-<a name="XPathExtensions-delete"></a>
-#### delete
+<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>
-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()
+<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>
+<div class="caption">XQuery Equivalent</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:
+<div class="codehilite"><pre>insert nodes $children as last into $parent
+</pre></div>
- <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:
+<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>
+<div class="caption">Delete</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">
- delete nodes $children
+<div class="codehilite"><pre>ode:delete($context as node(), $children as
node()*) as node()
+</pre></div>
-<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).
+<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>
-<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:
+<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>
+<div class="caption">XQuery Equivalent</div>
- <assign>
- <copy>
- <from>ode:rename($person, fn:QName("http://www.example.com/example",
"manager"))</from>
- <to variable="person"/>
- </copy>
- </assign>
+<div class="codehilite"><pre>delete nodes $children
+</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">
- rename $person as fn:QName("http://www.example.com/example", "manager")
+<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>
+<div class="caption">Rename</div>
+
+<div class="codehilite"><pre>ode:rename($context as node(), $name as item())
as node()
+</pre></div>
-<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>
-<a name="XPathExtensions-split-to-elements"></a>
-#### split-to-elements
+<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>
-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:
- <assign>
- <from>ode:split-to-elements($authorizeMessage.credential/userList, ',',
'user')</from>
- <to>$authorizedUsers</to>
- </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>
+<div class="caption">XQuery Equivalent</div>
-If the source element contains a list like "joe, paul, fred" the target
variable will be assigned the sequence of elements:
+<div class="codehilite"><pre>rename $person as
fn:QName("http://www.example.com/example", "manager")
+</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:
+<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>
+
+
+<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>
+
+
+<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>ode:split-to-elements(stringToSplit, separator,
targetElement, targetNamespace)
+</pre></div>
- 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>
-<a name="XPathExtensions-combine-url(base,relative)"></a>
-#### combine-url(base, relative)
-
-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.
+<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>
+<div class="caption">Dom To String</div>
+
+<div class="codehilite"><pre>ode:dom-to-string($node as node()) as xs:string
+</pre></div>
+
+
+<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>
+<div class="caption">Process Property</div>
+
+<div class="codehilite"><pre>ode:process-property($name as item()) as node()
+</pre></div>
+
+
+<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>
+
+
+<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>
-<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>
-<a name="XPathExtensions-PredefinedProcessProperties"></a>
-#### Predefined Process Properties
-
-<a name="XPathExtensions-Localhostinfo(nameandIPaddress)"></a>
-##### Localhost info (name and IP address)
-
- <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>
-
-<a name="XPathExtensions-ExtensionVariables"></a>
-### Extension Variables
-
-<a name="XPathExtensions-InstanceId"></a>
-#### Instance Id
-
- $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.
+<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>
+
+
+<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>$ode:pid
+</pre></div>
+
+
+<p><a name="XPathExtensions-ProcessQName"></a></p>
+<h4 id="process-qname">Process QName</h4>
+<div class="codehilite"><pre>$ode:processQName
+</pre></div>
+
+
+<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>$ode:currentEventDateTime
+</pre></div>
- $ode:currentEventDateTime
<div class="alert alert-info"><h4 class="alert-heading">Release
Information</h4>
1.3.4 or higher