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