source: trunk/src/xmlpatterns/environment/qreportcontext_p.h@ 780

Last change on this file since 780 was 651, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.2 sources.

File size: 94.2 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the QtXmlPatterns module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42//
43// W A R N I N G
44// -------------
45//
46// This file is not part of the Qt API. It exists purely as an
47// implementation detail. This header file may change from version to
48// version without notice, or even be removed.
49//
50// We mean it.
51
52#ifndef Patternist_ReportContext_H
53#define Patternist_ReportContext_H
54
55#include <QSharedData>
56#include <QAbstractUriResolver>
57#include <QSourceLocation>
58
59#include "qnamepool_p.h"
60#include "qxmlname.h"
61
62QT_BEGIN_HEADER
63
64QT_BEGIN_NAMESPACE
65
66class QAbstractMessageHandler;
67class QSourceLocation;
68class QString;
69
70namespace QPatternist
71{
72 class SourceLocationReflection;
73
74 /**
75 * @short A callback for reporting errors.
76 *
77 * ReportContext receives messages of various severity and type via its
78 * functions warning() and error(). In turn, ReportContext create Message instances
79 * and submit them to the QAbstractMessageHandler instance returned by messageHandler().
80 *
81 * The Message attributes are set as follows:
82 *
83 * - Message::description() - A translated, human-readable description
84 * - Message::type() - Message::Error if a static, dynamic or type error was encountered
85 * that halted compilation or evaluation, or Message::Warning in case of a warning
86 * - Message::identifier() - This is a URI consisting of the error namespace with the
87 * error code as fragment. For example, a Message representing a syntax error
88 * would return the type "http://www.w3.org/2005/xqt-errors#XPST0003". The convenience
89 * function codeFromURI() can be used to extract the error code. The error namespace
90 * is typically the namespace for XPath and XQuery errors(as in the previous example), but
91 * can also be user defined.
92 *
93 * @see <a href="http://www.w3.org/TR/xpath20/#id-identifying-errors">XML Path Language
94 * (XPath) 2.0, 2.3.2 Identifying and Reporting Errors</a>
95 * @see <a href="http://www.w3.org/TR/xpath-functions/#func-error">XQuery 1.0 and
96 * XPath 2.0 Functions and Operators, 3 The Error Function</a>
97 * @author Frans Englich <[email protected]>
98 * @warning This file is auto-generated from extractErrorCodes.xsl. Any
99 * modifications done to this file are lost.
100 */
101 class Q_AUTOTEST_EXPORT ReportContext : public QSharedData
102 {
103 public:
104 typedef QHash<const SourceLocationReflection *, QSourceLocation> LocationHash;
105
106 /**
107 * A smart pointer wrapping ReportContext instances.
108 */
109 typedef QExplicitlySharedDataPointer<ReportContext> Ptr;
110
111 /**
112 * @short Default constructors.
113 *
114 * For some reason GCC fails to synthesize it, so we provide an empty
115 * one here.
116 */
117 inline ReportContext() {}
118
119 virtual ~ReportContext();
120
121 /**
122 * Error codes that corresponds to the error codes defined in the
123 * relevant specifications. They are used throughout the API for
124 * identifying error conditions.
125 *
126 * While strings could have been used for identifying errors, enums
127 * reduces bugs by providing type safety.
128 *
129 * @see <a href="http://www.w3.org/TR/xpath20/#errors">XML
130 * Path Language (XPath) 2.0, 2.3 Error Handling</a>
131 * @see <a href="http://www.w3.org/TR/xpath-functions/#d1e10985">XQuery 1.0
132 * and XPath 2.0 Functions and Operators, C Error Summary</a>
133 * @see <a href="http://www.w3.org/TR/xslt20/#error-summary">XSL Transformations
134 * (XSLT) Version 2.0, E Summary of Error Conditions (Non-Normative)</a>
135 * @note The enumerator values' Doxygen documentation is copied from the
136 * W3C documents
137 * <a href="http://www.w3.org/TR/xpath-functions">XQuery 1.0 and XPath
138 * 2.0 Functions and Operators</a>,
139 * <a href="http://www.w3.org/TR/xpath20">XML Path Language (XPath) 2.0</a>, and
140 * <a href="http://www.w3.org/TR/xslt20/">XSL Transformations (XSLT)
141 * Version 2.0</a>, respectively. The doxygen documentation is therefore covered
142 * by the following legal notice:
143 * "Copyright @ 2005 W3C&reg; (MIT, ERCIM, Keio), All Rights Reserved. W3C
144 * <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
145 * <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
146 * <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
147 * use</a> rules apply."
148 * @warning This enumerator is auto-generated from the relevant specifications
149 * by the XSL-T stylesheet extractErrorCodes.xsl. Hence, any modifications
150 * done to this file, in contrary to the stylesheet, are therefore lost.
151 */
152 enum ErrorCode
153 {
154 /**
155 * XML Schema error code.
156 */
157 XSDError,
158
159 /**
160 * It is a static error if analysis of an expression relies on some
161 * component of the static context that has not been assigned a
162 * value.
163 */
164 XPST0001,
165
166 /**
167 * It is a dynamic error if evaluation of an expression relies on
168 * some part of the dynamic context that has not been assigned a
169 * value.
170 */
171 XPDY0002,
172
173 /**
174 * It is a static error if an expression is not a valid instance
175 * of the grammar defined in A.1 EBNF.
176 */
177 XPST0003,
178
179 /**
180 * It is a type error if, during the static analysis phase, an expression
181 * is found to have a static type that is not appropriate for the
182 * context in which the expression occurs, or during the dynamic
183 * evaluation phase, the dynamic type of a value does not match
184 * a required type as specified by the matching rules in 2.5.4 SequenceType
185 * Matching.
186 */
187 XPTY0004,
188
189 /**
190 * During the analysis phase, it is a static error if the static
191 * type assigned to an expression other than the expression () or
192 * data(()) is empty-sequence().
193 */
194 XPST0005,
195
196 /**
197 * (Not currently used.)
198 */
199 XPTY0006,
200
201 /**
202 * (Not currently used.)
203 */
204 XPTY0007,
205
206 /**
207 * It is a static error if an expression refers to an element name,
208 * attribute name, schema type name, namespace prefix, or variable
209 * name that is not defined in the static context, except for an
210 * ElementName in an ElementTest or an AttributeName in an AttributeTest.
211 */
212 XPST0008,
213
214 /**
215 * An implementation that does not support the Schema Import Feature
216 * must raise a static error if a Prolog contains a schema import.
217 */
218 XQST0009,
219
220 /**
221 * An implementation must raise a static error if it encounters
222 * a reference to an axis that it does not support.
223 */
224 XPST0010,
225
226 /**
227 * It is a static error if the set of definitions contained in all
228 * schemas imported by a Prolog do not satisfy the conditions for
229 * schema validity specified in Sections 3 and 5 of [XML Schema]
230 * Part 1--i.e., each definition must be valid, complete, and unique.
231 */
232 XQST0012,
233
234 /**
235 * It is a static error if an implementation recognizes a pragma
236 * but determines that its content is invalid.
237 */
238 XQST0013,
239
240 /**
241 * (Not currently used.)
242 */
243 XQST0014,
244
245 /**
246 * (Not currently used.)
247 */
248 XQST0015,
249
250 /**
251 * An implementation that does not support the Module Feature raises
252 * a static error if it encounters a module declaration or a module
253 * import.
254 */
255 XQST0016,
256
257 /**
258 * It is a static error if the expanded QName and number of arguments
259 * in a function call do not match the name and arity of a function
260 * signature in the static context.
261 */
262 XPST0017,
263
264 /**
265 * It is a type error if the result of the last step in a path expression
266 * contains both nodes and atomic values.
267 */
268 XPTY0018,
269
270 /**
271 * It is a type error if the result of a step (other than the last
272 * step) in a path expression contains an atomic value.
273 */
274 XPTY0019,
275
276 /**
277 * It is a type error if, in an axis step, the context item is not
278 * a node.
279 */
280 XPTY0020,
281
282 /**
283 * (Not currently used.)
284 */
285 XPDY0021,
286
287 /**
288 * It is a static error if the value of a namespace declaration
289 * attribute is not a URILiteral.
290 */
291 XQST0022,
292
293 /**
294 * (Not currently used.)
295 */
296 XQTY0023,
297
298 /**
299 * It is a type error if the content sequence in an element constructor
300 * contains an attribute node following a node that is not an attribute
301 * node.
302 */
303 XQTY0024,
304
305 /**
306 * It is a dynamic error if any attribute of a constructed element
307 * does not have a name that is distinct from the names of all other
308 * attributes of the constructed element.
309 */
310 XQDY0025,
311
312 /**
313 * It is a dynamic error if the result of the content expression
314 * of a computed processing instruction constructor contains the
315 * string "?&gt;".
316 */
317 XQDY0026,
318
319 /**
320 * In a validate expression, it is a dynamic error if the root element
321 * information item in the PSVI resulting from validation does not
322 * have the expected validity property: valid if validation mode
323 * is strict, or either valid or notKnown if validation mode is
324 * lax.
325 */
326 XQDY0027,
327
328 /**
329 * (Not currently used.)
330 */
331 XQTY0028,
332
333 /**
334 * (Not currently used.)
335 */
336 XQDY0029,
337
338 /**
339 * It is a type error if the argument of a validate expression does
340 * not evaluate to exactly one document or element node.
341 */
342 XQTY0030,
343
344 /**
345 * It is a static error if the version number specified in a version
346 * declaration is not supported by the implementation.
347 */
348 XQST0031,
349
350 /**
351 * A static error is raised if a Prolog contains more than one base
352 * URI declaration.
353 */
354 XQST0032,
355
356 /**
357 * It is a static error if a module contains multiple bindings for
358 * the same namespace prefix.
359 */
360 XQST0033,
361
362 /**
363 * It is a static error if multiple functions declared or imported
364 * by a module have the number of arguments and their expanded QNames
365 * are equal (as defined by the eq operator).
366 */
367 XQST0034,
368
369 /**
370 * It is a static error to import two schema components that both
371 * define the same name in the same symbol space and in the same
372 * scope.
373 */
374 XQST0035,
375
376 /**
377 * It is a static error to import a module if the importing module's
378 * in-scope schema types do not include definitions for the schema
379 * type names that appear in the declarations of variables and functions
380 * (whether in an argument type or return type) that are present
381 * in the imported module and are referenced in the importing module.
382 */
383 XQST0036,
384
385 /**
386 * (Not currently used.)
387 */
388 XQST0037,
389
390 /**
391 * It is a static error if a Prolog contains more than one default
392 * collation declaration, or the value specified by a default collation
393 * declaration is not present in statically known collations.
394 */
395 XQST0038,
396
397 /**
398 * It is a static error for a function declaration to have more
399 * than one parameter with the same name.
400 */
401 XQST0039,
402
403 /**
404 * It is a static error if the attributes specified by a direct
405 * element constructor do not have distinct expanded QNames.
406 */
407 XQST0040,
408
409 /**
410 * It is a dynamic error if the value of the name expression in
411 * a computed processing instruction constructor cannot be cast
412 * to the type xs:NCName.
413 */
414 XQDY0041,
415
416 /**
417 * (Not currently used.)
418 */
419 XQST0042,
420
421 /**
422 * (Not currently used.)
423 */
424 XQST0043,
425
426 /**
427 * It is a dynamic error if the node-name property of the node constructed
428 * by a computed attribute constructor is in the namespace http://www.w3.org/2000/xmlns/
429 * (corresponding to namespace prefix xmlns), or is in no namespace
430 * and has local name xmlns.
431 */
432 XQDY0044,
433
434 /**
435 * It is a static error if the function name in a function declaration
436 * is in one of the following namespaces: http://www.w3.org/XML/1998/namespace,
437 * http://www.w3.org/2001/XMLSchema, http://www.w3.org/2001/XMLSchema-instance,
438 * http://www.w3.org/2005/xpath-functions.
439 */
440 XQST0045,
441
442 /**
443 * An implementation MAY raise a static error if the value of a
444 * URILiteral is of nonzero length and is not in the lexical space
445 * of xs:anyURI.
446 */
447 XQST0046,
448
449 /**
450 * It is a static error if multiple module imports in the same Prolog
451 * specify the same target namespace.
452 */
453 XQST0047,
454
455 /**
456 * It is a static error if a function or variable declared in a
457 * library module is not in the target namespace of the library
458 * module.
459 */
460 XQST0048,
461
462 /**
463 * It is a static error if two or more variables declared or imported
464 * by a module have equal expanded QNames (as defined by the eq
465 * operator.)
466 */
467 XQST0049,
468
469 /**
470 * It is a dynamic error if the dynamic type of the operand of a
471 * treat expression does not match the sequence type specified by
472 * the treat expression. This error might also be raised by a path
473 * expression beginning with "/" or "//" if the context node is
474 * not in a tree that is rooted at a document node. This is because
475 * a leading "/" or "//" in a path expression is an abbreviation
476 * for an initial step that includes the clause treat as document-node().
477 */
478 XPDY0050,
479
480 /**
481 * It is a static error if a QName that is used as an AtomicType
482 * in a SequenceType is not defined in the in-scope schema types
483 * as an atomic type.
484 */
485 XPST0051,
486
487 /**
488 * (Not currently used.)
489 */
490 XQDY0052,
491
492 /**
493 * (Not currently used.)
494 */
495 XQST0053,
496
497 /**
498 * It is a static error if a variable depends on itself.
499 */
500 XQST0054,
501
502 /**
503 * It is a static error if a Prolog contains more than one copy-namespaces
504 * declaration.
505 */
506 XQST0055,
507
508 /**
509 * (Not currently used.)
510 */
511 XQST0056,
512
513 /**
514 * It is a static error if a schema import binds a namespace prefix
515 * but does not specify a target namespace other than a zero-length
516 * string.
517 */
518 XQST0057,
519
520 /**
521 * It is a static error if multiple schema imports specify the same
522 * target namespace.
523 */
524 XQST0058,
525
526 /**
527 * It is a static error if an implementation is unable to process
528 * a schema or module import by finding a schema or module with
529 * the specified target namespace.
530 */
531 XQST0059,
532
533 /**
534 * It is a static error if the name of a function in a function
535 * declaration is not in a namespace (expanded QName has a null
536 * namespace URI).
537 */
538 XQST0060,
539
540 /**
541 * It is a dynamic error if the operand of a validate expression
542 * is a document node whose children do not consist of exactly one
543 * element node and zero or more comment and processing instruction
544 * nodes, in any order.
545 */
546 XQDY0061,
547
548 /**
549 * (Not currently used.)
550 */
551 XQDY0062,
552
553 /**
554 * (Not currently used.)
555 */
556 XQST0063,
557
558 /**
559 * It is a dynamic error if the value of the name expression in
560 * a computed processing instruction constructor is equal to "XML"
561 * (in any combination of upper and lower case).
562 */
563 XQDY0064,
564
565 /**
566 * A static error is raised if a Prolog contains more than one ordering
567 * mode declaration.
568 */
569 XQST0065,
570
571 /**
572 * A static error is raised if a Prolog contains more than one default
573 * element/type namespace declaration, or more than one default
574 * function namespace declaration.
575 */
576 XQST0066,
577
578 /**
579 * A static error is raised if a Prolog contains more than one construction
580 * declaration.
581 */
582 XQST0067,
583
584 /**
585 * A static error is raised if a Prolog contains more than one boundary-space
586 * declaration.
587 */
588 XQST0068,
589
590 /**
591 * A static error is raised if a Prolog contains more than one empty
592 * order declaration.
593 */
594 XQST0069,
595
596 /**
597 * A static error is raised if a namespace URI is bound to the predefined
598 * prefix xmlns, or if a namespace URI other than http://www.w3.org/XML/1998/namespace
599 * is bound to the prefix xml, or if the prefix xml is bound to
600 * a namespace URI other than http://www.w3.org/XML/1998/namespace.
601 */
602 XQST0070,
603
604 /**
605 * A static error is raised if the namespace declaration attributes
606 * of a direct element constructor do not have distinct names.
607 */
608 XQST0071,
609
610 /**
611 * It is a dynamic error if the result of the content expression
612 * of a computed comment constructor contains two adjacent hyphens
613 * or ends with a hyphen.
614 */
615 XQDY0072,
616
617 /**
618 * It is a static error if the graph of module imports contains
619 * a cycle (that is, if there exists a sequence of modules M1 ...
620 * Mn such that each Mi imports Mi+1 and Mn imports M1), unless
621 * all the modules in the cycle share a common namespace.
622 */
623 XQST0073,
624
625 /**
626 * It is a dynamic error if the value of the name expression in
627 * a computed element or attribute constructor cannot be converted
628 * to an expanded QName (for example, because it contains a namespace
629 * prefix not found in statically known namespaces.)
630 */
631 XQDY0074,
632
633 /**
634 * An implementation that does not support the Validation Feature
635 * must raise a static error if it encounters a validate expression.
636 */
637 XQST0075,
638
639 /**
640 * It is a static error if a collation subclause in an order by
641 * clause of a FLWOR expression does not identify a collation that
642 * is present in statically known collations.
643 */
644 XQST0076,
645
646 /**
647 * (Not currently used.)
648 */
649 XQST0077,
650
651 /**
652 * (Not currently used.)
653 */
654 XQST0078,
655
656 /**
657 * It is a static error if an extension expression contains neither
658 * a pragma that is recognized by the implementation nor an expression
659 * enclosed in curly braces.
660 */
661 XQST0079,
662
663 /**
664 * It is a static error if the target type of a cast or castable
665 * expression is xs:NOTATION or xs:anyAtomicType.
666 */
667 XPST0080,
668
669 /**
670 * It is a static error if a QName used in a query contains a namespace
671 * prefix that cannot be expanded into a namespace URI by using
672 * the statically known namespaces.
673 */
674 XPST0081,
675
676 /**
677 * (Not currently used.)
678 */
679 XQST0082,
680
681 /**
682 * (Not currently used.)
683 */
684 XPST0083,
685
686 /**
687 * It is a dynamic error if the element validated by a validate
688 * statement does not have a top-level element declaration in the
689 * in-scope element declarations, if validation mode is strict.
690 */
691 XQDY0084,
692
693 /**
694 * It is a static error if the namespace URI in a namespace declaration
695 * attribute is a zero-length string, and the implementation does
696 * not support [XML Names 1.1].
697 */
698 XQST0085,
699
700 /**
701 * It is a type error if the typed value of a copied element or
702 * attribute node is namespace-sensitive when construction mode
703 * is preserve and copy-namespaces mode is no-preserve.
704 */
705 XQTY0086,
706
707 /**
708 * It is a static error if the encoding specified in a Version Declaration
709 * does not conform to the definition of EncName specified in [XML
710 * 1.0].
711 */
712 XQST0087,
713
714 /**
715 * It is a static error if the literal that specifies the target
716 * namespace in a module import or a module declaration is of zero
717 * length.
718 */
719 XQST0088,
720
721 /**
722 * It is a static error if a variable bound in a for clause of a
723 * FLWOR expression, and its associated positional variable, do
724 * not have distinct names (expanded QNames).
725 */
726 XQST0089,
727
728 /**
729 * It is a static error if a character reference does not identify
730 * a valid character in the version of XML that is in use.
731 */
732 XQST0090,
733
734 /**
735 * An implementation MAY raise a dynamic error if an xml:id error,
736 * as defined in [XML ID], is encountered during construction of
737 * an attribute named xml:id.
738 */
739 XQDY0091,
740
741 /**
742 * An implementation MAY raise a dynamic error if a constructed
743 * attribute named xml:space has a value other than preserve or
744 * default.
745 */
746 XQDY0092,
747
748 /**
749 * It is a static error to import a module M1 if there exists a
750 * sequence of modules M1 ... Mi ... M1 such that each module directly
751 * depends on the next module in the sequence (informally, if M1
752 * depends on itself through some chain of module dependencies.)
753 */
754 XQST0093,
755
756 /**
757 * Unidentified error.
758 */
759 FOER0000,
760
761 /**
762 * Division by zero.
763 */
764 FOAR0001,
765
766 /**
767 * Numeric operation overflow/underflow.
768 */
769 FOAR0002,
770
771 /**
772 * Input value too large for decimal.
773 */
774 FOCA0001,
775
776 /**
777 * Invalid lexical value.
778 */
779 FOCA0002,
780
781 /**
782 * Input value too large for integer.
783 */
784 FOCA0003,
785
786 /**
787 * NaN supplied as float/double value.
788 */
789 FOCA0005,
790
791 /**
792 * String to be cast to decimal has too many digits of precision.
793 */
794 FOCA0006,
795
796 /**
797 * Code point not valid.
798 */
799 FOCH0001,
800
801 /**
802 * Unsupported collation.
803 */
804 FOCH0002,
805
806 /**
807 * Unsupported normalization form.
808 */
809 FOCH0003,
810
811 /**
812 * Collation does not support collation units.
813 */
814 FOCH0004,
815
816 /**
817 * No context document.
818 */
819 FODC0001,
820
821 /**
822 * Error retrieving resource.
823 */
824 FODC0002,
825
826 /**
827 * Function stability not defined.
828 */
829 FODC0003,
830
831 /**
832 * Invalid argument to fn:collection.
833 */
834 FODC0004,
835
836 /**
837 * Invalid argument to fn:doc or fn:doc-available.
838 */
839 FODC0005,
840
841 /**
842 * Overflow/underflow in date/time operation.
843 */
844 FODT0001,
845
846 /**
847 * Overflow/underflow in duration operation.
848 */
849 FODT0002,
850
851 /**
852 * Invalid timezone value.
853 */
854 FODT0003,
855
856 /**
857 * No namespace found for prefix.
858 */
859 FONS0004,
860
861 /**
862 * Base-uri not defined in the static context.
863 */
864 FONS0005,
865
866 /**
867 * Invalid value for cast/constructor.
868 */
869 FORG0001,
870
871 /**
872 * Invalid argument to fn:resolve-uri().
873 */
874 FORG0002,
875
876 /**
877 * fn:zero-or-one called with a sequence containing more than one
878 * item.
879 */
880 FORG0003,
881
882 /**
883 * fn:one-or-more called with a sequence containing no items.
884 */
885 FORG0004,
886
887 /**
888 * fn:exactly-one called with a sequence containing zero or more
889 * than one item.
890 */
891 FORG0005,
892
893 /**
894 * Invalid argument type.
895 */
896 FORG0006,
897
898 /**
899 * Both arguments to fn:dateTime have a specified timezone.
900 */
901 FORG0008,
902
903 /**
904 * Error in resolving a relative URI against a base URI in fn:resolve-uri.
905 */
906 FORG0009,
907
908 /**
909 * Invalid regular expression. flags
910 */
911 FORX0001,
912
913 /**
914 * Invalid regular expression.
915 */
916 FORX0002,
917
918 /**
919 * Regular expression matches zero-length string.
920 */
921 FORX0003,
922
923 /**
924 * Invalid replacement string.
925 */
926 FORX0004,
927
928 /**
929 * Argument node does not have a typed value.
930 */
931 FOTY0012,
932
933 /**
934 * It is an error if an item in S6 in sequence normalization is
935 * an attribute node or a namespace node.
936 */
937 SENR0001,
938
939 /**
940 * It is an error if the serializer is unable to satisfy the rules
941 * for either a well-formed XML document entity or a well-formed
942 * XML external general parsed entity, or both, except for content
943 * modified by the character expansion phase of serialization.
944 */
945 SERE0003,
946
947 /**
948 * It is an error to specify the doctype-system parameter, or to
949 * specify the standalone parameter with a value other than omit,
950 * if the instance of the data model contains text nodes or multiple
951 * element nodes as children of the root node.
952 */
953 SEPM0004,
954
955 /**
956 * It is an error if the serialized result would contain an NCName
957 * Names that contains a character that is not permitted by the
958 * version of Namespaces in XML specified by the version parameter.
959 */
960 SERE0005,
961
962 /**
963 * It is an error if the serialized result would contain a character
964 * that is not permitted by the version of XML specified by the
965 * version parameter.
966 */
967 SERE0006,
968
969 /**
970 * It is an error if an output encoding other than UTF-8 or UTF-16
971 * is requested and the serializer does not support that encoding.
972 */
973 SESU0007,
974
975 /**
976 * It is an error if a character that cannot be represented in the
977 * encoding that the serializer is using for output appears in a
978 * context where character references are not allowed (for example
979 * if the character occurs in the name of an element).
980 */
981 SERE0008,
982
983 /**
984 * It is an error if the omit-xml-declaration parameter has the
985 * value yes, and the standalone attribute has a value other than
986 * omit; or the version parameter has a value other than 1.0 and
987 * the doctype-system parameter is specified.
988 */
989 SEPM0009,
990
991 /**
992 * It is an error if the output method is xml, the value of the
993 * undeclare-prefixes parameter is yes, and the value of the version
994 * parameter is 1.0.
995 */
996 SEPM0010,
997
998 /**
999 * It is an error if the value of the normalization-form parameter
1000 * specifies a normalization form that is not supported by the serializer.
1001 */
1002 SESU0011,
1003
1004 /**
1005 * It is an error if the value of the normalization-form parameter
1006 * is fully-normalized and any relevant construct of the result
1007 * begins with a combining character.
1008 */
1009 SERE0012,
1010
1011 /**
1012 * It is an error if the serializer does not support the version
1013 * of XML or HTML specified by the version parameter.
1014 */
1015 SESU0013,
1016
1017 /**
1018 * It is an error to use the HTML output method when characters
1019 * which are legal in XML but not in HTML, specifically the control
1020 * characters \#x7F-#x9F, appear in the instance of the data model.
1021 */
1022 SERE0014,
1023
1024 /**
1025 * It is an error to use the HTML output method when &gt; appears within
1026 * a processing instruction in the data model instance being serialized.
1027 */
1028 SERE0015,
1029
1030 /**
1031 * It is a an error if a parameter value is invalid for the defined
1032 * domain.
1033 */
1034 SEPM0016,
1035
1036 /**
1037 * A static error is signaled if an XSLT-defined element is used
1038 * in a context where it is not permitted, if a required attribute
1039 * is omitted, or if the content of the element does not correspond
1040 * to the content that is allowed for the element.
1041 */
1042 XTSE0010,
1043
1044 /**
1045 * It is a static error if an attribute (other than an attribute
1046 * written using curly brackets in a position where an attribute
1047 * value template is permitted) contains a value that is not one
1048 * of the permitted values for that attribute.
1049 */
1050 XTSE0020,
1051
1052 /**
1053 * It is a static error to use a reserved namespace in the name
1054 * of a named template, a mode, an attribute set, a key, a decimal-format,
1055 * a variable or parameter, a stylesheet function, a named output
1056 * definition, or a character map.
1057 */
1058 XTSE0080,
1059
1060 /**
1061 * It is a static error for an element from the XSLT namespace to
1062 * have an attribute whose namespace is either null (that is, an
1063 * attribute with an unprefixed name) or the XSLT namespace, other
1064 * than attributes defined for the element in this document.
1065 */
1066 XTSE0090,
1067
1068 /**
1069 * The value of the version attribute must be a number: specifically,
1070 * it must be a a valid instance of the type xs:decimal as defined
1071 * in [XML Schema Part 2].
1072 */
1073 XTSE0110,
1074
1075 /**
1076 * An xsl:stylesheet element must not have any text node children.
1077 */
1078 XTSE0120,
1079
1080 /**
1081 * It is a static error if the value of an [xsl:]default-collation
1082 * attribute, after resolving against the base URI, contains no
1083 * URI that the implementation recognizes as a collation URI.
1084 */
1085 XTSE0125,
1086
1087 /**
1088 * It is a static error if the xsl:stylesheet element has a child
1089 * element whose name has a null namespace URI.
1090 */
1091 XTSE0130,
1092
1093 /**
1094 * A literal result element that is used as the outermost element
1095 * of a simplified stylesheet module must have an xsl:version attribute.
1096 */
1097 XTSE0150,
1098
1099 /**
1100 * It is a static error if the processor is not able to retrieve
1101 * the resource identified by the URI reference [ in the href attribute
1102 * of xsl:include or xsl:import] , or if the resource that is retrieved
1103 * does not contain a stylesheet module conforming to this specification.
1104 */
1105 XTSE0165,
1106
1107 /**
1108 * An xsl:include element must be a top-level element.
1109 */
1110 XTSE0170,
1111
1112 /**
1113 * It is a static error if a stylesheet module directly or indirectly
1114 * includes itself.
1115 */
1116 XTSE0180,
1117
1118 /**
1119 * An xsl:import element must be a top-level element.
1120 */
1121 XTSE0190,
1122
1123 /**
1124 * The xsl:import element children must precede all other element
1125 * children of an xsl:stylesheet element, including any xsl:include
1126 * element children and any user-defined data elements.
1127 */
1128 XTSE0200,
1129
1130 /**
1131 * It is a static error if a stylesheet module directly or indirectly
1132 * imports itself.
1133 */
1134 XTSE0210,
1135
1136 /**
1137 * It is a static error if an xsl:import-schema element that contains
1138 * an xs:schema element has a schema-location attribute, or if it
1139 * has a namespace attribute that conflicts with the target namespace
1140 * of the contained schema.
1141 */
1142 XTSE0215,
1143
1144 /**
1145 * It is a static error if the synthetic schema document does not
1146 * satisfy the constraints described in [XML Schema Part 1] (section
1147 * 5.1, Errors in Schema Construction and Structure). This includes,
1148 * without loss of generality, conflicts such as multiple definitions
1149 * of the same name.
1150 */
1151 XTSE0220,
1152
1153 /**
1154 * Within an XSLT element that is required to be empty, any content
1155 * other than comments or processing instructions, including any
1156 * whitespace text node preserved using the xml:space="preserve"
1157 * attribute, is a static error.
1158 */
1159 XTSE0260,
1160
1161 /**
1162 * It is a static error if there is a stylesheet module in the stylesheet
1163 * that specifies input-type-annotations="strip" and another stylesheet
1164 * module that specifies input-type-annotations="preserve".
1165 */
1166 XTSE0265,
1167
1168 /**
1169 * In the case of a prefixed QName used as the value of an attribute
1170 * in the stylesheet, or appearing within an XPath expression in
1171 * the stylesheet, it is a static error if the defining element
1172 * has no namespace node whose name matches the prefix of the QName.
1173 */
1174 XTSE0280,
1175
1176 /**
1177 * Where an attribute is defined to contain a pattern, it is a static
1178 * error if the pattern does not match the production Pattern.
1179 */
1180 XTSE0340,
1181
1182 /**
1183 * It is a static error if an unescaped left curly bracket appears
1184 * in a fixed part of an attribute value template without a matching
1185 * right curly bracket.
1186 */
1187 XTSE0350,
1188
1189 /**
1190 * It is a static error if an unescaped right curly bracket occurs
1191 * in a fixed part of an attribute value template.
1192 */
1193 XTSE0370,
1194
1195 /**
1196 * An xsl:template element must have either a match attribute or
1197 * a name attribute, or both. An xsl:template element that has no
1198 * match attribute must have no mode attribute and no priority attribute.
1199 */
1200 XTSE0500,
1201
1202 /**
1203 * The value of this attribute [the priority attribute of the xsl:template
1204 * element] must conform to the rules for the xs:decimal type defined
1205 * in [XML Schema Part 2]. Negative values are permitted..
1206 */
1207 XTSE0530,
1208
1209 /**
1210 * It is a static error if the list [of modes in the mode attribute
1211 * of xsl:template] is empty, if the same token is included more
1212 * than once in the list, if the list contains an invalid token,
1213 * or if the token \#all appears together with any other value.
1214 */
1215 XTSE0550,
1216
1217 /**
1218 * It is a static error if two parameters of a template or of a
1219 * stylesheet function have the same name.
1220 */
1221 XTSE0580,
1222
1223 /**
1224 * It is a static error if a variable-binding element has a select
1225 * attribute and has non-empty content.
1226 */
1227 XTSE0620,
1228
1229 /**
1230 * It is a static error if a stylesheet contains more than one binding
1231 * of a global variable with the same name and same import precedence,
1232 * unless it also contains another binding with the same name and
1233 * higher import precedence.
1234 */
1235 XTSE0630,
1236
1237 /**
1238 * It is a static error if a stylesheet contains an xsl:call-template
1239 * instruction whose name attribute does not match the name attribute
1240 * of any xsl:template in the stylesheet.
1241 */
1242 XTSE0650,
1243
1244 /**
1245 * It is a static error if a stylesheet contains more than one template
1246 * with the same name and the same import precedence, unless it
1247 * also contains a template with the same name and higher import
1248 * precedence.
1249 */
1250 XTSE0660,
1251
1252 /**
1253 * It is a static error if a single xsl:call-template, xsl:apply-templates,
1254 * xsl:apply-imports, or xsl:next-match element contains two or
1255 * more xsl:with-param elements with matching name attributes.
1256 */
1257 XTSE0670,
1258
1259 /**
1260 * In the case of xsl:call-template, it is a static error to pass
1261 * a non-tunnel parameter named x to a template that does not have
1262 * a template parameter named x, unless backwards compatible behavior
1263 * is enabled for the xsl:call-template instruction.
1264 */
1265 XTSE0680,
1266
1267 /**
1268 * It is a static error if a template that is invoked using xsl:call-template
1269 * declares a template parameter specifying required="yes" and not
1270 * specifying tunnel="yes", if no value for this parameter is supplied
1271 * by the calling instruction.
1272 */
1273 XTSE0690,
1274
1275 /**
1276 * It is a static error if the value of the use-attribute-sets attribute
1277 * of an xsl:copy, xsl:element, or xsl:attribute-set element, or
1278 * the xsl:use-attribute-sets attribute of a literal result element,
1279 * is not a whitespace-separated sequence of QNames, or if it contains
1280 * a QName that does not match the name attribute of any xsl:attribute-set
1281 * declaration in the stylesheet.
1282 */
1283 XTSE0710,
1284
1285 /**
1286 * It is a static error if an xsl:attribute-set element directly
1287 * or indirectly references itself via the names contained in the
1288 * use-attribute-sets attribute.
1289 */
1290 XTSE0720,
1291
1292 /**
1293 * A stylesheet function must have a prefixed name, to remove any
1294 * risk of a clash with a function in the default function namespace.
1295 * It is a static error if the name has no prefix.
1296 */
1297 XTSE0740,
1298
1299 /**
1300 * Because arguments to a stylesheet function call must all be specified,
1301 * the xsl:param elements within an xsl:function element must not
1302 * specify a default value: this means they must be empty, and must
1303 * not have a select attribute.
1304 */
1305 XTSE0760,
1306
1307 /**
1308 * It is a static error for a stylesheet to contain two or more
1309 * functions with the same expanded-QName, the same arity, and the
1310 * same import precedence, unless there is another function with
1311 * the same expanded-QName and arity, and a higher import precedence.
1312 */
1313 XTSE0770,
1314
1315 /**
1316 * It is a static error if an attribute on a literal result element
1317 * is in the XSLT namespace, unless it is one of the attributes
1318 * explicitly defined in this specification.
1319 */
1320 XTSE0805,
1321
1322 /**
1323 * It is a static error if a namespace prefix is used within the
1324 * [xsl:]exclude-result-prefixes attribute and there is no namespace
1325 * binding in scope for that prefix.
1326 */
1327 XTSE0808,
1328
1329 /**
1330 * It is a static error if the value \#default is used within the
1331 * [xsl:]exclude-result-prefixes attribute and the parent element
1332 * of the [xsl:]exclude-result-prefixes attribute has no default
1333 * namespace.
1334 */
1335 XTSE0809,
1336
1337 /**
1338 * It is a static error if there is more than one such declaration
1339 * [more than one xsl:namespace-alias declaration] with the same
1340 * literal namespace URI and the same import precedence and different
1341 * values for the target namespace URI, unless there is also an
1342 * xsl:namespace-alias declaration with the same literal namespace
1343 * URI and a higher import precedence.
1344 */
1345 XTSE0810,
1346
1347 /**
1348 * It is a static error if a value other than \#default is specified
1349 * for either the stylesheet-prefix or the result-prefix attributes
1350 * of the xsl:namespace-alias element when there is no in-scope
1351 * binding for that namespace prefix.
1352 */
1353 XTSE0812,
1354
1355 /**
1356 * It is a static error if the select attribute of the xsl:attribute
1357 * element is present unless the element has empty content.
1358 */
1359 XTSE0840,
1360
1361 /**
1362 * It is a static error if the select attribute of the xsl:value-of
1363 * element is present when the content of the element is non-empty,
1364 * or if the select attribute is absent when the content is empty.
1365 */
1366 XTSE0870,
1367
1368 /**
1369 * It is a static error if the select attribute of the xsl:processing-instruction
1370 * element is present unless the element has empty content.
1371 */
1372 XTSE0880,
1373
1374 /**
1375 * It is a static error if the select attribute of the xsl:namespace
1376 * element is present when the element has content other than one
1377 * or more xsl:fallback instructions, or if the select attribute
1378 * is absent when the element has empty content.
1379 */
1380 XTSE0910,
1381
1382 /**
1383 * It is a static error if the select attribute of the xsl:comment
1384 * element is present unless the element has empty content.
1385 */
1386 XTSE0940,
1387
1388 /**
1389 * It is a type error to use the xsl:copy or xsl:copy-of instruction
1390 * to copy a node that has namespace-sensitive content if the copy-namespaces
1391 * attribute has the value no and its explicit or implicit validation
1392 * attribute has the value preserve. It is also a type error if
1393 * either of these instructions (with validation="preserve") is
1394 * used to copy an attribute having namespace-sensitive content,
1395 * unless the parent element is also copied. A node has namespace-sensitive
1396 * content if its typed value contains an item of type xs:QName
1397 * or xs:NOTATION or a type derived therefrom. The reason this is
1398 * an error is because the validity of the content depends on the
1399 * namespace context being preserved.
1400 */
1401 XTTE0950,
1402
1403 /**
1404 * It is a static error if the value attribute of xsl:number is
1405 * present unless the select, level, count, and from attributes
1406 * are all absent.
1407 */
1408 XTSE0975,
1409
1410 /**
1411 * It is a static error if an xsl:sort element with a select attribute
1412 * has non-empty content.
1413 */
1414 XTSE1015,
1415
1416 /**
1417 * It is a static error if an xsl:sort element other than the first
1418 * in a sequence of sibling xsl:sort elements has a stable attribute.
1419 */
1420 XTSE1017,
1421
1422 /**
1423 * It is a static error if an xsl:perform-sort instruction with
1424 * a select attribute has any content other than xsl:sort and xsl:fallback
1425 * instructions.
1426 */
1427 XTSE1040,
1428
1429 /**
1430 * It is a static error if the current-group function is used within
1431 * a pattern.
1432 */
1433 XTSE1060,
1434
1435 /**
1436 * It is a static error if the current-grouping-key function is
1437 * used within a pattern.
1438 */
1439 XTSE1070,
1440
1441 /**
1442 * These four attributes [the group-by, group-adjacent, group-starting-with,
1443 * and group-ending-with attributes of xsl:for-each-group ] are
1444 * mutually exclusive: it is a static error if none of these four
1445 * attributes is present, or if more than one of them is present.
1446 */
1447 XTSE1080,
1448
1449 /**
1450 * It is an error to specify the collation attribute if neither
1451 * the group-by attribute nor group-adjacent attribute is specified.
1452 */
1453 XTSE1090,
1454
1455 /**
1456 * It is a static error if the xsl:analyze-string instruction contains
1457 * neither an xsl:matching-substring nor an xsl:non-matching-substring
1458 * element.
1459 */
1460 XTSE1130,
1461
1462 /**
1463 * It is a static error if an xsl:key declaration has a use attribute
1464 * and has non-empty content, or if it has empty content and no
1465 * use attribute.
1466 */
1467 XTSE1205,
1468
1469 /**
1470 * It is a static error if the xsl:key declaration has a collation
1471 * attribute whose value (after resolving against the base URI)
1472 * is not a URI recognized by the implementation as referring to
1473 * a collation.
1474 */
1475 XTSE1210,
1476
1477 /**
1478 * It is a static error if there are several xsl:key declarations
1479 * in the stylesheet with the same key name and different effective
1480 * collations. Two collations are the same if their URIs are equal
1481 * under the rules for comparing xs:anyURI values, or if the implementation
1482 * can determine that they are different URIs referring to the same
1483 * collation.
1484 */
1485 XTSE1220,
1486
1487 /**
1488 * It is a static error if a named or unnamed decimal format contains
1489 * two conflicting values for the same attribute in different xsl:decimal-format
1490 * declarations having the same import precedence, unless there
1491 * is another definition of the same attribute with higher import
1492 * precedence.
1493 */
1494 XTSE1290,
1495
1496 /**
1497 * It is a static error if the character specified in the zero-digit
1498 * attribute is not a digit or is a digit that does not have the
1499 * numeric value zero.
1500 */
1501 XTSE1295,
1502
1503 /**
1504 * It is a static error if, for any named or unnamed decimal format,
1505 * the variables representing characters used in a picture string
1506 * do not each have distinct values. These variables are decimal-separator-sign,
1507 * grouping-sign, percent-sign, per-mille-sign, digit-zero-sign,
1508 * digit-sign, and pattern-separator-sign.
1509 */
1510 XTSE1300,
1511
1512 /**
1513 * It is a static error if there is no namespace bound to the prefix
1514 * on the element bearing the [xsl:]extension-element-prefixes attribute
1515 * or, when \#default is specified, if there is no default namespace.
1516 */
1517 XTSE1430,
1518
1519 /**
1520 * It is a static error if both the [xsl:]type and [xsl:]validation
1521 * attributes are present on the xsl:element, xsl:attribute, xsl:copy,
1522 * xsl:copy-of, xsl:document, or xsl:result-document instructions,
1523 * or on a literal result element.
1524 */
1525 XTSE1505,
1526
1527 /**
1528 * It is a static error if the value of the type attribute of an
1529 * xsl:element, xsl:attribute, xsl:copy, xsl:copy-of, xsl:document,
1530 * or xsl:result-document instruction, or the xsl:type attribute
1531 * of a literal result element, is not a valid QName, or if it uses
1532 * a prefix that is not defined in an in-scope namespace declaration,
1533 * or if the QName is not the name of a type definition included
1534 * in the in-scope schema components for the stylesheet.
1535 */
1536 XTSE1520,
1537
1538 /**
1539 * It is a static error if the value of the type attribute of an
1540 * xsl:attribute instruction refers to a complex type definition
1541 */
1542 XTSE1530,
1543
1544 /**
1545 * It is a static error if two xsl:output declarations within an
1546 * output definition specify explicit values for the same attribute
1547 * (other than cdata-section-elements and use-character-maps), with
1548 * the values of the attributes being not equal, unless there is
1549 * another xsl:output declaration within the same output definition
1550 * that has higher import precedence and that specifies an explicit
1551 * value for the same attribute.
1552 */
1553 XTSE1560,
1554
1555 /**
1556 * The value [of the method attribute on xsl:output ] must (if present)
1557 * be a valid QName. If the QName does not have a prefix, then it
1558 * identifies a method specified in [XSLT and XQuery Serialization]
1559 * and must be one of xml, html, xhtml, or text.
1560 */
1561 XTSE1570,
1562
1563 /**
1564 * It is a static error if the stylesheet contains two or more character
1565 * maps with the same name and the same import precedence, unless
1566 * it also contains another character map with the same name and
1567 * higher import precedence.
1568 */
1569 XTSE1580,
1570
1571 /**
1572 * It is a static error if a name in the use-character-maps attribute
1573 * of the xsl:output or xsl:character-map elements does not match
1574 * the name attribute of any xsl:character-map in the stylesheet.
1575 */
1576 XTSE1590,
1577
1578 /**
1579 * It is a static error if a character map references itself, directly
1580 * or indirectly, via a name in the use-character-maps attribute.
1581 */
1582 XTSE1600,
1583
1584 /**
1585 * A basic XSLT processor must signal a static error if the stylesheet
1586 * includes an xsl:import-schema declaration.
1587 */
1588 XTSE1650,
1589
1590 /**
1591 * A basic XSLT processor must signal a static error if the stylesheet
1592 * includes an [xsl:]type attribute, or an [xsl:]validation or default-validation
1593 * attribute with a value other than strip.
1594 */
1595 XTSE1660,
1596
1597 /**
1598 * It is a type error if the result of evaluating the sequence constructor
1599 * cannot be converted to the required type.
1600 */
1601 XTTE0505,
1602
1603 /**
1604 * It is a type error if an xsl:apply-templates instruction with
1605 * no select attribute is evaluated when the context item is not
1606 * a node.
1607 */
1608 XTTE0510,
1609
1610 /**
1611 * It is a type error if the sequence returned by the select expression
1612 * [of xsl:apply-templates] contains an item that is not a node.
1613 */
1614 XTTE0520,
1615
1616 /**
1617 * It is a type error if the supplied value of a variable cannot
1618 * be converted to the required type.
1619 */
1620 XTTE0570,
1621
1622 /**
1623 * It is a type error if the conversion of the supplied value of
1624 * a parameter to its required type fails.
1625 */
1626 XTTE0590,
1627
1628 /**
1629 * If a default value is given explicitly, that is, if there is
1630 * either a select attribute or a non-empty sequence constructor,
1631 * then it is a type error if the default value cannot be converted
1632 * to the required type, using the function conversion rules.
1633 */
1634 XTTE0600,
1635
1636 /**
1637 * If the as attribute [of xsl:function ] is specified, then the
1638 * result evaluated by the sequence constructor (see 5.7 Sequence
1639 * Constructors) is converted to the required type, using the function
1640 * conversion rules. It is a type error if this conversion fails.
1641 */
1642 XTTE0780,
1643
1644 /**
1645 * If the value of a parameter to a stylesheet function cannot be
1646 * converted to the required type, a type error is signaled.
1647 */
1648 XTTE0790,
1649
1650 /**
1651 * It is a type error if the xsl:number instruction is evaluated,
1652 * with no value or select attribute, when the context item is not
1653 * a node.
1654 */
1655 XTTE0990,
1656
1657 /**
1658 * It is a type error if the result of evaluating the select attribute
1659 * of the xsl:number instruction is anything other than a single
1660 * node.
1661 */
1662 XTTE1000,
1663
1664 /**
1665 * If any sort key value, after atomization and any type conversion
1666 * required by the data-type attribute, is a sequence containing
1667 * more than one item, then the effect depends on whether the xsl:sort
1668 * element is evaluated with backwards compatible behavior. With
1669 * backwards compatible behavior, the effective sort key value is
1670 * the first item in the sequence. In other cases, this is a type
1671 * error.
1672 */
1673 XTTE1020,
1674
1675 /**
1676 * It is a type error if the grouping key evaluated using the group-adjacent
1677 * attribute is an empty sequence, or a sequence containing more
1678 * than one item.
1679 */
1680 XTTE1100,
1681
1682 /**
1683 * When the group-starting-with or group-ending-with attribute [of
1684 * the xsl:for-each-group instruction] is used, it is a type error
1685 * if the result of evaluating the select expression contains an
1686 * item that is not a node.
1687 */
1688 XTTE1120,
1689
1690 /**
1691 * If the validation attribute of an xsl:element, xsl:attribute,
1692 * xsl:copy, xsl:copy-of, or xsl:result-document instruction, or
1693 * the xsl:validation attribute of a literal result element, has
1694 * the effective value strict, and schema validity assessment concludes
1695 * that the validity of the element or attribute is invalid or unknown,
1696 * a type error occurs. As with other type errors, the error may
1697 * be signaled statically if it can be detected statically.
1698 */
1699 XTTE1510,
1700
1701 /**
1702 * If the validation attribute of an xsl:element, xsl:attribute,
1703 * xsl:copy, xsl:copy-of, or xsl:result-document instruction, or
1704 * the xsl:validation attribute of a literal result element, has
1705 * the effective value strict, and there is no matching top-level
1706 * declaration in the schema, then a type error occurs. As with
1707 * other type errors, the error may be signaled statically if it
1708 * can be detected statically.
1709 */
1710 XTTE1512,
1711
1712 /**
1713 * If the validation attribute of an xsl:element, xsl:attribute,
1714 * xsl:copy, xsl:copy-of, or xsl:result-document instruction, or
1715 * the xsl:validation attribute of a literal result element, has
1716 * the effective value lax, and schema validity assessment concludes
1717 * that the element or attribute is invalid, a type error occurs.
1718 * As with other type errors, the error may be signaled statically
1719 * if it can be detected statically.
1720 */
1721 XTTE1515,
1722
1723 /**
1724 * It is a type error if an [xsl:]type attribute is defined for
1725 * a constructed element or attribute, and the outcome of schema
1726 * validity assessment against that type is that the validity property
1727 * of that element or attribute information item is other than valid.
1728 */
1729 XTTE1540,
1730
1731 /**
1732 * A type error occurs if a type or validation attribute is defined
1733 * (explicitly or implicitly) for an instruction that constructs
1734 * a new attribute node, if the effect of this is to cause the attribute
1735 * value to be validated against a type that is derived from, or
1736 * constructed by list or union from, the primitive types xs:QName
1737 * or xs:NOTATION.
1738 */
1739 XTTE1545,
1740
1741 /**
1742 * A type error occurs [when a document node is validated] unless
1743 * the children of the document node comprise exactly one element
1744 * node, no text nodes, and zero or more comment and processing
1745 * instruction nodes, in any order.
1746 */
1747 XTTE1550,
1748
1749 /**
1750 * It is a type error if, when validating a document node, document-level
1751 * constraints are not satisfied. These constraints include identity
1752 * constraints (xs:unique, xs:key, and xs:keyref) and ID/IDREF constraints.
1753 */
1754 XTTE1555,
1755
1756 /**
1757 * It is a non-recoverable dynamic error if the effective value
1758 * of an attribute written using curly brackets, in a position where
1759 * an attribute value template is permitted, is a value that is
1760 * not one of the permitted values for that attribute. If the processor
1761 * is able to detect the error statically (for example, when any
1762 * XPath expressions within the curly brackets can be evaluated
1763 * statically), then the processor may optionally signal this as
1764 * a static error.
1765 */
1766 XTDE0030,
1767
1768 /**
1769 * It is a non-recoverable dynamic error if the invocation of the
1770 * stylesheet specifies a template name that does not match the
1771 * expanded-QName of a named template defined in the stylesheet.
1772 */
1773 XTDE0040,
1774
1775 /**
1776 * It is a non-recoverable dynamic error if the invocation of the
1777 * stylesheet specifies an initial mode (other than the default
1778 * mode) that does not match the expanded-QName in the mode attribute
1779 * of any template defined in the stylesheet.
1780 */
1781 XTDE0045,
1782
1783 /**
1784 * It is a non-recoverable dynamic error if the invocation of the
1785 * stylesheet specifies both an initial mode and an initial template.
1786 */
1787 XTDE0047,
1788
1789 /**
1790 * It is a non-recoverable dynamic error if the stylesheet that
1791 * is invoked declares a visible stylesheet parameter with required="yes"
1792 * and no value for this parameter is supplied during the invocation
1793 * of the stylesheet. A stylesheet parameter is visible if it is
1794 * not masked by another global variable or parameter with the same
1795 * name and higher import precedence.
1796 */
1797 XTDE0050,
1798
1799 /**
1800 * It is a non-recoverable dynamic error if the initial template
1801 * defines a template parameter that specifies required="yes".
1802 */
1803 XTDE0060,
1804
1805 /**
1806 * If an implementation does not support backwards-compatible behavior,
1807 * then it is a non-recoverable dynamic error if any element is
1808 * evaluated that enables backwards-compatible behavior.
1809 */
1810 XTDE0160,
1811
1812 /**
1813 * It is a recoverable dynamic error if this [the process of finding
1814 * an xsl:strip-space or xsl:preserve-space declaration to match
1815 * an element in the source document] leaves more than one match,
1816 * unless all the matched declarations are equivalent (that is,
1817 * they are all xsl:strip-space or they are all xsl:preserve-space).
1818 * Action: The optional recovery action is to select, from the matches
1819 * that are left, the one that occurs last in declaration order.
1820 */
1821 XTRE0270,
1822
1823 /**
1824 * Where the result of evaluating an XPath expression (or an attribute
1825 * value template) is required to be a lexical QName, then unless
1826 * otherwise specified it is a non-recoverable dynamic error if
1827 * the defining element has no namespace node whose name matches
1828 * the prefix of the lexical QName. This error may be signaled as
1829 * a static error if the value of the expression can be determined
1830 * statically.
1831 */
1832 XTDE0290,
1833
1834 /**
1835 * It is a non-recoverable dynamic error if the result sequence
1836 * used to construct the content of an element node contains a namespace
1837 * node or attribute node that is preceded in the sequence by a
1838 * node that is neither a namespace node nor an attribute node.
1839 */
1840 XTDE0410,
1841
1842 /**
1843 * It is a non-recoverable dynamic error if the result sequence
1844 * used to construct the content of a document node contains a namespace
1845 * node or attribute node.
1846 */
1847 XTDE0420,
1848
1849 /**
1850 * It is a non-recoverable dynamic error if the result sequence
1851 * contains two or more namespace nodes having the same name but
1852 * different string values (that is, namespace nodes that map the
1853 * same prefix to different namespace URIs).
1854 */
1855 XTDE0430,
1856
1857 /**
1858 * It is a non-recoverable dynamic error if the result sequence
1859 * contains a namespace node with no name and the element node being
1860 * constructed has a null namespace URI (that is, it is an error
1861 * to define a default namespace when the element is in no namespace).
1862 */
1863 XTDE0440,
1864
1865 /**
1866 * It is a non-recoverable dynamic error if namespace fixup is performed
1867 * on an element that contains among the typed values of the element
1868 * and its attributes two values of type xs:QName or xs:NOTATION
1869 * containing conflicting namespace prefixes, that is, two values
1870 * that use the same prefix to refer to different namespace URIs.
1871 */
1872 XTDE0485,
1873
1874 /**
1875 * It is a recoverable dynamic error if the conflict resolution
1876 * algorithm for template rules leaves more than one matching template
1877 * rule. Action: The optional recovery action is to select, from
1878 * the matching template rules that are left, the one that occurs
1879 * last in declaration order.
1880 */
1881 XTRE0540,
1882
1883 /**
1884 * It is a non-recoverable dynamic error if xsl:apply-imports or
1885 * xsl:next-match is evaluated when the current template rule is
1886 * null.
1887 */
1888 XTDE0560,
1889
1890 /**
1891 * If an optional parameter has no select attribute and has an empty
1892 * sequence constructor, and if there is an as attribute, then the
1893 * default value of the parameter is an empty sequence. If the empty
1894 * sequence is not a valid instance of the required type defined
1895 * in the as attribute, then the parameter is treated as a required
1896 * parameter, which means that it is a non-recoverable dynamic error
1897 * if the caller supplies no value for the parameter.
1898 */
1899 XTDE0610,
1900
1901 /**
1902 * In general, a circularity in a stylesheet is a non-recoverable
1903 * dynamic error.
1904 */
1905 XTDE0640,
1906
1907 /**
1908 * In other cases, [with xsl:apply-templates, xsl:apply-imports,
1909 * and xsl:next-match, or xsl:call-template with tunnel parameters]
1910 * it is a non-recoverable dynamic error if the template that is
1911 * invoked declares a template parameter with required="yes" and
1912 * no value for this parameter is supplied by the calling instruction.
1913 */
1914 XTDE0700,
1915
1916 /**
1917 * It is a recoverable dynamic error if the name of a constructed
1918 * attribute is xml:space and the value is not either default or
1919 * preserve. Action: The optional recovery action is to construct
1920 * the attribute with the value as requested.
1921 */
1922 XTRE0795,
1923
1924 /**
1925 * It is a non-recoverable dynamic error if the effective value
1926 * of the name attribute [of the xsl:element instruction] is not
1927 * a lexical QName.
1928 */
1929 XTDE0820,
1930
1931 /**
1932 * In the case of an xsl:element instruction with no namespace attribute,
1933 * it is a non-recoverable dynamic error if the effective value
1934 * of the name attribute is a QName whose prefix is not declared
1935 * in an in-scope namespace declaration for the xsl:element instruction.
1936 */
1937 XTDE0830,
1938
1939 /**
1940 * It is a non-recoverable dynamic error if the effective value
1941 * of the namespace attribute [of the xsl:element instruction] is
1942 * not in the lexical space of the xs:anyURI data type.
1943 */
1944 XTDE0835,
1945
1946 /**
1947 * It is a non-recoverable dynamic error if the effective value
1948 * of the name attribute [of an xsl:attribute instruction] is not
1949 * a lexical QName.
1950 */
1951 XTDE0850,
1952
1953 /**
1954 * In the case of an xsl:attribute instruction with no namespace
1955 * attribute, it is a non-recoverable dynamic error if the effective
1956 * value of the name attribute is the string xmlns.
1957 */
1958 XTDE0855,
1959
1960 /**
1961 * In the case of an xsl:attribute instruction with no namespace
1962 * attribute, it is a non-recoverable dynamic error if the effective
1963 * value of the name attribute is a lexical QName whose prefix is
1964 * not declared in an in-scope namespace declaration for the xsl:attribute
1965 * instruction.
1966 */
1967 XTDE0860,
1968
1969 /**
1970 * It is a non-recoverable dynamic error if the effective value
1971 * of the namespace attribute [of the xsl:attribute instruction]
1972 * is not in the lexical space of the xs:anyURI data type.
1973 */
1974 XTDE0865,
1975
1976 /**
1977 * It is a non-recoverable dynamic error if the effective value
1978 * of the name attribute [of the xsl:processing-instruction instruction]
1979 * is not both an NCName Names and a PITarget XML.
1980 */
1981 XTDE0890,
1982
1983 /**
1984 * It is a non-recoverable dynamic error if the string value of
1985 * the new namespace node [created using xsl:namespace] is not valid
1986 * in the lexical space of the data type xs:anyURI. [see ERR XTDE0835]
1987 */
1988 XTDE0905,
1989
1990 /**
1991 * It is a non-recoverable dynamic error if the effective value
1992 * of the name attribute [of the xsl:namespace instruction] is neither
1993 * a zero-length string nor an NCName Names, or if it is xmlns.
1994 */
1995 XTDE0920,
1996
1997 /**
1998 * It is a non-recoverable dynamic error if the xsl:namespace instruction
1999 * generates a namespace node whose name is xml and whose string
2000 * value is not http://www.w3.org/XML/1998/namespace, or a namespace
2001 * node whose string value is http://www.w3.org/XML/1998/namespace
2002 * and whose name is not xml.
2003 */
2004 XTDE0925,
2005
2006 /**
2007 * It is a non-recoverable dynamic error if evaluating the select
2008 * attribute or the contained sequence constructor of an xsl:namespace
2009 * instruction results in a zero-length string.
2010 */
2011 XTDE0930,
2012
2013 /**
2014 * It is a non-recoverable dynamic error if any undiscarded item
2015 * in the atomized sequence supplied as the value of the value attribute
2016 * of xsl:number cannot be converted to an integer, or if the resulting
2017 * integer is less than 0 (zero).
2018 */
2019 XTDE0980,
2020
2021 /**
2022 * It is a non-recoverable dynamic error if, for any sort key component,
2023 * the set of sort key values evaluated for all the items in the
2024 * initial sequence, after any type conversion requested, contains
2025 * a pair of ordinary values for which the result of the XPath lt
2026 * operator is an error.
2027 */
2028 XTDE1030,
2029
2030 /**
2031 * It is a non-recoverable dynamic error if the collation attribute
2032 * of xsl:sort (after resolving against the base URI) is not a URI
2033 * that is recognized by the implementation as referring to a collation.
2034 */
2035 XTDE1035,
2036
2037 /**
2038 * It is a non-recoverable dynamic error if the collation URI specified
2039 * to xsl:for-each-group (after resolving against the base URI)
2040 * is a collation that is not recognized by the implementation.
2041 * (For notes, [see ERR XTDE1035].)
2042 */
2043 XTDE1110,
2044
2045 /**
2046 * It is a non-recoverable dynamic error if the effective value
2047 * of the regex attribute [of the xsl:analyze-string instruction]
2048 * does not conform to the required syntax for regular expressions,
2049 * as specified in [Functions and Operators]. If the regular expression
2050 * is known statically (for example, if the attribute does not contain
2051 * any expressions enclosed in curly brackets) then the processor
2052 * may signal the error as a static error.
2053 */
2054 XTDE1140,
2055
2056 /**
2057 * It is a non-recoverable dynamic error if the effective value
2058 * of the flags attribute [of the xsl:analyze-string instruction]
2059 * has a value other than the values defined in [Functions and Operators].
2060 * If the value of the attribute is known statically (for example,
2061 * if the attribute does not contain any expressions enclosed in
2062 * curly brackets) then the processor may signal the error as a
2063 * static error.
2064 */
2065 XTDE1145,
2066
2067 /**
2068 * It is a non-recoverable dynamic error if the effective value
2069 * of the regex attribute [of the xsl:analyze-string instruction]
2070 * is a regular expression that matches a zero-length string: or
2071 * more specifically, if the regular expression $r and flags $f
2072 * are such that matches("", $r, $f) returns true. If the regular
2073 * expression is known statically (for example, if the attribute
2074 * does not contain any expressions enclosed in curly brackets)
2075 * then the processor may signal the error as a static error.
2076 */
2077 XTDE1150,
2078
2079 /**
2080 * When a URI reference [supplied to the document function] contains
2081 * a fragment identifier, it is a recoverable dynamic error if the
2082 * media type is not one that is recognized by the processor, or
2083 * if the fragment identifier does not conform to the rules for
2084 * fragment identifiers for that media type, or if the fragment
2085 * identifier selects something other than a sequence of nodes (for
2086 * example, if it selects a range of characters within a text node).
2087 * Action: The optional recovery action is to ignore the fragment
2088 * identifier and return the document node.
2089 */
2090 XTRE1160,
2091
2092 /**
2093 * It is a non-recoverable dynamic error if a URI [supplied in the
2094 * first argument to the unparsed-text function] contains a fragment
2095 * identifier, or if it cannot be used to retrieve a resource containing
2096 * text.
2097 */
2098 XTDE1170,
2099
2100 /**
2101 * It is a non-recoverable dynamic error if a resource [retrieved
2102 * using the unparsed-text function] contains octets that cannot
2103 * be decoded into Unicode characters using the specified encoding,
2104 * or if the resulting characters are not permitted XML characters.
2105 * This includes the case where the processor does not support the
2106 * requested encoding.
2107 */
2108 XTDE1190,
2109
2110 /**
2111 * It is a non-recoverable dynamic error if the second argument
2112 * of the unparsed-text function is omitted and the processor cannot
2113 * infer the encoding using external information and the encoding
2114 * is not UTF-8.
2115 */
2116 XTDE1200,
2117
2118 /**
2119 * It is a non-recoverable dynamic error if the value [of the first
2120 * argument to the key function] is not a valid QName, or if there
2121 * is no namespace declaration in scope for the prefix of the QName,
2122 * or if the name obtained by expanding the QName is not the same
2123 * as the expanded name of any xsl:key declaration in the stylesheet.
2124 * If the processor is able to detect the error statically (for
2125 * example, when the argument is supplied as a string literal),
2126 * then the processor may optionally signal this as a static error.
2127 */
2128 XTDE1260,
2129
2130 /**
2131 * It is a non-recoverable dynamic error to call the key function
2132 * with two arguments if there is no context node, or if the root
2133 * of the tree containing the context node is not a document node;
2134 * or to call the function with three arguments if the root of the
2135 * tree containing the node supplied in the third argument is not
2136 * a document node.
2137 */
2138 XTDE1270,
2139
2140 /**
2141 * It is a non-recoverable dynamic error if the name specified as
2142 * the $decimal-format-name argument [ to the format-number function]
2143 * is not a valid QName, or if its prefix has not been declared
2144 * in an in-scope namespace declaration, or if the stylesheet does
2145 * not contain a declaration of a decimal-format with a matching
2146 * expanded-QName. If the processor is able to detect the error
2147 * statically (for example, when the argument is supplied as a string
2148 * literal), then the processor may optionally signal this as a
2149 * static error.
2150 */
2151 XTDE1280,
2152
2153 /**
2154 * The picture string [supplied to the format-number function] must
2155 * conform to the following rules. [ See full specification.] It
2156 * is a non-recoverable dynamic error if the picture string does
2157 * not satisfy these rules.
2158 */
2159 XTDE1310,
2160
2161 /**
2162 * It is a non-recoverable dynamic error if the syntax of the picture
2163 * [used for date/time formatting] is incorrect.
2164 */
2165 XTDE1340,
2166
2167 /**
2168 * It is a non-recoverable dynamic error if a component specifier
2169 * within the picture [used for date/time formatting] refers to
2170 * components that are not available in the given type of $value,
2171 * for example if the picture supplied to the format-time refers
2172 * to the year, month, or day component.
2173 */
2174 XTDE1350,
2175
2176 /**
2177 * If the current function is evaluated within an expression that
2178 * is evaluated when the context item is undefined, a non-recoverable
2179 * dynamic error occurs.
2180 */
2181 XTDE1360,
2182
2183 /**
2184 * It is a non-recoverable dynamic error if the unparsed-entity-uri
2185 * function is called when there is no context node, or when the
2186 * root of the tree containing the context node is not a document
2187 * node.
2188 */
2189 XTDE1370,
2190
2191 /**
2192 * It is a non-recoverable dynamic error if the unparsed-entity-public-id
2193 * function is called when there is no context node, or when the
2194 * root of the tree containing the context node is not a document
2195 * node.
2196 */
2197 XTDE1380,
2198
2199 /**
2200 * It is a non-recoverable dynamic error if the value [supplied
2201 * as the $property-name argument to the system-property function]
2202 * is not a valid QName, or if there is no namespace declaration
2203 * in scope for the prefix of the QName. If the processor is able
2204 * to detect the error statically (for example, when the argument
2205 * is supplied as a string literal), then the processor may optionally
2206 * signal this as a static error.
2207 */
2208 XTDE1390,
2209
2210 /**
2211 * When a transformation is terminated by use of xsl:message terminate="yes",
2212 * the effect is the same as when a non-recoverable dynamic error
2213 * occurs during the transformation.
2214 */
2215 XTMM9000,
2216
2217 /**
2218 * It is a non-recoverable dynamic error if the argument [passed
2219 * to the function-available function] does not evaluate to a string
2220 * that is a valid QName, or if there is no namespace declaration
2221 * in scope for the prefix of the QName. If the processor is able
2222 * to detect the error statically (for example, when the argument
2223 * is supplied as a string literal), then the processor may optionally
2224 * signal this as a static error.
2225 */
2226 XTDE1400,
2227
2228 /**
2229 * It is a non-recoverable dynamic error if the arguments supplied
2230 * to a call on an extension function do not satisfy the rules defined
2231 * for that particular extension function, or if the extension function
2232 * reports an error, or if the result of the extension function
2233 * cannot be converted to an XPath value.
2234 */
2235 XTDE1420,
2236
2237 /**
2238 * When backwards compatible behavior is enabled, it is a non-recoverable
2239 * dynamic error to evaluate an extension function call if no implementation
2240 * of the extension function is available.
2241 */
2242 XTDE1425,
2243
2244 /**
2245 * It is a non-recoverable dynamic error if the argument [passed
2246 * to the type-available function] does not evaluate to a string
2247 * that is a valid QName, or if there is no namespace declaration
2248 * in scope for the prefix of the QName. If the processor is able
2249 * to detect the error statically (for example, when the argument
2250 * is supplied as a string literal), then the processor may optionally
2251 * signal this as a static error.
2252 */
2253 XTDE1428,
2254
2255 /**
2256 * It is a non-recoverable dynamic error if the argument [passed
2257 * to the element-available function] does not evaluate to a string
2258 * that is a valid QName, or if there is no namespace declaration
2259 * in scope for the prefix of the QName. If the processor is able
2260 * to detect the error statically (for example, when the argument
2261 * is supplied as a string literal), then the processor may optionally
2262 * signal this as a static error.
2263 */
2264 XTDE1440,
2265
2266 /**
2267 * When a processor performs fallback for an extension instruction
2268 * that is not recognized, if the instruction element has one or
2269 * more xsl:fallback children, then the content of each of the xsl:fallback
2270 * children must be evaluated; it is a non-recoverable dynamic error
2271 * if it has no xsl:fallback children.
2272 */
2273 XTDE1450,
2274
2275 /**
2276 * It is a non-recoverable dynamic error if the effective value
2277 * of the format attribute [of an xsl:result-document element] is
2278 * not a valid lexical QName, or if it does not match the expanded-QName
2279 * of an output definition in the stylesheet. If the processor is
2280 * able to detect the error statically (for example, when the format
2281 * attribute contains no curly brackets), then the processor may
2282 * optionally signal this as a static error.
2283 */
2284 XTDE1460,
2285
2286 /**
2287 * It is a non-recoverable dynamic error to evaluate the xsl:result-document
2288 * instruction in temporary output state.
2289 */
2290 XTDE1480,
2291
2292 /**
2293 * It is a non-recoverable dynamic error for a transformation to
2294 * generate two or more final result trees with the same URI.
2295 */
2296 XTDE1490,
2297
2298 /**
2299 * It is a recoverable dynamic error for a transformation to generate
2300 * two or more final result trees with URIs that identify the same
2301 * physical resource. The optional recovery action is implementation-dependent,
2302 * since it may be impossible for the processor to detect the error.
2303 */
2304 XTRE1495,
2305
2306 /**
2307 * It is a recoverable dynamic error for a stylesheet to write to
2308 * an external resource and read from the same resource during a
2309 * single transformation, whether or not the same URI is used to
2310 * access the resource in both cases. Action: The optional recovery
2311 * action is implementation-dependent: implementations are not required
2312 * to detect the error condition. Note that if the error is not
2313 * detected, it is undefined whether the document that is read from
2314 * the resource reflects its state before or after the result tree
2315 * is written.
2316 */
2317 XTRE1500,
2318
2319 /**
2320 * It is a recoverable dynamic error if an xsl:value-of or xsl:text
2321 * instruction specifies that output escaping is to be disabled
2322 * and the implementation does not support this. Action: The optional
2323 * recovery action is to ignore the disable-output-escaping attribute.
2324 */
2325 XTRE1620,
2326
2327 /**
2328 * It is a recoverable dynamic error if an xsl:value-of or xsl:text
2329 * instruction specifies that output escaping is to be disabled
2330 * when writing to a final result tree that is not being serialized.
2331 * Action: The optional recovery action is to ignore the disable-output-escaping
2332 * attribute.
2333 */
2334 XTRE1630,
2335
2336 /**
2337 * A basic XSLT processor must raise a non-recoverable dynamic error
2338 * if the input to the processor includes a node with a type annotation
2339 * other than xs:untyped or xs:untypedAtomic, or an atomic value
2340 * of a type other than those which a basic XSLT processor supports.
2341 */
2342 XTDE1665
2343
2344 };
2345
2346 /**
2347 * Issues a warning, should not be used excessively. This can
2348 * be used to communicate that a certain implementation defined
2349 * feature is unsupported or that a certain expression most likely
2350 * doesn't do what the users wants, to name a few examples.
2351 *
2352 * @see <a href="http://www.w3.org/TR/xpath20/#errors">XML Path Language (XPath) 2.0,
2353 * 2.3 Error Handling</a>
2354 * @param message the message to be read by the user.
2355 * @param sourceLocation the location of where the warning originates from.
2356 */
2357 void warning(const QString &message, const QSourceLocation &sourceLocation = QSourceLocation());
2358
2359 /**
2360 * Issues an error. May be used at the static analysis phase or
2361 * the dynamic evaluation phase.
2362 *
2363 * For SourceLocationReflection instances, the overload taking an SouourceLocationReflection should be used.
2364 *
2365 * @see <a href="http://www.w3.org/TR/xpath20/#errors">XML Path Language (XPath) 2.0,
2366 * 2.3 Error Handling</a>
2367 * @param message the message to be read by the user.
2368 * @param errorCode identifies the error condition, as described
2369 * @param sourceLocation the location of where the error originates from
2370 * in "XML Path Language (XPath) 2.0" section "G Error Conditions"
2371 */
2372 void error(const QString &message,
2373 const ReportContext::ErrorCode errorCode,
2374 const QSourceLocation &sourceLocation);
2375
2376 /**
2377 * Overload.
2378 *
2379 * Same as the above, but passes the SourceLocationReflection as reference for error reporting.
2380 */
2381 void error(const QString &message,
2382 const ReportContext::ErrorCode errorCode,
2383 const SourceLocationReflection *const reflection);
2384
2385 /**
2386 * Issues an error which is not identified in the XPath specifications. This function
2387 * is among other things used for implementing the <tt>fn:error()</tt> function.
2388 */
2389 void error(const QString &message,
2390 const QXmlName qName,
2391 const SourceLocationReflection *const r);
2392
2393 /**
2394 * @return the QAbstractMessageHandler which functions such as warning() and
2395 * error() should submit messages to. This function
2396 * may never return @c null; a valid QAbstractMessageHandler pointer must always be returned.
2397 */
2398 virtual QAbstractMessageHandler *messageHandler() const = 0;
2399
2400 virtual NamePool::Ptr namePool() const = 0;
2401
2402 /**
2403 * Returns a string representation of the error code @p code.
2404 *
2405 * @see ReportContext::ErrorCode
2406 * @param errorCode identifies the error condition, as described
2407 * in <a href="http://www.w3.org/TR/xpath20/#id-errors">XML Path
2408 * Language (XPath) 2.0, G Error Conditions</a>
2409 */
2410 static QString codeToString(const ReportContext::ErrorCode errorCode);
2411
2412 /**
2413 * @returns the error code part of @p typeURI and sets @p uri to the error namespace. Note
2414 * that the error namespace not necessarily is the namespace for XPath and
2415 * XQuery errors, http://www.w3.org/2005/xqt-errors, but can be user defined.
2416 */
2417 static QString codeFromURI(const QString &typeURI,
2418 QString &uri);
2419
2420 /**
2421 * @short Returns the source location applying for @p reflection.
2422 */
2423 virtual QSourceLocation locationFor(const SourceLocationReflection *const reflection) const = 0;
2424
2425 /**
2426 * Resolves @p relative against @p baseURI, possibly using a URI resolver.
2427 */
2428 QUrl resolveURI(const QUrl &relative,
2429 const QUrl &baseURI) const;
2430
2431 /**
2432 * @short The URI resolver in use.
2433 *
2434 * If no URI resolver is in use, a @c null pointer is returned.
2435 *
2436 * @note You should probably use resolveURI(), which handles the case of
2437 * when uriResolver() is @c null.
2438 */
2439 virtual const QAbstractUriResolver *uriResolver() const = 0;
2440
2441 private:
2442 void createError(const QString &description,
2443 const QtMsgType type,
2444 const QUrl &id,
2445 const QSourceLocation &sourceLocation) const;
2446 static inline QString finalizeDescription(const QString &desc);
2447 QSourceLocation lookupSourceLocation(const SourceLocationReflection *const ref) const;
2448
2449 Q_DISABLE_COPY(ReportContext)
2450 };
2451
2452 /**
2453 * @short This is the class type that is being thrown when a query error occur.
2454 *
2455 * @relates ReportContext
2456 */
2457 typedef bool Exception;
2458}
2459
2460QT_END_NAMESPACE
2461
2462QT_END_HEADER
2463
2464#endif
Note: See TracBrowser for help on using the repository browser.