blob: 3626b97342a4e746f466b26cf4ab3f619116d183 [file]
/*---------------------------------------------------------------------------------------------
* Copyright (c) 2020 DeltaXML Ltd. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export enum XSLTnamespaces {
NotDefined,
Array,
ExpathArchive,
ExpathBinary,
ExpathFile,
Exslt,
ExsltMath,
ExsltRegex,
ExsltSets,
ExsltStrings,
Map,
Math,
Saxon,
SQL,
XMLSchema,
XPath,
XSLT,
IXSL,
dfdl,
}
export class FunctionData {
public static readonly xpath = [
'count#1',
'QName#2',
'abs#1',
'analyze-string#2',
'analyze-string#3',
'apply#2',
'available-environment-variables#0',
'avg#1',
'base-uri#0',
'base-uri#1',
'boolean#1',
'ceiling#1',
'codepoint-equal#2',
'codepoints-to-string#1',
'collation-key#1',
'collation-key#2',
'collection#0',
'collection#1',
'compare#2',
'compare#3',
'concat#2',
'concat#3',
'contains#2',
'contains#3',
'contains-token#2',
'contains-token#3',
'current-date#0',
'current-dateTime#0',
'current-time#0',
'starts-with#2',
'starts-with#3',
'static-base-uri#0',
'string#0',
'string#1',
'string-join#1',
'string-join#2',
'string-length#0',
'string-length#1',
'string-to-codepoints#1',
'subsequence#2',
'subsequence#3',
'substring#2',
'substring#3',
'substring-after#2',
'substring-after#3',
'substring-before#2',
'substring-before#3',
'sum#1',
'sum#2',
'data#0',
'data#1',
'dateTime#2',
'day-from-date#1',
'day-from-dateTime#1',
'days-from-duration#1',
'deep-equal#2',
'deep-equal#3',
'default-collation#0',
'default-language#0',
'distinct-values#1',
'distinct-values#2',
'doc#1',
'doc-available#1',
'document-uri#0',
'document-uri#1',
'element-with-id#1',
'element-with-id#2',
'empty#1',
'encode-for-uri#1',
'ends-with#2',
'ends-with#3',
'environment-variable#1',
'error#0',
'error#1',
'error#2',
'error#3',
'escape-html-uri#1',
'exactly-one#1',
'exists#1',
'false#0',
'filter#2',
'floor#1',
'fold-left#3',
'fold-right#3',
'for-each#2',
'for-each-pair#3',
'format-date#2',
'format-date#5',
'format-dateTime#2',
'format-dateTime#5',
'format-integer#2',
'format-integer#3',
'format-number#2',
'format-number#3',
'format-time#2',
'format-time#5',
'function-arity#1',
'function-lookup#2',
'function-name#1',
'generate-id#0',
'generate-id#1',
'has-children#0',
'has-children#1',
'head#1',
'hours-from-dateTime#1',
'hours-from-duration#1',
'hours-from-time#1',
'id#1',
'id#2',
'idref#1',
'idref#2',
'implicit-timezone#0',
'in-scope-prefixes#1',
'index-of#2',
'index-of#3',
'innermost#1',
'insert-before#3',
'iri-to-uri#1',
'json-doc#1',
'json-doc#2',
'json-to-xml#1',
'json-to-xml#2',
'lang#1',
'lang#2',
'last#0',
'load-xquery-module#1',
'load-xquery-module#2',
'local-name#0',
'local-name#1',
'local-name-from-QName#1',
'lower-case#1',
'matches#2',
'matches#3',
'max#1',
'max#2',
'min#1',
'min#2',
'name#0',
'name#1',
'namespace-uri#0',
'namespace-uri#1',
'namespace-uri-for-prefix#2',
'namespace-uri-from-QName#1',
'nilled#0',
'nilled#1',
'node-name#0',
'node-name#1',
'normalize-space#0',
'normalize-space#1',
'normalize-unicode#1',
'normalize-unicode#2',
'not#1',
'number#0',
'number#1',
'one-or-more#1',
'outermost#1',
'parse-ietf-date#1',
'parse-json#1',
'parse-json#2',
'parse-xml#1',
'parse-xml-fragment#1',
'path#0',
'path#1',
'position#0',
'prefix-from-QName#1',
'remove#2',
'replace#3',
'replace#4',
'resolve-QName#2',
'resolve-uri#1',
'resolve-uri#2',
'reverse#1',
'root#0',
'root#1',
'round#1',
'round#2',
'minutes-from-dateTime#1',
'minutes-from-duration#1',
'minutes-from-time#1',
'month-from-date#1',
'month-from-dateTime#1',
'months-from-duration#1',
'round-half-to-even#1',
'round-half-to-even#2',
'seconds-from-dateTime#1',
'seconds-from-duration#1',
'seconds-from-time#1',
'serialize#1',
'serialize#2',
'sort#1',
'sort#2',
'sort#3',
'tail#1',
'timezone-from-date#1',
'timezone-from-dateTime#1',
'timezone-from-time#1',
'adjust-date-to-timezone#1',
'adjust-date-to-timezone#2',
'adjust-dateTime-to-timezone#1',
'adjust-dateTime-to-timezone#2',
'adjust-time-to-timezone#1',
'adjust-time-to-timezone#2',
'tokenize#1',
'tokenize#2',
'tokenize#3',
'trace#1',
'trace#2',
'transform#1',
'translate#3',
'true#0',
'unordered#1',
'unparsed-text#1',
'unparsed-text#2',
'unparsed-text-available#1',
'unparsed-text-available#2',
'unparsed-text-lines#1',
'unparsed-text-lines#2',
'upper-case#1',
'uri-collection#0',
'uri-collection#1',
'xml-to-json#1',
'xml-to-json#2',
'year-from-date#1',
'year-from-dateTime#1',
'years-from-duration#1',
'random-number-generator#0',
'random-number-generator#1',
'zero-or-one#1',
'accumulator-after#1',
'accumulator-before#1',
'available-system-properties#0',
'copy-of#0',
'copy-of#1',
'current#0',
'current-group#0',
'current-grouping-key#0',
'current-merge-group#0',
'current-merge-group#1',
'current-merge-key#0',
'current-output-uri#0',
'document#1',
'document#2',
'element-available#1',
'function-available#1',
'function-available#2',
'key#2',
'key#3',
'permute#1',
'next#0',
'regex-group#1',
'snapshot#0',
'snapshot#1',
'stream-available#1',
'system-property#1',
'type-available#1',
'unparsed-entity-public-id#1',
'unparsed-entity-public-id#2',
'unparsed-entity-uri#1',
'unparsed-entity-uri#2',
]
public static readonly xpath40 = [
'all#2',
'characters#1',
'highest#1',
'highest#2',
'highest#3',
'identity#1',
'in-scope-namespace#1',
'index-where#2',
'is-NAN#1',
'items-after#2',
'items-before#2',
'items-from#2',
'items-until#2',
'lowest#1',
'lowest#2',
'lowest#3',
'parcel#1',
'parts#1',
'range#0',
'slice#4',
'some#2',
'unparcel#1',
].concat(FunctionData.xpath)
public static readonly array = [
'append#2',
'filter#2',
'flatten#1',
'fold-left#3',
'fold-right#3',
'for-each#2',
'for-each-pair#3',
'get#2',
'head#1',
'insert-before#3',
'join#1',
'put#3',
'remove#2',
'reverse#1',
'size#1',
'sort#1',
'sort#2',
'sort#3',
'subarray#2',
'subarray#3',
'tail#1',
]
public static readonly array40 = ['members#1', 'of#1'].concat(
FunctionData.array
)
public static readonly map = [
'contains#2',
'entry#2',
'find#2',
'for-each#2',
'get#2',
'keys#1',
'merge#1',
'merge#2',
'put#3',
'remove#2',
'size#1',
]
public static readonly map40 = ['entries#1'].concat(FunctionData.map)
public static readonly ixsl = [
'apply#2',
'call#3',
'contains#2',
'eval#1',
'event#0',
'get#2',
'location#0',
'page#0',
'query-params#0',
'source#2',
'style#0',
'style#1',
'window#0',
]
public static readonly math = [
'acos#1',
'asin#1',
'atan#1',
'atan2#2',
'cos#1',
'exp#1',
'exp10#1',
'log#1',
'log10#1',
'pi#0',
'pow#2',
'sin#1',
'sqrt#1',
'tan#1',
]
public static readonly schema = [
'string#1',
'boolean#1',
'integer#1',
'int#1',
'decimal#1',
'float#1',
'double#1',
'duration#1',
'dateTime#1',
'time#1',
'date#1',
'gYearMonth#1',
'gYear#1',
'gMonthDay#1',
'gDay#1',
'gMonth#1',
'hexBinary#1',
'base64Binary#1',
'anyURI#1',
'QName#1',
'normalizedString#1',
'token#1',
'language#1',
'NMTOKEN#1',
'Name#1',
'NCName#1',
'ID#1',
'IDREF#1',
'ENTITY#1',
'nonPositiveInteger#1',
'negativeInteger#1',
'long#1',
'short#1',
'byte#1',
'nonNegativeInteger#1',
'unsignedLong#1',
'unsignedInt#1',
'unsignedShort#1',
'unsignedByte#1',
'positiveInteger#1',
'yearMonthDuration#1',
'dayTimeDuration#1',
'untypedAtomic#1',
'dateTimeStamp#1',
]
public static readonly dfdl = [
'dfdl:contentLength#2',
'dfdl:valueLength#2',
'dfdl:testBit#2',
'dfdl:setBits#8',
'dfdl:occursIndex#0',
'dfdl:checkConstraints#1',
'dfdl:encodeDFDLEntities#1',
'dfdl:decodeDFDLEntities#1',
'dfdl:containsDFDLEntities#1',
'dfdl:timeZoneFromDateTime#1',
'dfdl:timeZoneFromDate#1',
'dfdl:timeZoneFromTime#1',
'dfdl:checkRangeInclusive#3',
'dfdl:checkRangeExclusive#3',
].concat(FunctionData.xpath)
private static unionSimpleTypes() {
const baseSimpleTypes = FunctionData.schema.map(
(t) => 'xs:' + t.substring(0, t.length - 2)
)
baseSimpleTypes.push('xs:numeric')
return baseSimpleTypes
}
public static readonly simpleTypes = FunctionData.unionSimpleTypes()
public static readonly namespaces = new Map([
['http://www.w3.org/2005/xpath-functions/array', XSLTnamespaces.Array],
['http://expath.org/ns/archive', XSLTnamespaces.ExpathArchive],
['http://expath.org/ns/binary', XSLTnamespaces.ExpathBinary],
['http://expath.org/ns/file', XSLTnamespaces.ExpathFile],
['http://www.w3.org/2005/xpath-functions/map', XSLTnamespaces.Map],
['http://www.w3.org/2005/xpath-functions/math', XSLTnamespaces.Math],
['http://saxon.sf.net/', XSLTnamespaces.Saxon],
['http://saxon.sf.net/sql', XSLTnamespaces.SQL],
['http://www.w3.org/2001/XMLSchema', XSLTnamespaces.XMLSchema],
['http://www.w3.org/2005/xpath-functions', XSLTnamespaces.XPath],
['http://www.w3.org/1999/XSL/Transform', XSLTnamespaces.XSLT],
['http://saxonica.com/ns/interactiveXSLT', XSLTnamespaces.IXSL],
['http://exslt.org/common', XSLTnamespaces.Exslt],
['http://exslt.org/math', XSLTnamespaces.ExsltMath],
['http://exslt.org/regular-expressions', XSLTnamespaces.ExsltRegex],
['http://exslt.org/sets', XSLTnamespaces.ExsltSets],
['http://exslt.org/strings', XSLTnamespaces.ExsltStrings],
])
public static readonly ixslEventName = [
'ixsl:onafterprint',
'ixsl:onbeforeprint',
'ixsl:onbeforeunload',
'ixsl:onerror',
'ixsl:onhashchange',
'ixsl:onload',
'ixsl:onmessage',
'ixsl:onoffline',
'ixsl:ononline',
'ixsl:onpagehide',
'ixsl:onpageshow',
'ixsl:onpopstate',
'ixsl:onresize',
'ixsl:onstorage',
'ixsl:onunload',
'ixsl:onblur',
'ixsl:onchange',
'ixsl:oncontextmenu',
'ixsl:onfocus',
'ixsl:oninput',
'ixsl:oninvalid',
'ixsl:onreset',
'ixsl:onsearch',
'ixsl:onselect',
'ixsl:onsubmit',
'ixsl:onkeydown',
'ixsl:onkeypress',
'ixsl:onkeyup',
'ixsl:onclick',
'ixsl:ondblclick',
'ixsl:onmousedown',
'ixsl:onmousemove',
'ixsl:onmouseout',
'ixsl:onmouseover',
'ixsl:onmouseup',
'ixsl:onmousewheel',
'ixsl:onwheel',
'ixsl:ondrag',
'ixsl:ondragend',
'ixsl:ondragenter',
'ixsl:ondragleave',
'ixsl:ondragover',
'ixsl:ondragstart',
'ixsl:ondrop',
'ixsl:onscroll',
'ixsl:oncopy',
'ixsl:oncut',
'ixsl:onpaste',
'ixsl:onabort',
'ixsl:oncanplay',
'ixsl:oncanplaythrough',
'ixsl:oncuechange',
'ixsl:ondurationchange',
'ixsl:onemptied',
'ixsl:onended',
'ixsl:onerror',
'ixsl:onloadeddata',
'ixsl:onloadedmetadata',
'ixsl:onloadstart',
'ixsl:onpause',
'ixsl:onplay',
'ixsl:onplaying',
'ixsl:onprogress',
'ixsl:onratechange',
'ixsl:onseeked',
'ixsl:onseeking',
'ixsl:onstalled',
'ixsl:onsuspend',
'ixsl:ontimeupdate',
'ixsl:onvolumechange',
'ixsl:onwaiting',
]
}