ToXPathStringlist and XPathNodeID (XmlDoc/XmlNode functions): Difference between revisions
mNo edit summary |
m (edits, tags and links) |
||
Line 1: | Line 1: | ||
{{Template:XmlDoc/XmlNode:ToXPathStringlist and XPathNodeID subtitle}} | {{Template:XmlDoc/XmlNode:ToXPathStringlist and XPathNodeID subtitle}} | ||
<var>ToXPathStringlist</var> and <var>XPathNodeID</var> are synonyms; they return an absolute XPath expression that identifies the node that the argument XPath expression actually selects. In the remainder of this article, you can use <var>ToXPathStringlist</var> and <var>XPathNodeID</var> interchangeably. | |||
<var>ToXPathStringlist</var> and <var>XPathNodeID</var> are synonyms; they return an absolute XPath expression that identifies the | |||
node that the argument XPath expression actually selects. In the remainder of this article, you can use <var>ToXPathStringlist</var> and <var>XPathNodeID</var> interchangeably. | |||
<var>XPathNodeID</var> is designed to provide additional information when sending an error | <var>XPathNodeID</var> is designed to provide additional information when sending an error message to an XML client application, helping the application to identify an invalid node selection in its request XML document. A complex XPath expression might not be finding the node intended, for example. | ||
message to an XML client application, helping the application to identify an | |||
invalid node selection in its request XML document. | |||
A complex XPath expression might not be finding the node intended, for example. | |||
<var>[[ToXPathString (XmlDoc/XmlNode function)|ToXPathString]]</var> is | <var>[[ToXPathString (XmlDoc/XmlNode function)|ToXPathString]]</var> is the same as <var>XPathNodeID</var> except its output is a string instead of a <var>Stringlist</var>. <var>ToXPathString</var> lets <var class="product">[[SirFact|"Sirfact"]]</var>, <var class="product">[[Janus Debugger|"Janus Debugger"]]</var>, and <var class="product">[[Sirius Debugger|"Sirius Debugger"]]</var> users extract XPath information when needed. <var>XPathNodeID</var> does not work in those environments because of its object (<var>Stringlist</var>) output. | ||
the same as <var>XPathNodeID</var> except its output is a string instead of a <var>Stringlist</var>. | |||
<var>ToXPathString</var> lets | |||
[[SirFact]], [[Janus Debugger]], and [[Sirius Debugger]] users extract XPath information when needed. | |||
<var>XPathNodeID</var> does not work in those environments because of its | |||
object (<var>Stringlist</var>) output | |||
==Syntax== | ==Syntax== | ||
Line 25: | Line 12: | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th>%sl</th> | <tr><th>%sl</th> | ||
<td>A <var>Stringlist</var> to contain one or more items that identify the node identified by | <td>A <var>Stringlist</var> to contain one or more items that identify the node identified by <var class="term">selectionXpath</var>.</td></tr> | ||
<tr><th>nr</th> | <tr><th>nr</th> | ||
<td>An <var>XmlDoc</var> or <var>XmlNode</var>, used as the context node for the <var class="term">selectionXpath</var> expression. If an <var>XmlDoc</var>, the Root node is the context node. </td></tr> | <td>An <var>XmlDoc</var> or <var>XmlNode</var>, used as the context node for the <var class="term">selectionXpath</var> expression. If an <var>XmlDoc</var>, the Root node is the context node.</td></tr> | ||
<tr><th>selectionXpath</th> | <tr><th>selectionXpath</th> | ||
<td>A <var>Unicode</var> string that is an XPath expression that selects a node from the method object. Prior to | <td>A <var>Unicode</var> string that is an <var>[[XPath]]</var> expression that selects a node from the method object. Prior to <var class="product">[[Sirius Mods|"Sirius Mods"]]</var> Version 7.6, this argument is an EBCDIC string.</td></tr> | ||
</table> | </table> | ||
==Usage notes== | ==Usage notes== | ||
<ul> | <ul> | ||
<li>If the absolute XPath expression returned by <var>XPathNodeID</var> | <li>If the absolute XPath expression returned by <var>XPathNodeID</var> contains no prefixes, the <var>Stringlist</var> <var class="term">%sl</var> contains only one item: the expression. However, if the expression uses an element or attribute that has one or more non-null namespace URIs, the expression occupies an additional pair of <var>Stringlist</var> items for each such URI (an item for the associated prefix, then an item for the URI). | ||
contains no prefixes, the <var>Stringlist</var> | <p> | ||
contains only one item: the expression. | |||
However, if the expression uses | |||
an element or attribute that has one or more non-null namespace URIs, | |||
the expression | |||
occupies an additional pair of <var>Stringlist</var> items for each such URI | |||
(an item for the associated prefix, then an item for the URI). | |||
'''Note:''' | '''Note:''' | ||
If the expression uses a URI that is without a prefix in the document | If the expression uses a URI that is without a prefix in the document or if a single prefix in the document is used for two different URIs, <var>XPathNodeID</var> generates an "invented" prefix. | ||
or if a single prefix in the document | Such a prefix is generated because an XPath expression requires a prefix if it names an element or attribute that has a URI (for more about this requirement, see [[SelectionNamespace (XmlDoc property)|SelectionNamespace]]). A generated prefix is shown in the example, below.</p> | ||
is used for two different URIs, <var>XPathNodeID</var> generates an "invented" prefix. | <li><var>XPathNodeID</var> is available in <var class="product">[[Sirius Mods|"Sirius Mods"]]</var> Version 7.0 and later. | ||
Such a prefix is generated | <li><var>ToXPathStringlist</var> is available in <var class="product">[[Sirius Mods|"Sirius Mods"]]</var> Version 7.3 and later. | ||
because an XPath expression requires a prefix if it names an element | |||
or attribute that has a URI (for more about this requirement, | |||
see [[SelectionNamespace (XmlDoc property)|SelectionNamespace]]). | |||
A generated prefix is shown in the example, below. | |||
</ul> | </ul> | ||
The following document contained in an <var>XmlDoc</var> is used as the | ==Examples== | ||
<ol><li>The following document contained in an <var>XmlDoc</var> is used as the | |||
method object for <var>XPathNodeID</var>: | method object for <var>XPathNodeID</var>: | ||
<p class="code"><nowiki><a> | <p class="code"><nowiki><a> | ||
Line 69: | Line 46: | ||
</a></nowiki> | </a></nowiki> | ||
</p> | </p> | ||
When applied to the above document, the following table shows the <var>Stringlist</var>'s item(s) returned for each of various <var>XPathNodeID</var> arguments: | |||
<var>XPathNodeID</var> arguments: | |||
<p class="code"><nowiki> | <p class="code"><nowiki> | ||
Argument: Returned <var>Stringlist</var> item(s): | Argument: Returned <var>Stringlist</var> item(s): | ||
Line 92: | Line 67: | ||
_xpID.00</p> | _xpID.00</p> | ||
u:c | u:c | ||
</nowiki></p> | </nowiki></p></ol> | ||
==Request-Cancellation Errors== | |||
<ul> | <ul> | ||
<li>< | <li><var class="term">selectionXpath</var> is invalid. | ||
<li>Insufficient free space exists in CCATEMP. | <li>Insufficient free space exists in CCATEMP. | ||
</ul> | </ul> | ||
==See also== | ==See also== | ||
{{Template:XmlDoc/XmlNode:XPathNodeID footer}} | {{Template:XmlDoc/XmlNode:XPathNodeID footer}} |
Revision as of 10:59, 10 May 2011
XPath expression (in Stringlist) for selected node (XmlDoc and XmlNode classes)
ToXPathStringlist and XPathNodeID are synonyms; they return an absolute XPath expression that identifies the node that the argument XPath expression actually selects. In the remainder of this article, you can use ToXPathStringlist and XPathNodeID interchangeably.
XPathNodeID is designed to provide additional information when sending an error message to an XML client application, helping the application to identify an invalid node selection in its request XML document. A complex XPath expression might not be finding the node intended, for example.
ToXPathString is the same as XPathNodeID except its output is a string instead of a Stringlist. ToXPathString lets "Sirfact", "Janus Debugger", and "Sirius Debugger" users extract XPath information when needed. XPathNodeID does not work in those environments because of its object (Stringlist) output.
Syntax
%sl = nr:ToXPathStringlist[( [selectionXpath])] Throws XPathError
%sl = nr:XPathNodeID[( [selectionXpath])] Throws XPathError
Syntax terms
%sl | A Stringlist to contain one or more items that identify the node identified by selectionXpath. |
---|---|
nr | An XmlDoc or XmlNode, used as the context node for the selectionXpath expression. If an XmlDoc, the Root node is the context node. |
selectionXpath | A Unicode string that is an XPath expression that selects a node from the method object. Prior to "Sirius Mods" Version 7.6, this argument is an EBCDIC string. |
Usage notes
- If the absolute XPath expression returned by XPathNodeID contains no prefixes, the Stringlist %sl contains only one item: the expression. However, if the expression uses an element or attribute that has one or more non-null namespace URIs, the expression occupies an additional pair of Stringlist items for each such URI (an item for the associated prefix, then an item for the URI).
Note: If the expression uses a URI that is without a prefix in the document or if a single prefix in the document is used for two different URIs, XPathNodeID generates an "invented" prefix. Such a prefix is generated because an XPath expression requires a prefix if it names an element or attribute that has a URI (for more about this requirement, see SelectionNamespace). A generated prefix is shown in the example, below.
- XPathNodeID is available in "Sirius Mods" Version 7.0 and later.
- ToXPathStringlist is available in "Sirius Mods" Version 7.3 and later.
Examples
- The following document contained in an XmlDoc is used as the
method object for XPathNodeID:
<a> <?p1?> <b> <c n="1"/> <c n="2"/> </b> <?p2?> <x:a xmlns:x="u:a"> <x:b/> <y xmlns="u:c"/> </x:a> </a>
When applied to the above document, the following table shows the Stringlist's item(s) returned for each of various XPathNodeID arguments:
Argument: Returned <var>Stringlist</var> item(s): ----------------------------- --------------------------- */* /a/b */*/* /a/b/c[1] */*/*[2] /a/b/c[2] */processing-instruction() /a/processing-instruction()[1] */processing-instruction()[2] /a/processing-instruction()[2] */*/*/@* /a/b/c[1]/@n / / */*[2] /a/x:a Two prefix/URI items: x u:a */*[2]/*[2] /a/x:a/_xpID.00:y Four prefix/URI items: x u:a _xpID.00</p> u:c
Request-Cancellation Errors
- selectionXpath is invalid.
- Insufficient free space exists in CCATEMP.