Packages

XQuery 3.1 Processor and XMl Database

Current section

Files

Jump to
xqerl src xqerl_error.erl
Raw

src/xqerl_error.erl

%% -------------------------------------------------------------------
%%
%% xqerl - XQuery processor
%%
%% Copyright (c) 2017-2020 Zachary N. Dean All Rights Reserved.
%%
%% This file is provided to you under the Apache License,
%% Version 2.0 (the "License"); you may not use this file
%% except in compliance with the License. You may obtain
%% a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing,
%% software distributed under the License is distributed on an
%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
%% KIND, either express or implied. See the License for the
%% specific language governing permissions and limitations
%% under the License.
%%
%% -------------------------------------------------------------------
%% @doc The "http://www.w3.org/2005/xqt-errors" namespace.
-module(xqerl_error).
%% ====================================================================
%% API functions
%% ====================================================================
-export([error/1]).
-export([error/2]).
-export([error/3]).
-include("xqerl.hrl").
-define(NS, <<"http://www.w3.org/2005/xqt-errors">>).
-define(PX, <<"err">>).
-dialyzer({[no_return], [error/1, error/2, error/3]}).
%% -record(xqError, {
%% name,
%% description,
%% value,
%% location % {Module, Line, Column} %TODO
%% }).
error(#xqError{} = Error) ->
Error;
error(#qname{} = Name) ->
Err = #xqError{
name = #xqAtomicValue{type = 'xs:QName', value = Name},
description = msg('FOER0000')
},
Err;
error(Code) when is_atom(Code) ->
Err = #xqError{
name = #xqAtomicValue{
type = 'xs:QName',
value = #qname{
namespace = ?NS,
prefix = ?PX,
local_name = atom_to_binary(Code, latin1)
}
},
description = msg(Code)
},
Err.
error(#qname{} = Name, Msg) ->
Err = #xqError{
name = #xqAtomicValue{type = 'xs:QName', value = Name},
description = Msg
},
Err;
error(#xqError{} = Err, {Module, Line}) ->
Err#xqError{location = {Module, Line, 0}};
error(Code, {Module, Line}) when is_atom(Code) ->
Err = #xqError{
name = #xqAtomicValue{
type = 'xs:QName',
value = #qname{
namespace = ?NS,
prefix = ?PX,
local_name = atom_to_binary(Code, latin1)
}
},
location = {Module, Line, 0},
description = msg(Code)
},
Err;
error(Code, Msg) ->
Err = #xqError{
name = #xqAtomicValue{
type = 'xs:QName',
value = #qname{
namespace = ?NS,
prefix = ?PX,
local_name = atom_to_binary(Code, latin1)
}
},
description = Msg
},
Err.
error(#qname{} = Name, Msg, Obj) ->
Err = #xqError{
name = #xqAtomicValue{type = 'xs:QName', value = Name},
description = Msg,
value = Obj
},
Err;
error(Code, Msg, Obj) when is_atom(Code), is_binary(Obj) ->
Err = #xqError{
name = #xqAtomicValue{
type = 'xs:QName',
value = #qname{
namespace = ?NS,
prefix = ?PX,
local_name =
atom_to_binary(Code, latin1)
}
},
description = Msg,
value = Obj
},
Err.
%% 2.1 Functions and Operators
msg('FOAP0001') ->
<<"Wrong number of arguments.">>;
msg('FOAR0001') ->
<<"Division by zero.">>;
msg('FOAR0002') ->
<<"Numeric operation overflow/underflow.">>;
msg('FOAY0001') ->
<<"Array index out of bounds.">>;
msg('FOAY0002') ->
<<"Negative array length.">>;
msg('FOCA0001') ->
<<"Input value too large for decimal.">>;
msg('FOCA0002') ->
<<"Invalid lexical value.">>;
msg('FOCA0003') ->
<<"Input value too large for integer.">>;
msg('FOCA0005') ->
<<"NaN supplied as float/double value.">>;
msg('FOCA0006') ->
<<"String to be cast to decimal has too many digits of precision.">>;
msg('FOCH0001') ->
<<"Codepoint not valid.">>;
msg('FOCH0002') ->
<<"Unsupported collation.">>;
msg('FOCH0003') ->
<<"Unsupported normalization form.">>;
msg('FOCH0004') ->
<<"Collation does not support collation units.">>;
msg('FODC0001') ->
<<"No context document.">>;
msg('FODC0002') ->
<<"Error retrieving resource.">>;
msg('FODC0003') ->
<<"Function not defined as deterministic.">>;
msg('FODC0004') ->
<<"Invalid collection URI.">>;
msg('FODC0005') ->
<<"Invalid argument to fn:doc or fn:doc-available.">>;
msg('FODC0006') ->
<<"String passed to fn:parse-xml is not a well-formed XML document.">>;
msg('FODC0010') ->
<<"The processor does not support serialization.">>;
msg('FODF1280') ->
<<"Invalid decimal format name.">>;
msg('FODF1310') ->
<<"Invalid decimal format picture string.">>;
msg('FODT0001') ->
<<"Overflow/underflow in date/time operation.">>;
msg('FODT0002') ->
<<"Overflow/underflow in duration operation.">>;
msg('FODT0003') ->
<<"Invalid timezone value.">>;
msg('FOER0000') ->
<<"Unidentified error.">>;
msg('FOFD1340') ->
<<"Invalid date/time formatting parameters.">>;
msg('FOFD1350') ->
<<"Invalid date/time formatting component.">>;
msg('FOJS0001') ->
<<"JSON syntax error.">>;
msg('FOJS0003') ->
<<"JSON duplicate keys.">>;
msg('FOJS0004') ->
<<"JSON: not schema-aware.">>;
msg('FOJS0005') ->
<<"Invalid options.">>;
msg('FOJS0006') ->
<<"Invalid XML representation of JSON.">>;
msg('FOJS0007') ->
<<"Bad JSON escape sequence.">>;
msg('FONS0004') ->
<<"No namespace found for prefix.">>;
msg('FONS0005') ->
<<"Base-uri not defined in the static context.">>;
msg('FOQM0001') ->
<<"Module URI is a zero-length string.">>;
msg('FOQM0002') ->
<<"Module URI not found.">>;
msg('FOQM0003') ->
<<"Static error in dynamically-loaded XQuery module.">>;
msg('FOQM0005') ->
<<"Parameter for dynamically-loaded XQuery module has incorrect type.">>;
msg('FOQM0006') ->
<<"No suitable XQuery processor available.">>;
msg('FORG0001') ->
<<"Invalid value for cast/constructor.">>;
msg('FORG0002') ->
<<"Invalid argument to fn:resolve-uri().">>;
msg('FORG0003') ->
<<"fn:zero-or-one called with a sequence containing more than one item.">>;
msg('FORG0004') ->
<<"fn:one-or-more called with a sequence containing no items.">>;
msg('FORG0005') ->
<<"fn:exactly-one called with a sequence containing zero or more than one item.">>;
msg('FORG0006') ->
<<"Invalid argument type.">>;
msg('FORG0008') ->
<<"The two arguments to fn:dateTime have inconsistent timezones.">>;
msg('FORG0009') ->
<<"Error in resolving a relative URI against a base URI in fn:resolve-uri.">>;
msg('FORG0010') ->
<<"Invalid date/time.">>;
msg('FORX0001') ->
<<"Invalid regular expression flags.">>;
msg('FORX0002') ->
<<"Invalid regular expression.">>;
msg('FORX0003') ->
<<"Regular expression matches zero-length string.">>;
msg('FORX0004') ->
<<"Invalid replacement string.">>;
msg('FOTY0012') ->
<<"Argument to fn:data() contains a node that does not have a typed value.">>;
msg('FOTY0013') ->
<<"The argument to fn:data() contains a function item.">>;
msg('FOTY0014') ->
<<"The argument to fn:string() is a function item.">>;
msg('FOTY0015') ->
<<"An argument to fn:deep-equal() contains a function item.">>;
msg('FOUP0001') ->
<<"It is a dynamic error if the first operand of fn:put is not a node of a supported kind.">>;
msg('FOUP0002') ->
<<
"It is a dynamic error if the second operand of fn:put is not a valid lexical "
"representation of the xs:anyURI type."
>>;
msg('FOUT1170') ->
<<"Invalid $href argument to fn:unparsed-text() (etc.)">>;
msg('FOUT1190') ->
<<"Cannot decode resource retrieved by fn:unparsed-text() (etc.)">>;
msg('FOUT1200') ->
<<"Cannot infer encoding of resource retrieved by fn:unparsed-text() (etc.)">>;
msg('FOXT0001') ->
<<"No suitable XSLT processor available">>;
msg('FOXT0002') ->
<<"Invalid parameters to XSLT transformation">>;
msg('FOXT0003') ->
<<"XSLT transformation failed">>;
msg('FOXT0004') ->
<<"XSLT transformation has been disabled">>;
msg('FOXT0006') ->
<<"XSLT output contains non-accepted characters">>;
%% 2.3 XQuery and XPath
msg('XPST0001') ->
<<
"It is a static error if analysis of an expression relies on some component of the static context that "
"has not been assigned a valueis ."
>>;
msg('XPDY0002') ->
<<
"It is a dynamic error if evaluation of an expression relies on some part of the dynamic context that "
"has not been assigned a valueis ."
>>;
msg('XPST0003') ->
<<"It is a static error if an expression is not a valid instance of the grammar defined in .">>;
msg('XPTY0004') ->
<<
"It is a type error if, during the static analysis phase, an expression is found to have a static type "
"that is not appropriate for the context in which the expression occurs, or during the dynamic evaluation "
"phase, the dynamic type of a value does not match a required type as specified by the matching rules in ."
>>;
msg('XPST0005') ->
<<
"During the analysis phase, it is a static error if the static type assigned to an expression other than "
"the expression () or data(()) is empty-sequence()."
>>;
msg('XPST0008') ->
<<
"It is a static error if an expression refers to an element name, attribute name, schema type name, "
"namespace prefix, or variable name that is not defined in the static context, except for an ElementName "
"in an ElementTest or an AttributeName in an AttributeTest."
>>;
msg('XQST0009') ->
<<
"An implementation that does not support the Schema Aware Feature must raise a static error if a "
"Prolog contains a schema import."
>>;
msg('XQST0012') ->
<<
"It is a static error if the set of definitions contained in all schemas imported by a Prolog "
"do not satisfy the conditions for schema validity specified in Sections 3 and 5 of Part 1 of or --i.e., "
"each definition must be valid, complete, and unique."
>>;
msg('XQST0013') ->
<<"It is a static error if an implementation recognizes a pragma but determines that its content is invalid.">>;
msg('XQST0016') ->
<<
"An implementation that does not support the Module Feature raises a static error if it encounters "
"a module declaration or a module import."
>>;
msg('XPST0017') ->
<<
"It is a static error if the expanded QName and number of arguments in a static function call do not"
" match the name and arity of a function signature in the static context."
>>;
msg('XPTY0018') ->
<<"It is a type error if the result of a path operator contains both nodes and non-nodes.">>;
msg('XPTY0019') ->
<<"It is a type error if E1 in a path expression E1/E2 does not evaluate to a sequence of nodes.">>;
msg('XPTY0020') ->
<<"It is a type error if, in an axis step, the context item is not a node.">>;
msg('XQST0022') ->
<<
"It is a static error if the value of a namespace declaration attribute is not a URILiteral.contains an "
"EnclosedExpr."
>>;
msg('XQTY0024') ->
<<
"It is a type error if the content sequence in an element constructor contains an attribute node following "
"a node that is not an attribute node."
>>;
msg('XQDY0025') ->
<<
"It is a dynamic error if any attribute of a constructed element does not have a name that is distinct from "
"the names of all other attributes of the constructed element."
>>;
msg('XQDY0026') ->
<<
"It is a dynamic error if the result of the content expression of a computed processing instruction constructor "
"contains the string \"?>\"."
>>;
msg('XQDY0027') ->
<<
"In a validate expression, it is a dynamic error if the root element information item in the PSVI resulting "
"from validation does not have the expected validity property: valid if validation mode is strict, or "
"either valid or notKnown if validation mode is lax."
>>;
msg('XQTY0030') ->
<<
"It is a type error if the argument of a validate expression does not evaluate to exactly one document or "
"element node."
>>;
msg('XQST0031') ->
<<
"It is a static error if the version number specified in a version declaration is not supported by the "
"implementation."
>>;
msg('XQST0032') ->
<<"A static error is raised if a Prolog contains more than one base URI declaration.">>;
msg('XQST0033') ->
<<"It is a static error if a module contains multiple bindings for the same namespace prefix.">>;
msg('XQST0034') ->
<<
"It is a static error if multiple functions declared or imported by a module have the same number of "
"arguments and their expanded QNames are equal (as defined by the eq operator)."
>>;
msg('XQST0035') ->
<<
"It is a static error to import two schema components that both define the same name in the same symbol "
"space and in the same scope."
>>;
msg('XQST0038') ->
<<
"It is a static error if a Prolog contains more than one default collation declaration, or the value "
"specified by a default collation declaration is not present in statically known collations."
>>;
msg('XQST0039') ->
<<
"It is a static error for a function declaration or an inline function expression to have more than one "
"parameter with the same name."
>>;
msg('XQST0040') ->
<<
"It is a static error if the attributes specified by a direct element constructor do not have distinct "
"expanded QNames."
>>;
msg('XQDY0041') ->
<<
"It is a dynamic error if the value of the name expression in a computed processing instruction constructor "
"cannot be cast to the type xs:NCName."
>>;
msg('XQDY0044') ->
<<
"It is a dynamic error the node-name of a node constructed by a computed attribute constructor has any of "
"the following properties: Its namespace prefix is xmlns. It has no namespace prefix and its local name "
"is xmlns. Its namespace URI is http://www.w3.org/2000/xmlns/. Its namespace prefix is xml and its "
"namespace URI is not http://www.w3.org/XML/1998/namespace. Its namespace prefix is other than xml and "
"its namespace URI is http://www.w3.org/XML/1998/namespace."
>>;
msg('XQST0045') ->
<<
"It is a static error if the name of a variable annotation, a function annotation, or the function name in "
"a function declaration is in a reserved namespace."
>>;
msg('XQST0046') ->
<<
"An implementation MAYMAY raise a static error if the value of a URILiteral or a BracedURILiteral is of "
"nonzero length and is not in the lexical space of xs:anyURIneither an absolute URI nor a relative URI."
>>;
msg('XQST0047') ->
<<"It is a static error if multiple module imports in the same Prolog specify the same target namespace.">>;
msg('XQST0048') ->
<<
"It is a static error if a function or variable declared in a library module is not in the target namespace "
"of the library module."
>>;
msg('XQST0049') ->
<<
"It is a static error if two or more variables declared or imported by a module have equal expanded QNames "
"(as defined by the eq operator.)"
>>;
msg('XPDY0050') ->
<<
"It is a dynamic error if the dynamic type of the operand of a treat expression does not match the sequence "
"type specified by the treat expression. This error might also be raised by a path expression beginning "
"with \"/\" or \"//\" if the context node is not in a tree that is rooted at a document node. This is "
"because a leading \"/\" or \"//\" in a path expression is an abbreviation for an initial step that includes "
"the clause treat as document-node()."
>>;
msg('XPST0051') ->
<<
"It is a static error if the expanded QName for an AtomicOrUnionType in a SequenceType is not defined in "
"the in-scope schema types as a generalized atomic type."
>>;
msg('XQST0052') ->
<<
"The type named in a cast or castable expression must be the name of a type defined in the in-scope schema "
"types, and the{variety} of the type must be simple."
>>;
msg('XQDY0054') ->
<<
"It is a dynamic error if a cycle is encountered in the definition of a module's dynamic context components, "
"for example because of a cycle in variable declarations."
>>;
msg('XQST0055') ->
<<"It is a static error if a Prolog contains more than one copy-namespaces declaration.">>;
msg('XQST0057') ->
<<
"It is a static error if a schema import binds a namespace prefix but does not specify a target namespace "
"other than a zero-length string."
>>;
msg('XQST0058') ->
<<"It is a static error if multiple schema imports specify the same target namespace.">>;
msg('XQST0059') ->
<<
"It is a static error if an implementation is unable to process a schema or module import by finding a "
"schema or module with the specified target namespace."
>>;
msg('XQST0060') ->
<<
"It is a static error if the name of a function in a function declaration is not in a namespace (expanded "
"QName has a null namespace URI)."
>>;
msg('XQDY0061') ->
<<
"It is a dynamic error if the operand of a validate expression is a document node whose children do not "
"consist of exactly one element node and zero or more comment and processing instruction nodes, in "
"any order."
>>;
msg('XQDY0064') ->
<<
"It is a dynamic error if the value of the name expression in a computed processing instruction constructor "
"is equal to \"XML\" (in any combination of upper and lower case)."
>>;
msg('XQST0065') ->
<<"A static error is raised if a Prolog contains more than one ordering mode declaration.">>;
msg('XQST0066') ->
<<
"A static error is raised if a Prolog contains more than one default element/type namespace declaration, or "
"more than one default function namespace declaration."
>>;
msg('XQST0067') ->
<<"A static error is raised if a Prolog contains more than one construction declaration.">>;
msg('XQST0068') ->
<<"A static error is raised if a Prolog contains more than one boundary-space declaration.">>;
msg('XQST0069') ->
<<"A static error is raised if a Prolog contains more than one empty order declaration.">>;
msg('XQST0070') ->
<<
"A static error is raised if one of the predefined prefixes xml or xmlns appears in a namespace declaration "
"or a default namespace declaration, or if any of the following conditions is statically detected in "
"any expression or declaration: A static error is raised if any of the following conditions is statically "
"detected in any expression: The prefix xml is bound to some namespace URI other than "
"http://www.w3.org/XML/1998/namespace. A prefix other than xml is bound to the namespace URI "
"http://www.w3.org/XML/1998/namespace. The prefix xmlns is bound to any namespace URI. A prefix "
"other than xmlns is bound to the namespace URI http://www.w3.org/2000/xmlns/."
>>;
msg('XQST0071') ->
<<
"A static error is raised if the namespace declaration attributes of a direct element constructor do not have "
"distinct names."
>>;
msg('XQDY0072') ->
<<
"It is a dynamic error if the result of the content expression of a computed comment constructor contains two "
"adjacent hyphens or ends with a hyphen."
>>;
msg('XQDY0074') ->
<<
"It is a dynamic error if the value of the name expression in a computed element or attribute constructor "
"cannot be converted to an expanded QName (for example, because it contains a namespace prefix not "
"found in statically known namespaces.)"
>>;
msg('XQST0075') ->
<<
"An implementation that does not support the Schema Aware Feature Validation Feature must raise a static error "
"if it encounters a validate expression."
>>;
msg('XQST0076') ->
<<
"It is a static error if a collation subclause in an order by or group by clause of a FLWOR expression does "
"not identify a collation that is present in statically known collations."
>>;
msg('XQST0079') ->
<<
"It is a static error if an extension expression contains neither a pragma that is recognized by the "
"implementation nor an expression enclosed in curly braces."
>>;
msg('XPST0080') ->
<<
"It is a static error if the target type of a cast or castable expression is xs:NOTATION, xs:anySimpleType, "
"or xs:anyAtomicType."
>>;
msg('XPST0081') ->
<<
"It is a static error if a QName used in a queryan expression contains a namespace prefix that cannot be "
"expanded into a namespace URI by using the statically known namespaces."
>>;
msg('XQDY0084') ->
<<
"It is a dynamic error if the element validated by a validate statement does not have a top-level element "
"declaration in the in-scope element declarations, if validation mode is strict."
>>;
msg('XQST0085') ->
<<
"It is a static error if the namespace URI in a namespace declaration attribute is a zero-length string, "
"and the implementation does not support ."
>>;
msg('XQTY0086') ->
<<
"It is a type error if the typed value of a copied element or attribute node is namespace-sensitive when "
"construction mode is preserve and copy-namespaces mode is no-preserve."
>>;
msg('XQST0087') ->
<<
"It is a static error if the encoding specified in a Version Declaration does not conform to the definition "
"of EncName specified in ."
>>;
msg('XQST0088') ->
<<
"It is a static error if the literal that specifies the target namespace in a module import or a module "
"declaration is of zero length."
>>;
msg('XQST0089') ->
<<
"It is a static error if a variable bound in a for or window clause of a FLWOR expression, and its "
"associated positional variable, do not have distinct names (expanded QNames)."
>>;
msg('XQST0090') ->
<<
"It is a static error if a character reference does not identify a valid character in the version of "
"XML that is in use."
>>;
msg('XQDY0091') ->
<<
"An implementation MAY raise a dynamic error if an xml:id error, as defined in , is encountered during "
"construction of an attribute named xml:id."
>>;
msg('XQDY0092') ->
<<
"An implementation MAY raise a dynamic error if a constructed attribute named xml:space has a value "
"other than preserve or default."
>>;
msg('XQST0094') ->
<<
"The name of each grouping variable must be equal (by the eq operator on expanded QNames) to the name "
"of a variable in the input tuple stream."
>>;
msg('XQDY0096') ->
<<
"It is a dynamic error if the node-name of a node constructed by a computed element constructor has any "
"of the following properties: Its namespace prefix is xmlns. Its namespace URI is "
"http://www.w3.org/2000/xmlns/. Its namespace prefix is xml and its namespace URI is not "
"http://www.w3.org/XML/1998/namespace. Its namespace prefix is other than xml and its namespace URI "
"is http://www.w3.org/XML/1998/namespace."
>>;
msg('XQST0097') ->
<<
"It is a static error for a decimal-format to specify a value that is not valid for a given property, "
"as described in statically known decimal formats"
>>;
msg('XQST0098') ->
<<
"It is a static error if, for any named or unnamed decimal format, the properties representing characters "
"used in a picture string do not each have distinct values. The following properties represent characters "
"used in a picture string: decimal-separator, exponent-separator, grouping-separator, percent, per-mille, "
"the family of ten decimal digits starting with zero-digit, digit, and pattern-separator."
>>;
msg('XQST0099') ->
<<
"A ContextItemDecl must not occur after an expression that relies on the initial context item, and no "
"queryNo module may contain more than one ContextItemDecl."
>>;
msg('XQDY0101') ->
<<
"An error is raised if a computed namespace constructor attempts to do any of the following: Bind the "
"prefix xml to some namespace URI other than http://www.w3.org/XML/1998/namespace. Bind a prefix other "
"than xml to the namespace URI http://www.w3.org/XML/1998/namespace. Bind the prefix xmlns to any "
"namespace URI. Bind a prefix to the namespace URI http://www.w3.org/2000/xmlns/. Bind any prefix "
"(including the empty prefix) to a zero-length namespace URI."
>>;
msg('XQDY0102') ->
<<
"In an element constructor, if two or more namespace bindings in the in-scope bindings would have the "
"same prefix, then an error is raised if they have different URIs; if they would have the same prefix "
"and URI, duplicate bindings are ignored. If the name of an element in an element constructor is in "
"no namespace, creating a default namespace for that element using a computed namespace constructor "
"is an error."
>>;
msg('XQST0103') ->
<<"All variables in a window clause must have distinct names.">>;
msg('XQST0104') ->
<<"A TypeName that is specified in a validate expression must be found in the in-scope schema definitions">>;
msg('XQTY0105') ->
<<"It is a type error if the content sequence in an element constructor contains a function item.">>;
msg('XQST0106') ->
<<
"It is a static error if a function declaration contains both a %private and a %public annotation. It "
"is a static error if a function's annotations contain more than one annotation named %private or %public,"
" more than one %private annotation, or more than one %public annotation. It is a static error if a "
"function's annotations contain more than one annotation named %deterministic or %nondeterministic."
>>;
msg('XQST0108') ->
<<"It is a static error if an output declaration occurs in a library module.">>;
msg('XQST0109') ->
<<
"It is a static error if the local name of an output declaration in the "
"http://www.w3.org/2010/xslt-xquery-serialization namespace is not one of the serialization parameter "
"names listed in , or if the name of an output declaration is use-character-maps."
>>;
msg('XQST0110') ->
<<"It is a static error if the same serialization parameter is used more than once in an output declaration.">>;
msg('XQST0111') ->
<<
"It is a static error for a query prolog to contain two decimal formats with the same name, or to contain "
"two default decimal formats."
>>;
msg('XQST0113') ->
<<
"Specifying a VarValue or VarDefaultValue for a context item declaration in a library module is a "
"static error."
>>;
msg('XQST0114') ->
<<"It is a static error for a decimal format declaration to define the same property more than once.">>;
msg('XQST0115') ->
<<
"It is a static error if the document specified by the option "
"\"http://www.w3.org/2010/xslt-xquery-serialization\":parameter-document raises a serialization error."
>>;
msg('XQST0116') ->
<<
"It is a static error if a variable declaration's annotations contain more than one annotation named "
"%private or %public. if a variable declaration contains both a %private and a %public annotation, "
"more than one %private annotation, or more than one %public annotation."
>>;
msg('XPTY0117') ->
<<
"When applying the function conversion rules, if an item is of type xs:untypedAtomic and the expected "
"type is namespace-sensitive, a type error is raised."
>>;
msg('XQST0118') ->
<<
"In a direct element constructor, the name used in the end tag must exactly match the name used in "
"the corresponding start tag, including its prefix or absence of a prefix."
>>;
msg('XQST0119') ->
<<
"It is a static error if the implementation is not able to process the value of an output:parameter-document "
"declaration to produce an XDM instance."
>>;
msg('XQST0125') ->
<<"It is a static error if an inline function expression is annotated as %public or %private.">>;
msg('XQST0129') ->
<<
"An implementation that does not provide the Higher-Order Function Feature MUST raise a static error "
"if it encounters a FunctionTest, dynamic function call, named function reference, inline function "
"expression, or partial function application."
>>;
msg('XPDY0130') ->
<<"An implementation-dependent limit has been exceeded.">>;
msg('XQST0134') ->
<<"The namespace axis is not supported.">>;
msg('XQDY0137') ->
<<"No two keys in a map may have the same key value.">>;
%% 2.4 Serialization
msg('SENR0001') ->
<<"It is an error if an item in S6 in sequence normalization is an attribute node or a namespace node.">>;
msg('SERE0003') ->
<<
"It is an error if the serializer is unable to satisfy the rules for either a well-formed XML document "
"entity or a well-formed XML external general parsed entity, or both, except for content modified by "
"the character expansion phase of serialization."
>>;
msg('SEPM0004') ->
<<
"It is an error to specify the doctype-system parameter, or to specify the standalone parameter with a "
"value other than omit, if the instance of the data model contains text nodes or multiple element "
"nodes as children of the root node."
>>;
msg('SERE0005') ->
<<
"It is an error if the serialized result would contain an NCName that contains a character that is not "
"permitted by the version of Namespaces in XML specified by the version parameter."
>>;
msg('SERE0006') ->
<<
"It is an error if the serialized result would contain a character that is not permitted by the version "
"of XML specified by the version parameter."
>>;
msg('SESU0007') ->
<<
"It is an error if an output encoding other than UTF-8 or UTF-16 is requested and the serializer does not "
"support that encoding."
>>;
msg('SERE0008') ->
<<
"It is an error if a character that cannot be represented in the encoding that the serializer is using "
"for output appears in a context where character references are not allowed (for example if the "
"character occurs in the name of an element)."
>>;
msg('SEPM0009') ->
<<
"It is an error if the omit-xml-declaration parameter has the value yes, true or 1, and the standalone "
"attribute has a value other than omit; or the version parameter has a value other than 1.0 and the "
"doctype-system parameter is specified."
>>;
msg('SEPM0010') ->
<<
"It is an error if the output method is xml or xhtml, the value of the undeclare-prefixes parameter is "
"one of, yes, true or 1, and the value of the version parameter is 1.0."
>>;
msg('SESU0011') ->
<<
"It is an error if the value of the normalization-form parameter specifies a normalization form that is "
"not supported by the serializer."
>>;
msg('SERE0012') ->
<<
"It is an error if the value of the normalization-form parameter is fully-normalized and any relevant "
"construct of the result begins with a combining character."
>>;
msg('SESU0013') ->
<<
"It is an error if the serializer does not support the version of XML or HTML specified by the version "
"parameter."
>>;
msg('SERE0014') ->
<<
"It is an error to use the HTML output method if characters which are permitted in XML but not in HTML "
"appear in the instance of the data model."
>>;
msg('SERE0015') ->
<<
"It is an error to use the HTML output method when > appears within a processing instruction in the data "
"model instance being serialized."
>>;
msg('SEPM0016') ->
<<"It is an error if a parameter value is invalid for the defined domain.">>;
msg('SEPM0017') ->
<<
"It is an error if evaluating an expression in order to extract the setting of a serialization parameter "
"from a data model instance would yield an error."
>>;
msg('SEPM0018') ->
<<
"It is an error if evaluating an expression in order to extract the setting of the use-character-maps "
"serialization parameter from a data model instance would yield a sequence of length greater than one."
>>;
msg('SEPM0019') ->
<<
"It is an error if an instance of the data model used to specify the settings of serialization parameters "
"specifies the value of the same parameter more than once."
>>;
msg('SERE0020') ->
<<
"It is an error if a numeric value being serialized using the JSON output method cannot be represented in "
"the JSON grammar (e.g. +INF, -INF, NaN)."
>>;
msg('SERE0021') ->
<<
"It is an error if a sequence being serialized using the JSON output method includes items for which no "
"rules are provided in the appropriate section of the serialization rules."
>>;
msg('SERE0022') ->
<<
"It is an error if a map being serialized using the JSON output method has two keys with the same string "
"value, unless the allow-duplicate-names has the value yes, true or 1."
>>;
msg('SERE0023') ->
<<"It is an error if a sequence being serialized using the JSON output method is of length greater than one.">>;
%% Update Facility
msg('XUST0001') ->
<<"It is a static error if an updating expression is used where the expression category rules prohibit it.">>;
msg('XUST0003') ->
<<"It is a static error if a Prolog contains more than one revalidation declaration.">>;
msg('XUTY0004') ->
<<
"It is a type error if the insertion sequence of an insert expression contains an attribute node "
"following a node that is not an attribute node."
>>;
msg('XUTY0005') ->
<<
"In an insert expression where into, as first into, or as last into is specified, it is a type error "
"if the target expression returns a non-empty result that does not consist of a single element or "
"document node."
>>;
msg('XUTY0006') ->
<<
"In an insert expression where before or after is specified, it is a type error if the target expression "
"returns a non-empty result that does not consist of a single element, text, comment, or processing "
"instruction node."
>>;
msg('XUTY0007') ->
<<
"It is a type error if the target expression of a delete expression does not return a sequence of zero "
"or more nodes."
>>;
msg('XUTY0008') ->
<<
"In a replace expression, it is a type error if the target expression returns a non-empty result that "
"does not consist of a single element, attribute, text, comment, or processing instruction node."
>>;
msg('XUDY0009') ->
<<
"In a replace expression where value of is not specified, it is a dynamic error if the node returned by "
"the target expression does not have a parent."
>>;
msg('XUTY0010') ->
<<
"In a replace expression where value of is not specified and the target is an element, text, comment, "
"or processing instruction node, it is a type error if the replacement sequence does not consist of "
"zero or more element, text, comment, or processing instruction nodes."
>>;
msg('XUTY0011') ->
<<
"In a replace expression where value of is not specified and the target is an attribute node, it is a "
"type error if the replacement sequence does not consist of zero or more attribute nodes."
>>;
msg('XUTY0012') ->
<<
"In a rename expression, it is a type error if the target expression returns a non-empty result that "
"does not consist of a single element, attribute, or processing instruction node."
>>;
msg('XUTY0013') ->
<<
"In a copy modify expression, it is a type error if a source expression in the copy clause does not "
"return a single node."
>>;
msg('XUDY0014') ->
<<
"In a copy modify expression, it is a dynamic error if the modify clause modifies any node that was not "
"created by the copy clause."
>>;
msg('XUDY0015') ->
<<"It is a dynamic error if any node is the target of more than one rename expression within the same query.">>;
msg('XUDY0016') ->
<<
"It is a dynamic error if any node is the target of more than one replace expression (without value of "
"being specified) within the same query."
>>;
msg('XUDY0017') ->
<<
"It is a dynamic error if any node is the target of more than one replace value of expression within "
"the same query."
>>;
msg('XUDY0018') ->
<<
"It is a dynamic error if a function that was declared to be external but not updating returns a non-empty "
"pending update list."
>>;
msg('XUDY0021') ->
<<
"It is a dynamic error if the XDM instance that would result from applying all the updates in a query "
"violates any constraint specified in [XQuery and XPath Data Model (XDM) 3.0]. In this case, none of "
"the updates in the query are made effective."
>>;
msg('XUTY0022') ->
<<"It is a type error if an insert expression specifies the insertion of an attribute node into a document node.">>;
msg('XUDY0023') ->
<<
"It is a dynamic error if an insert, replace, or rename expression affects an element node by introducing "
"a new namespace binding that conflicts with one of its existing namespace bindings."
>>;
msg('XUDY0024') ->
<<
"It is a dynamic error if the effect of a set of updating expressions is to introduce conflicting "
"namespace bindings into an element node."
>>;
msg('XUST0026') ->
<<
"It is a static error if a revalidation declaration in a Prolog specifies a revalidation mode that is not "
"supported by the current implementation."
>>;
msg('XUDY0027') ->
<<
"It is a dynamic error if the target expression of an insert, replace, or rename expression evaluates to "
"an empty sequence."
>>;
msg('XUDY0029') ->
<<
"In an insert expression where before or after is specified, it is a dynamic error if the node returned "
"by the target expression does not have a parent."
>>;
msg('XUDY0030') ->
<<
"It is a dynamic error if an insert expression specifies the insertion of an attribute node before or "
"after a child of a document node."
>>;
msg('XUDY0031') ->
<<
"It is a dynamic error if multiple calls to fn:put in the same snapshot specify the same URI (after resolution "
"of relative URIs)."
>>;
msg('XUST0032') ->
<<"It is a static error if an %updating or %simple annotation is used on a VarDecl.">>;
msg('XUST0033') ->
<<"It is a static error to use more than one %updating or %simple annotation in a given annotation set.">>;
msg('XUST0034') ->
<<
"It is a static error to use more than one updating function assertion in the function assertionXQ30 set of "
"a FunctionTest."
>>;
msg('XUDY0037') ->
<<
"It is a dynamic error if the pending update list returned by the modify expression of a CopyModifyExpr or "
"TransformWithExpr contains a upd:put update primitive."
>>;
msg('XUDY0038') ->
<<
"It is a dynamic error if the function returned by the PrimaryExpr of a dynamic function invocation is an "
"updating function, and the dynamic function invocation is not a partial function applicationXQ30."
>>;
msg(_Code) ->
<<"Doh!!">>.