# Package com.saxonica.functions.extfn

The package `com.saxonica.extfn` contains implementations of extension functions in the Saxon namespace.

It also contains the class `VendorFunctionSetPE` which acts as a factory class for generating instances of these extension functions

These extension are implemented using a variety of mechanisms. Some are implemented in the same way as system function. Some use the "integrated extension function" mechanism introduced in Saxon 9.2. A few still use the reflection mechanism, these are in class `Extensions`.

- Class Summary
  Class | Description
  --- | ---
  AnalyzeUri | This class implements the saxon:analyze-uri() function which returns a map containing the components of a URI
  ArrayMember | This class implements the saxon:array-member() extension function.
  ArrayMemberValue | This class implements the result of the saxon:array-member() extension function or the saxon:array-member instruction
  CharactersFn | Implements the saxon:characters() function.
  CompileQuery | This class implements the saxon:compile-query() extension function
  CompileStylesheet | This class implements the saxon:compile-stylesheet() extension function
  DecimalDivide | Implements the saxon:decimal-divide() function
  DeepEqual | Implements the saxon:deep-equal() function, a variant of fn:deep-equal that provides additional control over how the comparison is performed.
  Ending | This class supports the two extension functions saxon:ending-where and saxon:ending-before.
  Ending.ItemsBefore |
  Ending.ItemsUntil |
  EQName | This class implements the saxon:EQName extension function.
  Eval | This class implements the saxon:eval() extension function
  Evaluate | This class implements the saxon:evaluate() extension function
  Evaluate.PreparedExpression | Inner class PreparedExpression represents a compiled XPath expression together with the standard variables $p1 ..
  EXPathBinary | Implementation of extension functions in the EXPath Binary package, see http://expath.org/spec/binary
  EXPathFile | Implementation of extension functions in the EXPath File package, see http://expath.org/spec/file
  EXPathFileFunctionSet | Implementation of the file:base-dir function in the EXPath file library.
  EXPathFileFunctionSet.BaseDir |
  ExpressionFn | This class implements the saxon:expression() extension function.
  Extensions | This class implements functions that are supplied as standard with SAXON, but which are not defined in the XSLT or XPath specifications.
  FunctionAnnotations | Implementation of the saxon:function-annotations() extension function.
  GroupStarting | This class supports the extension function saxon:group-starting.
  HighestOrLowest | This class implements the saxon:highest() and saxon:lowest() extension functions.
  Index | This class supports the extension function saxon:index, which returns an indexed sequence
  IndexWhere | The saxon:index-where() extension function
  InScopeNamespacesFn | Implementation of the saxon:in-scope-namespaces extension function.
  IsNaN | Implements the saxon:is-NaN() function.
  KeyMap | Implementation of the saxon:key-map() extension function.
  LastModified | Extension function to determined the last-modified date of a file
  Leading | This class implements the saxon:leading() extension functions.
  Mailer2 | Helper class for saxon:send-mail() extension function
  MapSearch | The saxon:map-search function, new in Saxon 9.9
  MessageCount | This class implements the saxon:message-count() function which returns the value of message counters at the moment of execution
  NewAttribute | Implements the saxon:new-attribute() function.
  NewComment | Implements the saxon:new-comment() function.
  NewDocument | Implements the saxon:new-text() function.
  NewElement | Implements the saxon:new-text() function.
  NewNamespace | Implements the saxon:new-namespace() function.
  NewProcessingInstruction | Implements the saxon:new-processing-instruction() function.
  NewText | Implements the saxon:new-text() function.
  ObjectMap | Extension function saxon:object-map(), which converts an external object to a map
  Parse | This class implements the saxon:parse() extension function, which is specially-recognized by the system because it needs access to parts of the static context
  ParseHtml | Supports the saxon:parse-html() function, a variant of saxon:parse() that differs only in that it uses the TagSoup HTML parser
  ParseXPath | This class implements the saxon:parse-XPath() extension function, which is specially-recognized by the system because it needs access to parts of the static context
  PedigreeFn | The saxon:pedigree function, new in Saxon 9.9.
  QueryFn | This class implements the saxon:query() extension function
  ReplaceWith | This class implements the saxon:replace-with() function for replacing substrings that match a regular expression by means of a callback to a user-supplied function
  SendMail | This class implements the extension function saxon:send-mail().
  Serialize | This class implements the saxon:serialize() extension function, which is specially-recognized by the system because it needs access to parts of the static context
  Starting | This class supports the two extension functions saxon:items-from and saxon:items-after.
  Starting.ItemsAfter |
  Starting.ItemsFrom |
  TimestampFn | This class implements the saxon:timestamp() function which returns the date/time at the moment of execution
  TransformFn | This class implements the `saxon:transform()` extension function (not to be confused with the standard `fn:transform()` function in XPath 3.1)
  VendorFunctionSetPE | The VendorFunctionLibraryPE represents additions to the set of Saxon vendor-supplied extension functions that are available only with the Saxon-PE and Saxon-EE editions
  WithPedigree | The saxon:with-pedigree function, new in Saxon 9.9.