+++ /dev/null
-#######################
-# Standard namespaces #
-#######################
-
-namespace xsd = "http://www.w3c.org/xsd"
-namespace xs = "http://www.w3c.org/xs"
-namespace xml = "http://www.w3.org/xml"
-
-#############################
-# XML Schema wildcard types #
-#############################
-
-define type xs:AnyNumeric { xsd:decimal | xsd:integer | xsd:int | xsd:double | xsd:float }
-
-define type xs:AnyScalar { xsd:boolean |
- xsd:string |
- type xs:AnyNumeric |
- xsd:UnknownSimpleType }
-
-define type xs:AnySimpleType { type xs:AnyScalar* }
-define type xs:AnyAttribute { attribute * { type xs:AnySimpleType } }
-define type xs:AnyElement { element * { type xs:AnyContentModel } }
-define type xs:AnyContentModel { (type xs:AnyAttribute*, (type xs:AnySimpleType | (type xs:AnyElement |
-text)*)) }
-define type xs:AnyDocument { document { type xs:AnyElement } }
-
-#########################
-# XQuery Wildcard types #
-#########################
-define type xs:AnyNode { type xs:AnyElement | type xs:AnyAttribute | text }
-
-define type xs:AnyItem { type xs:AnyNode | type xs:AnyScalar }
-define type xs:AnyType { type xs:AnyItem* }
-
-
-######################
-# Standard functions #
-######################
-
-# data-model accessors.
-# F&O doc. Section 2
-
-define function signature local-name(type xs:AnyNode) returns (xsd:string)
-define function signature name(type xs:AnyNode) returns (xsd:string?)
-define function signature children(type xs:AnyNode) returns (type xs:AnyNode*)
-define function signature attributes(type xs:AnyElement) returns (type xs:AnyAttribute*)
-define function signature parent(type xs:AnyNode) returns (type xs:AnyElement?)
-define function signature data(type xs:AnyNode) returns (type xs:AnySimpleType)
-
-# F&O doc. Section 3.2
-define function signature decimal(xsd:string) returns (xsd:int)
-define function signature integer(xsd:string) returns (xsd:int)
-define function signature long(xsd:string) returns (xsd:int)
-define function signature int(xsd:string) returns (xsd:int)
-define function signature short(xsd:string) returns (xsd:int)
-define function signature byte(xsd:string) returns (xsd:int)
-define function signature float(xsd:string) returns (xsd:double)
-define function signature double(xsd:string) returns (xsd:double)
-
-# polymorphic arithmetic operations #
-# F&O doc, Section 3.3
-
-define function signature numeric-add(numeric, numeric) returns (numeric)
-define function signature numeric-subtract(numeric, numeric) returns (numeric)
-define function signature numeric-multiply(numeric, numeric) returns (numeric)
-define function signature numeric-divide(numeric, numeric) returns (numeric)
-define function signature numeric-mod(numeric, numeric) returns (numeric)
-
-define function signature numeric-unary-plus(numeric) returns (numeric)
-define function signature numeric-unary-minus(numeric) returns (numeric)
-
-# Galax's monomorphic arithmetic operations #
-
-# Caml's int
-define function signature int-add(xsd:int, xsd:int) returns (xsd:int)
-define function signature int-subtract(xsd:int, xsd:int) returns (xsd:int)
-define function signature int-multiply(xsd:int, xsd:int) returns (xsd:int)
-define function signature int-divide(xsd:int, xsd:int) returns (xsd:int)
-define function signature int-mod(xsd:int, xsd:int) returns (xsd:int)
-
-define function signature int-unary-plus(xsd:int) returns (xsd:int)
-define function signature int-unary-minus(xsd:int) returns (xsd:int)
-
-# xsd:decimal
-define function signature decimal-add(xsd:decimal, xsd:decimal) returns (xsd:decimal)
-define function signature decimal-subtract(xsd:decimal, xsd:decimal) returns (xsd:decimal)
-define function signature decimal-multiply(xsd:decimal, xsd:decimal) returns (xsd:decimal)
-define function signature decimal-divide(xsd:decimal, xsd:decimal) returns (xsd:decimal)
-define function signature decimal-mod(xsd:decimal, xsd:decimal) returns (xsd:decimal)
-
-define function signature decimal-unary-plus(xsd:decimal) returns (xsd:decimal)
-define function signature decimal-unary-minus(xsd:decimal) returns (xsd:decimal)
-
-# xsd:float
-define function signature float-add(xsd:float, xsd:float) returns (xsd:float)
-define function signature float-subtract(xsd:float, xsd:float) returns (xsd:float)
-define function signature float-multiply(xsd:float, xsd:float) returns (xsd:float)
-define function signature float-divide(xsd:float, xsd:float) returns (xsd:float)
-define function signature float-mod(xsd:float, xsd:float) returns (xsd:float)
-
-define function signature float-unary-plus(xsd:float) returns (xsd:float)
-define function signature float-unary-minus(xsd:float) returns (xsd:float)
-
-# xsd:double
-define function signature double-add(xsd:double, xsd:double) returns (xsd:double)
-define function signature double-subtract(xsd:double, xsd:double) returns (xsd:double)
-define function signature double-multiply(xsd:double, xsd:double) returns (xsd:double)
-define function signature double-divide(xsd:double, xsd:double) returns (xsd:double)
-define function signature double-mod(xsd:double, xsd:double) returns (xsd:double)
-
-define function signature double-unary-plus(xsd:double) returns (xsd:double)
-define function signature double-unary-minus(xsd:double) returns (xsd:double)
-
-# comparators #
-# F&O doc, Section 3.4
-define function signature nodeeq(type xs:AnyNode, type xs:AnyNode) returns (xsd:boolean)
-define function signature equal(type xs:AnyScalar, type xs:AnyScalar) returns (xsd:boolean)
-define function signature nequal(type xs:AnyScalar, type xs:AnyScalar) returns (xsd:boolean)
-define function signature ge(type xs:AnyScalar, type xs:AnyScalar) returns (xsd:boolean)
-define function signature le(type xs:AnyScalar, type xs:AnyScalar) returns (xsd:boolean)
-define function signature gt(type xs:AnyScalar, type xs:AnyScalar) returns (xsd:boolean)
-define function signature lt(type xs:AnyScalar, type xs:AnyScalar) returns (xsd:boolean)
-
-# F&O doc. Section 3.5
-define function signature floor(xsd:double) returns (xsd:int)
-define function signature ceiling(xsd:double) returns (xsd:int)
-define function signature round(xsd:double) returns (xsd:int)
-
-# functions on strings
-# F&O doc. Section 4.4
-define function signature concat(xsd:string, xsd:string) returns (xsd:string)
-define function signature starts-with(xsd:string, xsd:string) returns (xsd:boolean)
-define function signature ends-with(xsd:string, xsd:string) returns (xsd:boolean)
-define function signature contains(xsd:string, xsd:string) returns (xsd:boolean)
-define function signature substring(xsd:string, xsd:int, xsd:int) returns (xsd:string)
-define function signature string-length(xsd:string) returns (xsd:int)
-define function signature substring-before(xsd:string, xsd:string) returns (xsd:string)
-define function signature substring-after(xsd:string, xsd:string) returns (xsd:string)
-define function signature normalize-space(xsd:string) returns (xsd:string)
-define function signature normalize-unicode(xsd:string) returns (xsd:string)
-define function signature upper-case(xsd:string) returns (xsd:string)
-define function signature lower-case(xsd:string) returns (xsd:string)
-define function signature translate(xsd:string, xsd:string, xsd:string) returns (xsd:string)
-define function signature string-pad(xsd:string, xsd:int, xsd:string) returns (xsd:string)
-define function signature match(xsd:string, xsd:string) returns (xsd:int*)
-define function signature replace(xsd:string, xsd:string, xsd:string) returns (xsd:string)
-
-define function signature codepoint-contains(xsd:string, xsd:string) returns (xsd:boolean)
-define function signature codepoint-substring-before(xsd:string, xsd:string) returns (xsd:string)
-define function signature codepoint-substring-after(xsd:string, xsd:string) returns (xsd:string)
-
-# boolean operations #
-# F&O doc, Section 6.1
-define function signature true() returns (xsd:boolean)
-define function signature false() returns (xsd:boolean)
-
-# F&O doc, Section 6.2
-define function signature or(xsd:boolean, xsd:boolean) returns (xsd:boolean)
-define function signature and(xsd:boolean, xsd:boolean) returns (xsd:boolean)
-define function signature not(xsd:boolean) returns (xsd:boolean)
-
-# functions on sequences #
-# F&O doc, Section 13.2
-define function signature index-of(type xs:AnyNode*, type xs:AnyNode) returns (xsd:int)
-define function signature length(type xs:AnyType) returns (xsd:int)
-define function signature empty(type xs:AnyType) returns (xsd:boolean)
-define function signature distinct-values(type xs:AnyType) returns (type xs:AnyType)
-
-# aggregate functions #
-# F&O doc, Section 13.4
-define function signature avg-int(xsd:int*) returns (xsd:int)
-define function signature max-int(xsd:int*) returns (xsd:int?)
-define function signature min-int(xsd:int*) returns (xsd:int?)
-define function signature sum-int(xsd:int*) returns (xsd:int)
-
-define function signature avg-float(xsd:double*) returns (xsd:double)
-define function signature max-float(xsd:double*) returns (xsd:double?)
-define function signature min-float(xsd:double*) returns (xsd:double?)
-define function signature sum-float(xsd:double*) returns (xsd:double)
-
-define function signature count(type xs:AnyType) returns (xsd:int)
-
-# input-output operations #
-
-# The signature below is a hack : The output of document is declared
-# as the empty choice to avoid the need for explicit cast by the user
-# when loading the document - JS #
-
-# F&O doc, Section 13.5
-define function signature document(xsd:string) returns (type xs:AnyDocument)
-define function signature document-validate(xsd:string, xsd:string) returns (type xs:AnyDocument)
-