Core functions - implementation status PreviousNext

This chapter lists all the core functions (functions provided by host lanages such as XSLT are not listed here) along with their implementation status.

The first column of the table gives the function's name, from XQuery 1.0 and XPath 2.0 Functions and Operators. The fn prefix represents the namespace uri

To translate the function name into it's implementation class (which can be found in $GOBO/library/xpath/src/functions/), remove the leading fn:, uppercase the remaining part of the name, and translate any hyphens into underscores. Then prefix it with XM_XPATH_. For example, the function fn:normalize-space, is implemented by XM_XPATH_NORMALIZE_SPACE.

All such classes are descendants of XM_XPATH_SYSTEM_FUNCTION. They also each have an entry in XM_XPATH_SYSTEM_FUNCTION_FACTORY.

The second column says whether or not the function has been implemented yet. The third column indicates whether there is a testing class set up for the function. If so, it will be in $GOBO/test/xml/xpath/, and will be named xm_xpath_test_<function-name>.e .

The final column gives a link to the W3C draft or recommendation against which the tests have been checked, or "None", if this has not been done.

Implemented XPath 2.0 core Functions

Table of functions
Name Implemented? Tested? Checked
fn:abs Yes Yes None
fn:adjust-date-to-timezone Yes Yes None
fn:adjust-dateTime-to-timezone Yes Yes None
fn:adjust-time-to-timezone Yes Yes None
fn:avg Yes Yes None
fn:base-uri Yes Yes None
fn:boolean Yes No None
fn:ceiling Yes Yes None
fn:codepoint-equal Yes Yes None
fn:codepoints-to-string Yes Yes None
fn:collection Yes Yes None
fn:compare Yes No None
fn:concat Yes No None
fn:contains Yes Incidentallly None
fn:count Yes No None
fn:current-date Yes No None
fn:current-dateTime Yes No None
fn:current-time Yes No None
fn:data Yes No None
fn:dateTime Yes No None
fn:day-from-date Yes Yes None
fn:day-from-dateTime Yes Yes None
fn:days-from-duration Yes Yes None
fn:deep-equal Yes No None
fn:default-collation Yes No None
fn:distinct-values Yes Yes None
fn:doc Yes Yes None
fn:doc-available Yes Yes None
fn:document-uri Yes No None
fn:empty Yes No None
fn:encode-for-uri Yes Yes None
fn:ends-with Yes No None
fn:error Yes No None
fn:escape-html-uri Yes Yes None
fn:exactly-one Yes Yes None
fn:exists Yes No None
fn:false Yes Only incidentally None
fn:floor Yes Yes None
fn:hours-from-dateTime Yes Yes None
fn:hours-from-duration Yes Yes None
fn:hours-from-time Yes Yes None
fn:id Yes Yes None
fn:idref Yes Yes None
fn:implicit-timezone Yes No None
fn:in-scope-prefixes Yes Incidentally None
fn:index-of Yes Yes None
fn:insert-before Yes No None
fn:iri-to-uri Yes Yes None
fn:lang Yes Yes None
fn:last Yes No None
fn:local-name Yes Incidentally None
fn:local-name-from-QName Yes Yes None
fn:lower-case Yes No None
fn:matches Yes (but unicode case stuff not implemented yet) Yes None
fn:max Yes Yes None
fn:min Yes Yes None
fn:minutes-from-dateTime Yes Yes None
fn:minutes-from-duration Yes Yes None
fn:minutes-from-time Yes Yes None
fn:month-from-date Yes Yes None
fn:month-from-dateTime Yes Yes None
fn:months-from-duration Yes Yes None
fn:name Yes Only incidentally None
fn:namespace-uri Yes Incidentally None
fn:namespace-uri-for-prefix Yes Incidentally None
fn:namespace-uri-from-QName Yes Yes None
fn:nilled Yes No None
fn:node-name Yes Yes None
fn:normalize-space Yes No None
fn:normalize-unicode Yes Yes None
fn:not Yes Only incidentally None
fn:number Yes No None
fn:one-or-more Yes Yes None
fn:position Yes Incidentally, but extensively None
fn:prefix-from-QName Yes Yes None
fn:QName Yes Yes None
fn:remove Yes Yes None
fn:replace Yes (but unicode case stuff not implemented yet) Yes None
fn:resolve-QName Yes Yes None
fn:resolve-uri Yes Yes None
fn:reverse Yes Yes None
fn:root Yes Yes None
fn:round Yes Yes None
fn:round-half-to-even Yes Yes None
fn:seconds-from-dateTime Yes Yes None
fn:seconds-from-duration Yes Yes None
fn:seconds-from-time Yes Yes None
fn:starts-with Yes No None
fn:static-base-uri Yes No None
fn:string Yes No None
fn:string-join Yes No None
fn:string-length Yes No None
fn:string-to-codepoints Yes Yes None
fn:subsequence Yes No None
fn:substring Yes Incidentally None
fn:substring-after Yes Incidentally None
fn:substring-before Yes Incidentally None
fn:sum Yes Yes None
fn:timezone-from-date Yes Yes None
fn:timezone-from-dateTime Yes Yes None
fn:timezone-from-time Yes Yes None
fn:tokenize Yes (but unicode case stuff not implemented yet) Partly None
fn:trace Yes Only by personal use None
fn:translate Yes Incidentally None
fn:true Yes Only incidentally None
fn:unordered Yes No None
fn:upper-case Yes No None
fn:year-from-date Yes Yes None
fn:year-from-dateTime Yes Yes None
fn:years-from-duration Yes Yes None
fn:zero-or-one Yes Yes None

Copyright 2004-2016, Colin Adams and others
Last Updated: 27 December 2016