<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>XPath &amp; Functions on speedata Publisher</title>
    <link>/en/reference/xpath/</link>
    <description>Recent content in XPath &amp; Functions on speedata Publisher</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="/en/reference/xpath/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Lengths and units</title>
      <link>/en/reference/xpath/lengthsunits/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/reference/xpath/lengthsunits/</guid>
      <description>&lt;p&gt;The lengths can be given in one of these units: &lt;code&gt;pp&lt;/code&gt;, &lt;code&gt;pc&lt;/code&gt;, &lt;code&gt;in&lt;/code&gt;, &lt;code&gt;pt&lt;/code&gt;, &lt;code&gt;cm&lt;/code&gt;, &lt;code&gt;mm&lt;/code&gt;, &lt;code&gt;dd&lt;/code&gt;, &lt;code&gt;cc&lt;/code&gt;. Without the unit, lengths will be in grid cells.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Unit&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;pp&lt;/td&gt;&#xA;          &lt;td&gt;Pica Point&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;pc&lt;/td&gt;&#xA;          &lt;td&gt;Pica (12 pp)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;in&lt;/td&gt;&#xA;          &lt;td&gt;Inch (72.27 pp)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;px&lt;/td&gt;&#xA;          &lt;td&gt;Pixel (1/96 inch)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;pt&lt;/td&gt;&#xA;          &lt;td&gt;Big point (72 bp = 1 in) PostScript point, DTP-point&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;cm&lt;/td&gt;&#xA;          &lt;td&gt;Centimeter&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;mm&lt;/td&gt;&#xA;          &lt;td&gt;Millimeter&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dd&lt;/td&gt;&#xA;          &lt;td&gt;Didot point&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;cc&lt;/td&gt;&#xA;          &lt;td&gt;Cicero (12 dd)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sp&lt;/td&gt;&#xA;          &lt;td&gt;Scaled point, 1pp = 65536sp&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2&gt;Conversion&lt;span id=&#34;conversion&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#conversion&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Unit&lt;/th&gt;&#xA;          &lt;th&gt;Unit&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica-point&lt;/td&gt;&#xA;          &lt;td&gt;0.35147 mm&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica-point&lt;/td&gt;&#xA;          &lt;td&gt;1/72.27 inch&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica-point&lt;/td&gt;&#xA;          &lt;td&gt;0.013837 inch&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica-point&lt;/td&gt;&#xA;          &lt;td&gt;0.93457 Didot-point&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica&lt;/td&gt;&#xA;          &lt;td&gt;4.2176 mm&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica&lt;/td&gt;&#xA;          &lt;td&gt;1/6 inch&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  Pica&lt;/td&gt;&#xA;          &lt;td&gt;12 Pica point&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  PostScript Point (Adobe, DTP-point)&lt;/td&gt;&#xA;          &lt;td&gt;1.00375001 Pica Point = 1pt&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1  mm&lt;/td&gt;&#xA;          &lt;td&gt;0.237 Pica = 2,845 Pica-point&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;To convert units you can use the layout function &lt;code&gt;sd:tounit()&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>XPath Expressions</title>
      <link>/en/reference/xpath/xpath/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/reference/xpath/xpath/</guid>
      <description>&lt;h2&gt;What is XPath?&lt;span id=&#34;what-is-xpath&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#what-is-xpath&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;XPath is a language for navigating XML trees and querying data.&#xA;Since the Publisher&amp;rsquo;s input data is in XML format, XPath is the central tool for accessing elements, attributes and text.&#xA;Examples: &amp;ldquo;give me all articles with a certain attribute&amp;rdquo; or &amp;ldquo;how many articles are in this article group?&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;For a general introduction to XPath, see the &lt;a href=&#34;https://www.w3schools.com/xml/xpath_intro.asp&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;tutorial at W3Schools&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2&gt;Where are XPath expressions used?&lt;span id=&#34;where-are-xpath-expressions-used&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#where-are-xpath-expressions-used&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The Publisher accepts XPath expressions in two places:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arrays and Maps</title>
      <link>/en/reference/xpath/datastructures/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/reference/xpath/datastructures/</guid>
      <description>&lt;p&gt;The speedata Publisher supports arrays and maps as native data structures.&#xA;This allows ordered lists and key-value mappings to be used directly in XPath expressions — without the detour of dynamically generated variable names.&lt;/p&gt;&#xA;&lt;p&gt;The constructors (&lt;code&gt;[...]&lt;/code&gt;, &lt;code&gt;array { ... }&lt;/code&gt;, &lt;code&gt;map { ... }&lt;/code&gt;) and the lookup operator (&lt;code&gt;?&lt;/code&gt;) can be used directly.&#xA;To use functions like &lt;code&gt;array:size()&lt;/code&gt;, &lt;code&gt;map:keys()&lt;/code&gt; etc., the corresponding namespaces must be declared in the root element:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Layout Functions</title>
      <link>/en/reference/xpath/layoutfunctions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/reference/xpath/layoutfunctions/</guid>
      <description>&lt;p&gt;The Publisher&amp;rsquo;s layout functions are defined in the namespace &lt;code&gt;urn:speedata:2009/publisher/functions/en&lt;/code&gt; (denoted by &lt;code&gt;sd:&lt;/code&gt; below).&#xA;In addition, there are &lt;a href=&#34;/en/reference/xpath/xpathfunctions/&#34;&gt;XPath standard functions&lt;/a&gt; and &lt;a href=&#34;/en/reference/commands/function/&#34;&gt;user-defined functions&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Optional parameters are marked with square brackets. The ellipsis &lt;code&gt;...&lt;/code&gt; means the last value can be repeated.&lt;/p&gt;&#xA;&lt;h2&gt;Page and Grid&lt;span id=&#34;page-and-grid&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#page-and-grid&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:current-page()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the current page number.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:current-column([&amp;lt;area&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the current column. If area is given, return the column of the given positioning area.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:current-row([&amp;lt;area&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the current row. If area is given, return the row of the given positioning area.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:current-framenumber(&amp;lt;area&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the current frame number of the given positioning area.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:number-of-columns([&amp;lt;area&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Number of columns in the current grid or given area.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:number-of-rows([&amp;lt;area&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Number of rows in the current grid or given area.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:allocated(x,y,[&amp;lt;areaname&amp;gt;],[&amp;lt;framenumber&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return true if the grid cell is allocated.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:first-free-row(&amp;lt;area&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the first free row of this area (experimental).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:pagewidth(&amp;lt;unit&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Get the width of the page in the given unit (as a number without unit). Example: &lt;code&gt;sd:pagewidth(&amp;quot;mm&amp;quot;)&lt;/code&gt; returns &lt;code&gt;210&lt;/code&gt; for an A4 page. This function initializes a page.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:pageheight(&amp;lt;unit&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Similar to &lt;code&gt;sd:pagewidth()&lt;/code&gt;, for the height.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:length(&amp;lt;what&amp;gt;[,&amp;lt;unit&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Get the length of &lt;em&gt;what&lt;/em&gt; in the given unit (without unit). Example: &lt;code&gt;sd:length(&#39;_bleed&#39;,&#39;mm&#39;)&lt;/code&gt; returns &lt;code&gt;3&lt;/code&gt; if bleed is set to 3mm. &lt;em&gt;what&lt;/em&gt; can be &lt;code&gt;_bleed&lt;/code&gt;, &lt;code&gt;_pagewidth&lt;/code&gt; or &lt;code&gt;_pageheight&lt;/code&gt;. Unit defaults to &lt;code&gt;mm&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Images&lt;span id=&#34;images&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#images&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:imagewidth(&amp;lt;filename&amp;gt;,[pagenumber],[pdfbox],[&amp;lt;unit&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Natural width of the image in grid cells. With an optional unit, returns width as a multiple of that unit. Note: if the image is not found, the placeholder width is returned. Arguments can contain a page number and PDF box, see &lt;a href=&#34;/en/manual/imagesandgraphics/&#34;&gt;images&lt;/a&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:imageheight(&amp;lt;filename&amp;gt;,[pagenumber],[pdfbox],[&amp;lt;unit&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Natural height of the image in grid cells. See &lt;code&gt;sd:imagewidth()&lt;/code&gt; for details.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:aspectratio(&amp;lt;filename&amp;gt;,[pagenumber],[pdfbox])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return width/height ratio (&amp;lt; 1 for portrait, &amp;gt; 1 for landscape).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:number-of-pages(&amp;lt;filename&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the number of pages of the given (PDF) file.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:file-exists(&amp;lt;filename&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return &lt;code&gt;true()&lt;/code&gt; if the file exists in the search path.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Groups&lt;span id=&#34;groups&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#groups&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:group-width(&amp;lt;name&amp;gt;[,&amp;lt;unit&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the group&amp;rsquo;s width in grid cells. With an optional unit, returns width as a multiple of that unit. Example: &lt;code&gt;sd:group-width(&#39;My group&#39;,&#39;mm&#39;)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:group-height(&amp;lt;name&amp;gt;[,&amp;lt;unit&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the group&amp;rsquo;s height. See &lt;code&gt;sd:group-width()&lt;/code&gt; for details.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Text and Formatting&lt;span id=&#34;text-and-formatting&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#text-and-formatting&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:format-number(&amp;lt;number&amp;gt;, &amp;lt;thousands separator&amp;gt;, &amp;lt;decimal separator&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Format the number with separators. Example: &lt;code&gt;sd:format-number(12345.67, &#39;,&#39;,&#39;.&#39;)&lt;/code&gt; returns &lt;code&gt;12,345.67&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:format-string(&amp;lt;object&amp;gt;,...,&amp;lt;format&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Format objects using &lt;code&gt;printf()&lt;/code&gt;-style instructions.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:dummytext([&amp;lt;count&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return &amp;ldquo;Lorem ipsum&amp;hellip;&amp;rdquo; dummy text. The count controls repetition.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:loremipsum()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Alias for &lt;code&gt;sd:dummytext()&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:markdown(&amp;lt;text&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Render text as markdown. See &lt;a href=&#34;/en/manual/webformats/markdown/&#34;&gt;Markdown&lt;/a&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:decode-html(&amp;lt;node&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert text like &lt;code&gt;&amp;amp;lt;i&amp;amp;gt;italic&amp;amp;lt;/i&amp;amp;gt;&lt;/code&gt; into HTML markup.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:symbol(&amp;lt;value&amp;gt;[,&amp;lt;value&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return characters from the current font by glyph ID. Example: &lt;code&gt;sd:symbol(123, 444)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:romannumeral(&amp;lt;number&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert the number to a lowercase Roman numeral.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Variables and State&lt;span id=&#34;variables-and-state&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#variables-and-state&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:variable(&amp;lt;name&amp;gt;[, ...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Same as &lt;code&gt;$name&lt;/code&gt;, but allows dynamic name construction. If &lt;code&gt;$i&lt;/code&gt; is 3, &lt;code&gt;sd:variable(&#39;foo&#39;,$i)&lt;/code&gt; reads &lt;code&gt;$foo3&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:variable-exists(&amp;lt;name&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the variable is defined.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:attr(&amp;lt;name&amp;gt;[, ...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Same as &lt;code&gt;@name&lt;/code&gt;, but allows dynamic attribute name construction.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:alternating(&amp;lt;type&amp;gt;, &amp;lt;text&amp;gt;[,&amp;lt;text&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the next argument on each call. Example: &lt;code&gt;sd:alternating(&amp;quot;tbl&amp;quot;, &amp;quot;White&amp;quot;,&amp;quot;Gray&amp;quot;)&lt;/code&gt; for alternating table colors.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:keep-alternating(&amp;lt;type&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Use the current value of &lt;code&gt;sd:alternating()&lt;/code&gt; without advancing.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:reset-alternating(&amp;lt;type&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Reset the state for &lt;code&gt;sd:alternating()&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:even(&amp;lt;number&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the number is even.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:odd(&amp;lt;number&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the number is odd.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:mode(&amp;lt;string&amp;gt;[,&amp;lt;string&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return &lt;code&gt;true()&lt;/code&gt; if one of the given modes is set. See &lt;a href=&#34;/en/manual/pagelayout/controllayout/&#34;&gt;controlling the layout&lt;/a&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:randomitem(&amp;lt;value&amp;gt;[,&amp;lt;value&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return one of the values randomly.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Page Markers and Directories&lt;span id=&#34;page-markers-and-directories&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#page-markers-and-directories&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:pagenumber(&amp;lt;mark&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the page number where the given mark was placed. See &lt;a href=&#34;/en/reference/commands/mark/&#34;&gt;Mark&lt;/a&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:visible-pagenumber([&amp;lt;number&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the user-visible page number for the given real page number. Without argument, uses the current page.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:firstmark(&amp;lt;pagenumber&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;The first marker of the given page. Useful for dictionary headings.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:lastmark(&amp;lt;pagenumber&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;The last marker of the given page.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:merge-pagenumbers(&amp;lt;pagenumbers&amp;gt;,[&amp;lt;range separator&amp;gt;],[&amp;lt;space separator&amp;gt;],[hyperlinks])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Merge page numbers. &lt;code&gt;&amp;quot;1, 3, 4, 5&amp;quot;&lt;/code&gt; becomes &lt;code&gt;1, 3–5&lt;/code&gt;. Sorts and removes duplicates. With &lt;code&gt;hyperlinks = true()&lt;/code&gt;, page numbers become clickable.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:count-saved-pages(&amp;lt;name&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the number of pages saved with &lt;code&gt;&amp;lt;SavePages&amp;gt;&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Units and Calculation&lt;span id=&#34;units-and-calculation&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#units-and-calculation&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:tounit(&amp;lt;target unit&amp;gt;,&amp;lt;value&amp;gt;[,&amp;lt;decimals&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert a value to another unit. Example: &lt;code&gt;sd:tounit(&#39;pt&#39;,&#39;1pc&#39;)&lt;/code&gt; returns 12.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:dimexpr(&amp;lt;unit&amp;gt;,&amp;lt;expression&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Evaluate a calculation with units. Example: &lt;code&gt;sd:dimexpr(&#39;cm&#39;,&#39; (40mm + 2cm) / 2 &#39;)&lt;/code&gt; returns 3.0.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Files and Binary Data&lt;span id=&#34;files-and-binary-data&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#files-and-binary-data&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:decode-base64(&amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert a base64-encoded string to binary content.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:filecontents(&amp;lt;binarycontent&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Save the content to a temporary file and return the filename.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Hash Functions&lt;span id=&#34;hash-functions&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#hash-functions&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:md5(&amp;lt;value&amp;gt;[,&amp;lt;value&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the MD5 hash as a hex string. Example: &lt;code&gt;sd:md5(&#39;hello &#39;, &#39;world&#39;)&lt;/code&gt; returns &lt;code&gt;5eb63bbbe01eeed093cb22bb8f5acdc3&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:sha1(&amp;lt;value&amp;gt;[,&amp;lt;value&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the SHA-1 hash as a hex string.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:sha256(&amp;lt;value&amp;gt;[,&amp;lt;value&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the SHA-256 hash as a hex string.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sd:sha512(&amp;lt;value&amp;gt;[,&amp;lt;value&amp;gt;,...])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the SHA-512 hash as a hex string.&lt;/dd&gt;&#xA;&lt;/dl&gt;</description>
    </item>
    <item>
      <title>XPath Standard Functions</title>
      <link>/en/reference/xpath/xpathfunctions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/reference/xpath/xpathfunctions/</guid>
      <description>&lt;p&gt;The Publisher supports the following XPath standard functions.&#xA;In addition, there are the Publisher-specific &lt;a href=&#34;/en/reference/xpath/layoutfunctions/&#34;&gt;layout functions&lt;/a&gt; and &lt;a href=&#34;/en/reference/commands/function/&#34;&gt;user-defined functions&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2&gt;Strings&lt;span id=&#34;strings&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#strings&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;concat(&amp;lt;value&amp;gt;,&amp;lt;value&amp;gt;, ...)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Create a new text by concatenating the values.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;contains(&amp;lt;haystack&amp;gt;,&amp;lt;needle&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if haystack contains needle. Example: &lt;code&gt;contains(&#39;bana&#39;,&#39;na&#39;)&lt;/code&gt; returns &lt;code&gt;true()&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;starts-with(&amp;lt;string&amp;gt;, &amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the first string starts with the second.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;ends-with(&amp;lt;string&amp;gt;, &amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the first string ends with the second.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;substring(&amp;lt;input&amp;gt;,&amp;lt;start&amp;gt;[,&amp;lt;length&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return a part of the string. &lt;code&gt;substring(&#39;Goldfarb&#39;, 5, 3)&lt;/code&gt; returns &lt;code&gt;far&lt;/code&gt;. &lt;code&gt;start&lt;/code&gt; can be negative (counts from the end).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;substring-before(&amp;lt;string&amp;gt;,&amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the part of the first string before the second. Example: &lt;code&gt;substring-before(&amp;quot;tattoo&amp;quot;, &amp;quot;attoo&amp;quot;)&lt;/code&gt; returns &lt;code&gt;&amp;quot;t&amp;quot;&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;substring-after(&amp;lt;string&amp;gt;,&amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the part of the first string after the second. Example: &lt;code&gt;substring-after(&amp;quot;tattoo&amp;quot;, &amp;quot;tat&amp;quot;)&lt;/code&gt; returns &lt;code&gt;&amp;quot;too&amp;quot;&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;string-length(&amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the length of the string. Multi-byte UTF-8 sequences count as one.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;string-join(&amp;lt;sequence&amp;gt;, &amp;lt;separator&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Join the elements of the sequence with the separator.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;normalize-space(&amp;lt;text&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Remove leading and trailing whitespace. Multiple spaces and newlines are replaced by a single space.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;upper-case(&amp;lt;text&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert text to uppercase. &lt;code&gt;upper-case(&#39;text&#39;)&lt;/code&gt; returns &lt;code&gt;TEXT&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;lower-case(&amp;lt;text&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert text to lowercase. &lt;code&gt;lower-case(&#39;Text&#39;)&lt;/code&gt; returns &lt;code&gt;text&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;translate(&amp;lt;input&amp;gt;,&amp;lt;from&amp;gt;,&amp;lt;to&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Replace all characters in &lt;code&gt;input&lt;/code&gt; found in &lt;code&gt;from&lt;/code&gt; with the corresponding character in &lt;code&gt;to&lt;/code&gt;. Example: &lt;code&gt;translate(&#39;banana&#39;,&#39;an&#39;,&#39;uo&#39;)&lt;/code&gt; returns &lt;code&gt;buouou&lt;/code&gt;. If &lt;code&gt;to&lt;/code&gt; is shorter than &lt;code&gt;from&lt;/code&gt;, extra characters are deleted.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;compare(&amp;lt;string&amp;gt;,&amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Compare two strings: return &lt;code&gt;-1&lt;/code&gt; if the first string is less than the second, &lt;code&gt;0&lt;/code&gt; if they are equal and &lt;code&gt;1&lt;/code&gt; if it is greater. Example: &lt;code&gt;compare(&#39;a&#39;,&#39;b&#39;)&lt;/code&gt; returns &lt;code&gt;-1&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;matches(&amp;lt;text&amp;gt;,&amp;lt;regexp&amp;gt;[,&amp;lt;flags&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the text matches the regular expression. Flags: &lt;code&gt;s&lt;/code&gt;, &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;m&lt;/code&gt; (see &lt;a href=&#34;https://www.w3.org/TR/xpath-functions-31/#flags&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;XPath spec&lt;/a&gt;). Example: &lt;code&gt;matches(&amp;quot;banana&amp;quot;, &amp;quot;^(.a)+$&amp;quot;)&lt;/code&gt; returns true.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;replace(&amp;lt;input&amp;gt;,&amp;lt;regexp&amp;gt;,&amp;lt;replacement&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Replace all matches of the regular expression with the replacement text. Example: &lt;code&gt;replace(&#39;banana&#39;, &#39;a&#39;, &#39;o&#39;)&lt;/code&gt; returns &lt;code&gt;bonono&lt;/code&gt;. With groups: &lt;code&gt;replace(&#39;W151TBH&#39;,&#39;^[A-Z]([0-9]+)[A-Z]+$&#39;, &#39;$1&#39;)&lt;/code&gt; returns &lt;code&gt;151&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;tokenize(&amp;lt;input&amp;gt;,&amp;lt;regexp&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Split the input by the regular expression into a sequence of strings. Example: &lt;code&gt;tokenize(&amp;quot;Go home, Jack!&amp;quot;, &amp;quot;\W+&amp;quot;)&lt;/code&gt; returns the sequence &lt;code&gt;&amp;quot;Go&amp;quot;, &amp;quot;home&amp;quot;, &amp;quot;Jack&amp;quot;, &amp;quot;&amp;quot;&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;string(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the text value of the sequence.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;codepoints-to-string(&amp;lt;codepoints&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert a sequence of codepoints to a string.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;string-to-codepoints(&amp;lt;string&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert a string to a sequence of codepoints.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Numbers&lt;span id=&#34;numbers&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#numbers&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;number(&amp;lt;value&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Convert the value to a number. Returns NaN if conversion fails.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;abs(&amp;lt;number&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the absolute value. &lt;code&gt;abs(-1.34)&lt;/code&gt; returns &lt;code&gt;1.34&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;ceiling(&amp;lt;number&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Round up to the next integer. &lt;code&gt;ceiling(1.34)&lt;/code&gt; returns &lt;code&gt;2&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;floor(&amp;lt;number&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Round down to the next integer. &lt;code&gt;floor(1.7)&lt;/code&gt; returns &lt;code&gt;1&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;round(&amp;lt;number&amp;gt;[,&amp;lt;decimals&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Round to the given number of decimal places (default: 0).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;round-half-to-even(&amp;lt;number&amp;gt;[,&amp;lt;decimals&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Banker&amp;rsquo;s rounding: at .5, round to the nearest even number.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;format-number(&amp;lt;number&amp;gt;, &amp;lt;pattern&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Format the number according to the pattern. Example: &lt;code&gt;format-number(12345.67, &#39;#,##0.00&#39;)&lt;/code&gt; returns &lt;code&gt;12,345.67&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;max(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the maximum. &lt;code&gt;max((1.1, 2.2, 3.3))&lt;/code&gt; returns &lt;code&gt;3.3&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;min(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the minimum. &lt;code&gt;min((1.1, 2.2, 3.3))&lt;/code&gt; returns &lt;code&gt;1.1&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;sum(&amp;lt;sequence&amp;gt;[,&amp;lt;zero-value&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the sum of the values. &lt;code&gt;sum((1, 2, 3))&lt;/code&gt; returns &lt;code&gt;6&lt;/code&gt;. For an empty sequence, &lt;code&gt;0&lt;/code&gt; is returned, or the second argument if given.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;avg(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the average of the values. &lt;code&gt;avg((1, 2, 3))&lt;/code&gt; returns &lt;code&gt;2.0&lt;/code&gt;. For an empty sequence, the empty sequence is returned.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Boolean Functions&lt;span id=&#34;boolean-functions&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#boolean-functions&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;true()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return true.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;false()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return false.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;not(&amp;lt;value&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Negate the boolean value. &lt;code&gt;not(true())&lt;/code&gt; returns &lt;code&gt;false()&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;boolean(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the &lt;a href=&#34;https://www.w3.org/TR/xpath20/#id-ebv&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;effective boolean value&lt;/a&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;empty(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the sequence is empty (e.g. a non-existing attribute or element).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;exists(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if the sequence is not empty. The opposite of &lt;code&gt;empty()&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Sequences and Nodes&lt;span id=&#34;sequences-and-nodes&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#sequences-and-nodes&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;count(&amp;lt;nodes&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Count child elements with the given name. Example: &lt;code&gt;count(article)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;position()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the position of the current node.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;last()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the number of same-named sibling elements.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;distinct-values(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return unique values. &lt;code&gt;distinct-values((1,2,2,3))&lt;/code&gt; returns &lt;code&gt;(1,2,3)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;reverse(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Reverse the order of the sequence.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;index-of(&amp;lt;sequence&amp;gt;,&amp;lt;search&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the positions of the items that are equal to the search value. &lt;code&gt;index-of((10, 20, 30, 20), 20)&lt;/code&gt; returns &lt;code&gt;(2, 4)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;insert-before(&amp;lt;sequence&amp;gt;,&amp;lt;position&amp;gt;,&amp;lt;items&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Insert the items at the given position. &lt;code&gt;insert-before((&#39;a&#39;, &#39;b&#39;), 2, &#39;x&#39;)&lt;/code&gt; returns &lt;code&gt;(&#39;a&#39;, &#39;x&#39;, &#39;b&#39;)&lt;/code&gt;. Positions outside the sequence insert at the start or at the end.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;remove(&amp;lt;sequence&amp;gt;,&amp;lt;position&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Remove the item at the given position. &lt;code&gt;remove((&#39;a&#39;, &#39;b&#39;, &#39;c&#39;), 2)&lt;/code&gt; returns &lt;code&gt;(&#39;a&#39;, &#39;c&#39;)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;subsequence(&amp;lt;sequence&amp;gt;,&amp;lt;start&amp;gt;[,&amp;lt;length&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the part of the sequence starting at &lt;code&gt;start&lt;/code&gt; (first item is 1). Without &lt;code&gt;length&lt;/code&gt;, everything up to the end is returned. &lt;code&gt;subsequence((1, 2, 3, 4), 2, 2)&lt;/code&gt; returns &lt;code&gt;(2, 3)&lt;/code&gt;.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;deep-equal(&amp;lt;sequence&amp;gt;,&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;True if both sequences have the same length and all items are equal. Elements are compared recursively including their attributes and contents.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;zero-or-one(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the sequence if it contains at most one item, otherwise raise an error.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;one-or-more(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the sequence if it contains at least one item, otherwise raise an error.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;exactly-one(&amp;lt;sequence&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the sequence if it contains exactly one item, otherwise raise an error.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;local-name()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the name of the current node (without namespace).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;name()&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the name of the current node (with namespace prefix).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;namespace-uri([&amp;lt;nodeset&amp;gt;])&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the namespace URI of the first node.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;root(&amp;lt;element&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the root element.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;doc(&amp;lt;filename&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Open the file and return its content as an XML tree.&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;serialize(&amp;lt;node&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the XML serialization of the node as a string. Example: if the current element is &lt;code&gt;&amp;lt;item color=&amp;quot;red&amp;quot;&amp;gt;Text&amp;lt;/item&amp;gt;&lt;/code&gt;, &lt;code&gt;serialize(.)&lt;/code&gt; returns the string &lt;code&gt;&amp;lt;item color=&amp;quot;red&amp;quot;&amp;gt;Text&amp;lt;/item&amp;gt;&lt;/code&gt;. Special characters are properly escaped (&lt;code&gt;&amp;amp;amp;&lt;/code&gt;, &lt;code&gt;&amp;amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;amp;quot;&lt;/code&gt;).&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;unparsed-text(&amp;lt;filename&amp;gt;)&lt;/code&gt;&lt;/dt&gt;&#xA;&lt;dd&gt;Return the file content as uninterpreted text.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h2&gt;Arrays and maps&lt;span id=&#34;arrays-and-maps&#34; style=&#34;position:absolute;margin-top:-5rem;&#34;&gt;&lt;/span&gt;&#xA;    &lt;a href=&#34;#arrays-and-maps&#34; class=&#34;heading-anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The functions in the &lt;code&gt;array:&lt;/code&gt; and &lt;code&gt;map:&lt;/code&gt; namespaces are described in the chapter &lt;a href=&#34;/en/reference/xpath/datastructures/&#34;&gt;Arrays and Maps&lt;/a&gt;, together with the required namespace declarations and examples.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
