XPath and Layout Functions
XTS uses XPath as its expression language. XPath appears in select attributes, test conditions, and inside curly braces {...} in some contexts.
If you’re new to XPath, the W3Schools XPath tutorial is a good starting point. This page focuses on the XTS-specific extensions.
Where XPath is used
XTS layout functions
XTS extends XPath with functions in the sd: namespace. These let you query the layout state at runtime.
Page and position
| Function |
Returns |
sd:current-page() |
Current page number |
sd:current-row('area') |
Current cursor row (optional area name) |
sd:page-number('markname') |
Page number where a mark was placed |
sd:last-page-number() |
Number of the last page |
sd:total-pages('selector') |
Total page count |
Grid dimensions
| Function |
Returns |
sd:number-of-columns('area') |
Number of grid columns (optional area name) |
sd:number-of-rows('area') |
Number of grid rows (optional area name) |
sd:grid-width(columns, 'unit') |
Width of N columns in the given unit |
sd:grid-height(rows, 'unit') |
Height of N rows in the given unit |
Slates and images
| Function |
Returns |
sd:slate-width('name', 'unit') |
Width of a named slate |
sd:slate-height('name', 'unit') |
Height of a named slate |
sd:image-width('file', page, 'box', 'unit') |
Image width |
sd:image-height('file', page, 'box', 'unit') |
Image height |
sd:aspect-ratio('file', page, 'box') |
Image aspect ratio (width/height) |
Variables
| Function |
Returns |
sd:variable('name') |
Value of a variable (useful for dynamic names) |
sd:attribute('name') |
Value of an attribute |
Text and formatting
| Function |
Returns |
sd:dummy-text(count) |
Lorem ipsum text (optional paragraph count) |
sd:markdown('text') |
Convert Markdown to HTML |
sd:roman-numeral(number) |
Roman numeral string |
sd:format-number(number, 'format', 'locale') |
Formatted number string |
Utility
| Function |
Returns |
sd:even(number) |
True if number is even |
sd:odd(number) |
True if number is odd |
sd:file-exists('filename') |
True if file exists |
sd:file-contents('filename') |
File contents as string |
sd:to-unit(value, 'from', 'to') |
Unit conversion |
Cryptographic
| Function |
Returns |
sd:md5('string') |
MD5 hash |
sd:sha1('string') |
SHA-1 hash |
sd:sha256('string') |
SHA-256 hash |
sd:sha512('string') |
SHA-512 hash |
sd:decode-base64('string') |
Base64 decoded string |
sd:decode-html('string') |
HTML entity decoded string |
XPath in HTML content
Inside <HTML> elements, XPath expressions are only evaluated when expand-text="yes" is set:
Full reference
For the complete function signatures with all optional parameters, see the XPath Functions Reference.