001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements. See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership. The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the  "License");
007     * you may not use this file except in compliance with the License.
008     * You may obtain a copy of the License at
009     *
010     *     http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    /*
019     * $Id: XPATHErrorResources.java 468655 2006-10-28 07:12:06Z minchau $
020     */
021    package org.apache.xpath.res;
022    
023    import java.util.ListResourceBundle;
024    import java.util.Locale;
025    import java.util.MissingResourceException;
026    import java.util.ResourceBundle;
027    
028    /**
029     * Set up error messages.
030     * We build a two dimensional array of message keys and
031     * message strings. In order to add a new message here,
032     * you need to first add a Static string constant for the
033     * Key and update the contents array with Key, Value pair
034      * Also you need to  update the count of messages(MAX_CODE)or
035     * the count of warnings(MAX_WARNING) [ Information purpose only]
036     * @xsl.usage advanced
037     */
038    public class XPATHErrorResources extends ListResourceBundle
039    {
040    
041    /*
042     * General notes to translators:
043     *
044     * This file contains error and warning messages related to XPath Error
045     * Handling.
046     *
047     *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
048     *     components.
049     *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
050     *     XSLTC is an acronym for XSLT Compiler.
051     *
052     *  2) A stylesheet is a description of how to transform an input XML document
053     *     into a resultant XML document (or HTML document or text).  The
054     *     stylesheet itself is described in the form of an XML document.
055     *
056     *  3) A template is a component of a stylesheet that is used to match a
057     *     particular portion of an input document and specifies the form of the
058     *     corresponding portion of the output document.
059     *
060     *  4) An element is a mark-up tag in an XML document; an attribute is a
061     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
062     *     "elem" is an element name, "attr" and "attr2" are attribute names with
063     *     the values "val" and "val2", respectively.
064     *
065     *  5) A namespace declaration is a special attribute that is used to associate
066     *     a prefix with a URI (the namespace).  The meanings of element names and
067     *     attribute names that use that prefix are defined with respect to that
068     *     namespace.
069     *
070     *  6) "Translet" is an invented term that describes the class file that
071     *     results from compiling an XML stylesheet into a Java class.
072     *
073     *  7) XPath is a specification that describes a notation for identifying
074     *     nodes in a tree-structured representation of an XML document.  An
075     *     instance of that notation is referred to as an XPath expression.
076     *
077     *  8) The context node is the node in the document with respect to which an
078     *     XPath expression is being evaluated.
079     *
080     *  9) An iterator is an object that traverses nodes in the tree, one at a time.
081     *
082     *  10) NCName is an XML term used to describe a name that does not contain a
083     *     colon (a "no-colon name").
084     *
085     *  11) QName is an XML term meaning "qualified name".
086     */
087    
088      /* 
089       * static variables
090       */
091      public static final String ERROR0000 = "ERROR0000";
092      public static final String ER_CURRENT_NOT_ALLOWED_IN_MATCH = 
093             "ER_CURRENT_NOT_ALLOWED_IN_MATCH";
094      public static final String ER_CURRENT_TAKES_NO_ARGS = 
095             "ER_CURRENT_TAKES_NO_ARGS";
096      public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED";
097      public static final String ER_CONTEXT_HAS_NO_OWNERDOC = 
098             "ER_CONTEXT_HAS_NO_OWNERDOC";
099      public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = 
100             "ER_LOCALNAME_HAS_TOO_MANY_ARGS";
101      public static final String ER_NAMESPACEURI_HAS_TOO_MANY_ARGS = 
102             "ER_NAMESPACEURI_HAS_TOO_MANY_ARGS";
103      public static final String ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS = 
104             "ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS";
105      public static final String ER_NUMBER_HAS_TOO_MANY_ARGS = 
106             "ER_NUMBER_HAS_TOO_MANY_ARGS";
107      public static final String ER_NAME_HAS_TOO_MANY_ARGS = 
108             "ER_NAME_HAS_TOO_MANY_ARGS";
109      public static final String ER_STRING_HAS_TOO_MANY_ARGS = 
110             "ER_STRING_HAS_TOO_MANY_ARGS";
111      public static final String ER_STRINGLENGTH_HAS_TOO_MANY_ARGS = 
112             "ER_STRINGLENGTH_HAS_TOO_MANY_ARGS";
113      public static final String ER_TRANSLATE_TAKES_3_ARGS = 
114             "ER_TRANSLATE_TAKES_3_ARGS";
115      public static final String ER_UNPARSEDENTITYURI_TAKES_1_ARG = 
116             "ER_UNPARSEDENTITYURI_TAKES_1_ARG";
117      public static final String ER_NAMESPACEAXIS_NOT_IMPLEMENTED = 
118             "ER_NAMESPACEAXIS_NOT_IMPLEMENTED";
119      public static final String ER_UNKNOWN_AXIS = "ER_UNKNOWN_AXIS";
120      public static final String ER_UNKNOWN_MATCH_OPERATION = 
121             "ER_UNKNOWN_MATCH_OPERATION";
122      public static final String ER_INCORRECT_ARG_LENGTH ="ER_INCORRECT_ARG_LENGTH";
123      public static final String ER_CANT_CONVERT_TO_NUMBER = 
124             "ER_CANT_CONVERT_TO_NUMBER";
125      public static final String ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER = 
126               "ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER";  
127      public static final String ER_CANT_CONVERT_TO_NODELIST = 
128             "ER_CANT_CONVERT_TO_NODELIST";
129      public static final String ER_CANT_CONVERT_TO_MUTABLENODELIST = 
130             "ER_CANT_CONVERT_TO_MUTABLENODELIST";
131      public static final String ER_CANT_CONVERT_TO_TYPE ="ER_CANT_CONVERT_TO_TYPE";
132      public static final String ER_EXPECTED_MATCH_PATTERN = 
133             "ER_EXPECTED_MATCH_PATTERN";
134      public static final String ER_COULDNOT_GET_VAR_NAMED = 
135             "ER_COULDNOT_GET_VAR_NAMED";
136      public static final String ER_UNKNOWN_OPCODE = "ER_UNKNOWN_OPCODE";
137      public static final String ER_EXTRA_ILLEGAL_TOKENS ="ER_EXTRA_ILLEGAL_TOKENS";
138      public static final String ER_EXPECTED_DOUBLE_QUOTE = 
139             "ER_EXPECTED_DOUBLE_QUOTE";
140      public static final String ER_EXPECTED_SINGLE_QUOTE = 
141             "ER_EXPECTED_SINGLE_QUOTE";
142      public static final String ER_EMPTY_EXPRESSION = "ER_EMPTY_EXPRESSION";
143      public static final String ER_EXPECTED_BUT_FOUND = "ER_EXPECTED_BUT_FOUND";
144      public static final String ER_INCORRECT_PROGRAMMER_ASSERTION = 
145             "ER_INCORRECT_PROGRAMMER_ASSERTION";
146      public static final String ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL = 
147             "ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL";
148      public static final String ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG = 
149             "ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG";
150      public static final String ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG = 
151             "ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG";
152      public static final String ER_PREDICATE_ILLEGAL_SYNTAX = 
153             "ER_PREDICATE_ILLEGAL_SYNTAX";
154      public static final String ER_ILLEGAL_AXIS_NAME = "ER_ILLEGAL_AXIS_NAME";
155      public static final String ER_UNKNOWN_NODETYPE = "ER_UNKNOWN_NODETYPE";
156      public static final String ER_PATTERN_LITERAL_NEEDS_BE_QUOTED = 
157             "ER_PATTERN_LITERAL_NEEDS_BE_QUOTED";
158      public static final String ER_COULDNOT_BE_FORMATTED_TO_NUMBER = 
159             "ER_COULDNOT_BE_FORMATTED_TO_NUMBER";
160      public static final String ER_COULDNOT_CREATE_XMLPROCESSORLIAISON = 
161             "ER_COULDNOT_CREATE_XMLPROCESSORLIAISON";
162      public static final String ER_DIDNOT_FIND_XPATH_SELECT_EXP = 
163             "ER_DIDNOT_FIND_XPATH_SELECT_EXP";
164      public static final String ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH = 
165             "ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH";
166      public static final String ER_ERROR_OCCURED = "ER_ERROR_OCCURED";
167      public static final String ER_ILLEGAL_VARIABLE_REFERENCE = 
168             "ER_ILLEGAL_VARIABLE_REFERENCE";
169      public static final String ER_AXES_NOT_ALLOWED = "ER_AXES_NOT_ALLOWED";
170      public static final String ER_KEY_HAS_TOO_MANY_ARGS = 
171             "ER_KEY_HAS_TOO_MANY_ARGS";
172      public static final String ER_COUNT_TAKES_1_ARG = "ER_COUNT_TAKES_1_ARG";
173      public static final String ER_COULDNOT_FIND_FUNCTION = 
174             "ER_COULDNOT_FIND_FUNCTION";
175      public static final String ER_UNSUPPORTED_ENCODING ="ER_UNSUPPORTED_ENCODING";
176      public static final String ER_PROBLEM_IN_DTM_NEXTSIBLING = 
177             "ER_PROBLEM_IN_DTM_NEXTSIBLING";
178      public static final String ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL = 
179             "ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL";
180      public static final String ER_SETDOMFACTORY_NOT_SUPPORTED = 
181             "ER_SETDOMFACTORY_NOT_SUPPORTED";
182      public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
183      public static final String ER_PARSE_NOT_SUPPORTED = "ER_PARSE_NOT_SUPPORTED";
184      public static final String ER_SAX_API_NOT_HANDLED = "ER_SAX_API_NOT_HANDLED";
185    public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = 
186             "ER_IGNORABLE_WHITESPACE_NOT_HANDLED";
187      public static final String ER_DTM_CANNOT_HANDLE_NODES = 
188             "ER_DTM_CANNOT_HANDLE_NODES";
189      public static final String ER_XERCES_CANNOT_HANDLE_NODES = 
190             "ER_XERCES_CANNOT_HANDLE_NODES";
191      public static final String ER_XERCES_PARSE_ERROR_DETAILS = 
192             "ER_XERCES_PARSE_ERROR_DETAILS";
193      public static final String ER_XERCES_PARSE_ERROR = "ER_XERCES_PARSE_ERROR";
194      public static final String ER_INVALID_UTF16_SURROGATE = 
195             "ER_INVALID_UTF16_SURROGATE";
196      public static final String ER_OIERROR = "ER_OIERROR";
197      public static final String ER_CANNOT_CREATE_URL = "ER_CANNOT_CREATE_URL";
198      public static final String ER_XPATH_READOBJECT = "ER_XPATH_READOBJECT";
199     public static final String ER_FUNCTION_TOKEN_NOT_FOUND = 
200             "ER_FUNCTION_TOKEN_NOT_FOUND";
201      public static final String ER_CANNOT_DEAL_XPATH_TYPE = 
202             "ER_CANNOT_DEAL_XPATH_TYPE";
203      public static final String ER_NODESET_NOT_MUTABLE = "ER_NODESET_NOT_MUTABLE";
204      public static final String ER_NODESETDTM_NOT_MUTABLE = 
205             "ER_NODESETDTM_NOT_MUTABLE";
206       /**  Variable not resolvable:   */
207      public static final String ER_VAR_NOT_RESOLVABLE = "ER_VAR_NOT_RESOLVABLE";
208       /** Null error handler  */
209     public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";
210       /**  Programmer's assertion: unknown opcode  */
211      public static final String ER_PROG_ASSERT_UNKNOWN_OPCODE = 
212             "ER_PROG_ASSERT_UNKNOWN_OPCODE";
213       /**  0 or 1   */
214      public static final String ER_ZERO_OR_ONE = "ER_ZERO_OR_ONE";
215       /**  rtf() not supported by XRTreeFragSelectWrapper   */
216      public static final String ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER = 
217             "ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
218       /**  asNodeIterator() not supported by XRTreeFragSelectWrapper   */
219      public static final String ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER = "ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
220       /**  fsb() not supported for XStringForChars   */
221      public static final String ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS = 
222             "ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS";
223       /**  Could not find variable with the name of   */
224     public static final String ER_COULD_NOT_FIND_VAR = "ER_COULD_NOT_FIND_VAR";
225       /**  XStringForChars can not take a string for an argument   */
226     public static final String ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING = 
227             "ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING";
228       /**  The FastStringBuffer argument can not be null   */
229     public static final String ER_FASTSTRINGBUFFER_CANNOT_BE_NULL = 
230             "ER_FASTSTRINGBUFFER_CANNOT_BE_NULL";
231       /**  2 or 3   */
232      public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";
233       /** Variable accessed before it is bound! */
234      public static final String ER_VARIABLE_ACCESSED_BEFORE_BIND = 
235             "ER_VARIABLE_ACCESSED_BEFORE_BIND";
236       /** XStringForFSB can not take a string for an argument! */
237     public static final String ER_FSB_CANNOT_TAKE_STRING = 
238             "ER_FSB_CANNOT_TAKE_STRING";
239       /** Error! Setting the root of a walker to null! */
240      public static final String ER_SETTING_WALKER_ROOT_TO_NULL = 
241             "ER_SETTING_WALKER_ROOT_TO_NULL";
242       /** This NodeSetDTM can not iterate to a previous node! */
243      public static final String ER_NODESETDTM_CANNOT_ITERATE = 
244             "ER_NODESETDTM_CANNOT_ITERATE";
245      /** This NodeSet can not iterate to a previous node! */
246     public static final String ER_NODESET_CANNOT_ITERATE = 
247             "ER_NODESET_CANNOT_ITERATE";
248      /** This NodeSetDTM can not do indexing or counting functions! */
249      public static final String ER_NODESETDTM_CANNOT_INDEX = 
250             "ER_NODESETDTM_CANNOT_INDEX";
251      /** This NodeSet can not do indexing or counting functions! */
252      public static final String ER_NODESET_CANNOT_INDEX = 
253             "ER_NODESET_CANNOT_INDEX";
254      /** Can not call setShouldCacheNodes after nextNode has been called! */
255      public static final String ER_CANNOT_CALL_SETSHOULDCACHENODE = 
256             "ER_CANNOT_CALL_SETSHOULDCACHENODE";
257      /** {0} only allows {1} arguments */
258     public static final String ER_ONLY_ALLOWS = "ER_ONLY_ALLOWS";
259      /** Programmer's assertion in getNextStepPos: unknown stepType: {0} */
260      public static final String ER_UNKNOWN_STEP = "ER_UNKNOWN_STEP";
261      /** Problem with RelativeLocationPath */
262      public static final String ER_EXPECTED_REL_LOC_PATH = 
263             "ER_EXPECTED_REL_LOC_PATH";
264      /** Problem with LocationPath */
265      public static final String ER_EXPECTED_LOC_PATH = "ER_EXPECTED_LOC_PATH";
266      public static final String ER_EXPECTED_LOC_PATH_AT_END_EXPR =
267                                            "ER_EXPECTED_LOC_PATH_AT_END_EXPR";
268      /** Problem with Step */
269      public static final String ER_EXPECTED_LOC_STEP = "ER_EXPECTED_LOC_STEP";
270      /** Problem with NodeTest */
271      public static final String ER_EXPECTED_NODE_TEST = "ER_EXPECTED_NODE_TEST";
272      /** Expected step pattern */
273      public static final String ER_EXPECTED_STEP_PATTERN = 
274            "ER_EXPECTED_STEP_PATTERN";
275      /** Expected relative path pattern */
276      public static final String ER_EXPECTED_REL_PATH_PATTERN = 
277             "ER_EXPECTED_REL_PATH_PATTERN";
278      /** ER_CANT_CONVERT_XPATHRESULTTYPE_TO_BOOLEAN          */
279      public static final String ER_CANT_CONVERT_TO_BOOLEAN = 
280             "ER_CANT_CONVERT_TO_BOOLEAN";
281      /** Field ER_CANT_CONVERT_TO_SINGLENODE       */
282      public static final String ER_CANT_CONVERT_TO_SINGLENODE = 
283             "ER_CANT_CONVERT_TO_SINGLENODE";
284      /** Field ER_CANT_GET_SNAPSHOT_LENGTH         */
285      public static final String ER_CANT_GET_SNAPSHOT_LENGTH = 
286             "ER_CANT_GET_SNAPSHOT_LENGTH";
287      /** Field ER_NON_ITERATOR_TYPE                */
288      public static final String ER_NON_ITERATOR_TYPE = "ER_NON_ITERATOR_TYPE";
289      /** Field ER_DOC_MUTATED                      */
290      public static final String ER_DOC_MUTATED = "ER_DOC_MUTATED";
291      public static final String ER_INVALID_XPATH_TYPE = "ER_INVALID_XPATH_TYPE";
292      public static final String ER_EMPTY_XPATH_RESULT = "ER_EMPTY_XPATH_RESULT";
293      public static final String ER_INCOMPATIBLE_TYPES = "ER_INCOMPATIBLE_TYPES";
294      public static final String ER_NULL_RESOLVER = "ER_NULL_RESOLVER";
295      public static final String ER_CANT_CONVERT_TO_STRING = 
296             "ER_CANT_CONVERT_TO_STRING";
297      public static final String ER_NON_SNAPSHOT_TYPE = "ER_NON_SNAPSHOT_TYPE";
298      public static final String ER_WRONG_DOCUMENT = "ER_WRONG_DOCUMENT";
299      /* Note to translators:  The XPath expression cannot be evaluated with respect
300       * to this type of node.
301       */
302      /** Field ER_WRONG_NODETYPE                    */
303      public static final String ER_WRONG_NODETYPE = "ER_WRONG_NODETYPE";
304      public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
305    
306      //BEGIN: Keys needed for exception messages of  JAXP 1.3 XPath API implementation
307      public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
308      public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
309      public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
310      public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
311      public static final String ER_ARG_CANNOT_BE_NULL = "ER_ARG_CANNOT_BE_NULL";
312    
313      public static final String ER_OBJECT_MODEL_NULL = "ER_OBJECT_MODEL_NULL";
314      public static final String ER_OBJECT_MODEL_EMPTY = "ER_OBJECT_MODEL_EMPTY";
315      public static final String ER_FEATURE_NAME_NULL = "ER_FEATURE_NAME_NULL";
316      public static final String ER_FEATURE_UNKNOWN = "ER_FEATURE_UNKNOWN";
317      public static final String ER_GETTING_NULL_FEATURE = "ER_GETTING_NULL_FEATURE";
318      public static final String ER_GETTING_UNKNOWN_FEATURE = "ER_GETTING_UNKNOWN_FEATURE";
319      public static final String ER_NULL_XPATH_FUNCTION_RESOLVER = "ER_NULL_XPATH_FUNCTION_RESOLVER";
320      public static final String ER_NULL_XPATH_VARIABLE_RESOLVER = "ER_NULL_XPATH_VARIABLE_RESOLVER";
321      //END: Keys needed for exception messages of  JAXP 1.3 XPath API implementation 
322    
323      public static final String WG_LOCALE_NAME_NOT_HANDLED = 
324             "WG_LOCALE_NAME_NOT_HANDLED";
325      public static final String WG_PROPERTY_NOT_SUPPORTED = 
326             "WG_PROPERTY_NOT_SUPPORTED";
327      public static final String WG_DONT_DO_ANYTHING_WITH_NS = 
328             "WG_DONT_DO_ANYTHING_WITH_NS";
329      public static final String WG_SECURITY_EXCEPTION = "WG_SECURITY_EXCEPTION";
330      public static final String WG_QUO_NO_LONGER_DEFINED = 
331             "WG_QUO_NO_LONGER_DEFINED";
332      public static final String WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST = 
333             "WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST";
334      public static final String WG_FUNCTION_TOKEN_NOT_FOUND = 
335             "WG_FUNCTION_TOKEN_NOT_FOUND";
336      public static final String WG_COULDNOT_FIND_FUNCTION = 
337             "WG_COULDNOT_FIND_FUNCTION";
338      public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";
339      public static final String WG_EXPAND_ENTITIES_NOT_SUPPORTED = 
340             "WG_EXPAND_ENTITIES_NOT_SUPPORTED";
341      public static final String WG_ILLEGAL_VARIABLE_REFERENCE = 
342             "WG_ILLEGAL_VARIABLE_REFERENCE";
343      public static final String WG_UNSUPPORTED_ENCODING ="WG_UNSUPPORTED_ENCODING";
344    
345      /**  detach() not supported by XRTreeFragSelectWrapper   */
346      public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
347             "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
348      /**  num() not supported by XRTreeFragSelectWrapper   */
349      public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
350             "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
351      /**  xstr() not supported by XRTreeFragSelectWrapper   */
352      public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
353             "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
354      /**  str() not supported by XRTreeFragSelectWrapper   */
355      public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
356             "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
357    
358      // Error messages...
359    
360    
361      /**
362       * Get the association list.
363       *
364       * @return The association list.
365       */
366      public Object[][] getContents()
367      {
368        return new Object[][]{
369    
370      { "ERROR0000" , "{0}" },
371    
372      { ER_CURRENT_NOT_ALLOWED_IN_MATCH, "The current() function is not allowed in a match pattern!" },
373    
374      { ER_CURRENT_TAKES_NO_ARGS, "The current() function does not accept arguments!" },
375    
376      { ER_DOCUMENT_REPLACED,
377          "document() function implementation has been replaced by org.apache.xalan.xslt.FuncDocument!"},
378    
379      { ER_CONTEXT_HAS_NO_OWNERDOC,
380          "context does not have an owner document!"},
381    
382      { ER_LOCALNAME_HAS_TOO_MANY_ARGS,
383          "local-name() has too many arguments."},
384    
385      { ER_NAMESPACEURI_HAS_TOO_MANY_ARGS,
386          "namespace-uri() has too many arguments."},
387    
388      { ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS,
389          "normalize-space() has too many arguments."},
390    
391      { ER_NUMBER_HAS_TOO_MANY_ARGS,
392          "number() has too many arguments."},
393    
394      { ER_NAME_HAS_TOO_MANY_ARGS,
395         "name() has too many arguments."},
396    
397      { ER_STRING_HAS_TOO_MANY_ARGS,
398          "string() has too many arguments."},
399    
400      { ER_STRINGLENGTH_HAS_TOO_MANY_ARGS,
401          "string-length() has too many arguments."},
402    
403      { ER_TRANSLATE_TAKES_3_ARGS,
404          "The translate() function takes three arguments!"},
405    
406      { ER_UNPARSEDENTITYURI_TAKES_1_ARG,
407          "The unparsed-entity-uri function should take one argument!"},
408    
409      { ER_NAMESPACEAXIS_NOT_IMPLEMENTED,
410          "namespace axis not implemented yet!"},
411    
412      { ER_UNKNOWN_AXIS,
413         "unknown axis: {0}"},
414    
415      { ER_UNKNOWN_MATCH_OPERATION,
416         "unknown match operation!"},
417    
418      { ER_INCORRECT_ARG_LENGTH,
419          "Arg length of processing-instruction() node test is incorrect!"},
420    
421      { ER_CANT_CONVERT_TO_NUMBER,
422          "Can not convert {0} to a number"},
423    
424      { ER_CANT_CONVERT_TO_NODELIST,
425          "Can not convert {0} to a NodeList!"},
426    
427      { ER_CANT_CONVERT_TO_MUTABLENODELIST,
428          "Can not convert {0} to a NodeSetDTM!"},
429    
430      { ER_CANT_CONVERT_TO_TYPE,
431          "Can not convert {0} to a type#{1}"},
432    
433      { ER_EXPECTED_MATCH_PATTERN,
434          "Expected match pattern in getMatchScore!"},
435    
436      { ER_COULDNOT_GET_VAR_NAMED,
437          "Could not get variable named {0}"},
438    
439      { ER_UNKNOWN_OPCODE,
440         "ERROR! Unknown op code: {0}"},
441    
442      { ER_EXTRA_ILLEGAL_TOKENS,
443         "Extra illegal tokens: {0}"},
444    
445      { ER_EXPECTED_DOUBLE_QUOTE,
446          "misquoted literal... expected double quote!"},
447    
448      { ER_EXPECTED_SINGLE_QUOTE,
449          "misquoted literal... expected single quote!"},
450    
451      { ER_EMPTY_EXPRESSION,
452         "Empty expression!"},
453    
454      { ER_EXPECTED_BUT_FOUND,
455         "Expected {0}, but found: {1}"},
456    
457      { ER_INCORRECT_PROGRAMMER_ASSERTION,
458          "Programmer assertion is incorrect! - {0}"},
459    
460      { ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL,
461          "boolean(...) argument is no longer optional with 19990709 XPath draft."},
462    
463      { ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG,
464          "Found ',' but no preceding argument!"},
465    
466      { ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG,
467          "Found ',' but no following argument!"},
468    
469      { ER_PREDICATE_ILLEGAL_SYNTAX,
470          "'..[predicate]' or '.[predicate]' is illegal syntax.  Use 'self::node()[predicate]' instead."},
471    
472      { ER_ILLEGAL_AXIS_NAME,
473         "illegal axis name: {0}"},
474    
475      { ER_UNKNOWN_NODETYPE,
476         "Unknown nodetype: {0}"},
477    
478      { ER_PATTERN_LITERAL_NEEDS_BE_QUOTED,
479          "Pattern literal ({0}) needs to be quoted!"},
480    
481      { ER_COULDNOT_BE_FORMATTED_TO_NUMBER,
482          "{0} could not be formatted to a number!"},
483    
484      { ER_COULDNOT_CREATE_XMLPROCESSORLIAISON,
485          "Could not create XML TransformerFactory Liaison: {0}"},
486    
487      { ER_DIDNOT_FIND_XPATH_SELECT_EXP,
488          "Error! Did not find xpath select expression (-select)."},
489    
490      { ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH,
491          "ERROR! Could not find ENDOP after OP_LOCATIONPATH"},
492    
493      { ER_ERROR_OCCURED,
494         "Error occured!"},
495    
496      { ER_ILLEGAL_VARIABLE_REFERENCE,
497          "VariableReference given for variable out of context or without definition!  Name = {0}"},
498    
499      { ER_AXES_NOT_ALLOWED,
500          "Only child:: and attribute:: axes are allowed in match patterns!  Offending axes = {0}"},
501    
502      { ER_KEY_HAS_TOO_MANY_ARGS,
503          "key() has an incorrect number of arguments."},
504    
505      { ER_COUNT_TAKES_1_ARG,
506          "The count function should take one argument!"},
507    
508      { ER_COULDNOT_FIND_FUNCTION,
509         "Could not find function: {0}"},
510    
511      { ER_UNSUPPORTED_ENCODING,
512         "Unsupported encoding: {0}"},
513    
514      { ER_PROBLEM_IN_DTM_NEXTSIBLING,
515          "Problem occured in DTM in getNextSibling... trying to recover"},
516    
517      { ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL,
518          "Programmer error: EmptyNodeList can not be written to."},
519    
520      { ER_SETDOMFACTORY_NOT_SUPPORTED,
521          "setDOMFactory is not supported by XPathContext!"},
522    
523      { ER_PREFIX_MUST_RESOLVE,
524          "Prefix must resolve to a namespace: {0}"},
525    
526      { ER_PARSE_NOT_SUPPORTED,
527          "parse (InputSource source) not supported in XPathContext! Can not open {0}"},
528    
529      { ER_SAX_API_NOT_HANDLED,
530          "SAX API characters(char ch[]... not handled by the DTM!"},
531    
532      { ER_IGNORABLE_WHITESPACE_NOT_HANDLED,
533          "ignorableWhitespace(char ch[]... not handled by the DTM!"},
534    
535      { ER_DTM_CANNOT_HANDLE_NODES,
536          "DTMLiaison can not handle nodes of type {0}"},
537    
538      { ER_XERCES_CANNOT_HANDLE_NODES,
539          "DOM2Helper can not handle nodes of type {0}"},
540    
541      { ER_XERCES_PARSE_ERROR_DETAILS,
542          "DOM2Helper.parse error: SystemID - {0} line - {1}"},
543    
544      { ER_XERCES_PARSE_ERROR,
545         "DOM2Helper.parse error"},
546    
547      { ER_INVALID_UTF16_SURROGATE,
548          "Invalid UTF-16 surrogate detected: {0} ?"},
549    
550      { ER_OIERROR,
551         "IO error"},
552    
553      { ER_CANNOT_CREATE_URL,
554         "Cannot create url for: {0}"},
555    
556      { ER_XPATH_READOBJECT,
557         "In XPath.readObject: {0}"},
558    
559      { ER_FUNCTION_TOKEN_NOT_FOUND,
560          "function token not found."},
561    
562      { ER_CANNOT_DEAL_XPATH_TYPE,
563           "Can not deal with XPath type: {0}"},
564    
565      { ER_NODESET_NOT_MUTABLE,
566           "This NodeSet is not mutable"},
567    
568      { ER_NODESETDTM_NOT_MUTABLE,
569           "This NodeSetDTM is not mutable"},
570    
571      { ER_VAR_NOT_RESOLVABLE,
572            "Variable not resolvable: {0}"},
573    
574      { ER_NULL_ERROR_HANDLER,
575            "Null error handler"},
576    
577      { ER_PROG_ASSERT_UNKNOWN_OPCODE,
578           "Programmer''s assertion: unknown opcode: {0}"},
579    
580      { ER_ZERO_OR_ONE,
581           "0 or 1"},
582    
583      { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
584           "rtf() not supported by XRTreeFragSelectWrapper"},
585    
586      { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
587           "asNodeIterator() not supported by XRTreeFragSelectWrapper"},
588           
589            /**  detach() not supported by XRTreeFragSelectWrapper   */
590       { ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
591                    "detach() not supported by XRTreeFragSelectWrapper"},
592                    
593            /**  num() not supported by XRTreeFragSelectWrapper   */
594       { ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
595                    "num() not supported by XRTreeFragSelectWrapper"},
596                    
597            /**  xstr() not supported by XRTreeFragSelectWrapper   */
598       { ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
599                    "xstr() not supported by XRTreeFragSelectWrapper"},
600                    
601            /**  str() not supported by XRTreeFragSelectWrapper   */
602       { ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
603                    "str() not supported by XRTreeFragSelectWrapper"},
604    
605      { ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS,
606           "fsb() not supported for XStringForChars"},
607    
608      { ER_COULD_NOT_FIND_VAR,
609          "Could not find variable with the name of {0}"},
610    
611      { ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING,
612          "XStringForChars can not take a string for an argument"},
613    
614      { ER_FASTSTRINGBUFFER_CANNOT_BE_NULL,
615          "The FastStringBuffer argument can not be null"},
616    
617      { ER_TWO_OR_THREE,
618           "2 or 3"},
619    
620      { ER_VARIABLE_ACCESSED_BEFORE_BIND,
621           "Variable accessed before it is bound!"},
622    
623      { ER_FSB_CANNOT_TAKE_STRING,
624           "XStringForFSB can not take a string for an argument!"},
625    
626      { ER_SETTING_WALKER_ROOT_TO_NULL,
627           "\n !!!! Error! Setting the root of a walker to null!!!"},
628    
629      { ER_NODESETDTM_CANNOT_ITERATE,
630           "This NodeSetDTM can not iterate to a previous node!"},
631    
632      { ER_NODESET_CANNOT_ITERATE,
633           "This NodeSet can not iterate to a previous node!"},
634    
635      { ER_NODESETDTM_CANNOT_INDEX,
636           "This NodeSetDTM can not do indexing or counting functions!"},
637    
638      { ER_NODESET_CANNOT_INDEX,
639           "This NodeSet can not do indexing or counting functions!"},
640    
641      { ER_CANNOT_CALL_SETSHOULDCACHENODE,
642           "Can not call setShouldCacheNodes after nextNode has been called!"},
643    
644      { ER_ONLY_ALLOWS,
645           "{0} only allows {1} arguments"},
646    
647      { ER_UNKNOWN_STEP,
648           "Programmer''s assertion in getNextStepPos: unknown stepType: {0}"},
649    
650      //Note to translators:  A relative location path is a form of XPath expression.
651      // The message indicates that such an expression was expected following the
652      // characters '/' or '//', but was not found.
653      { ER_EXPECTED_REL_LOC_PATH,
654          "A relative location path was expected following the '/' or '//' token."},
655    
656      // Note to translators:  A location path is a form of XPath expression.
657      // The message indicates that syntactically such an expression was expected,but
658      // the characters specified by the substitution text were encountered instead.
659      { ER_EXPECTED_LOC_PATH,
660           "A location path was expected, but the following token was encountered\u003a  {0}"},
661    
662      // Note to translators:  A location path is a form of XPath expression.
663      // The message indicates that syntactically such a subexpression was expected,
664      // but no more characters were found in the expression.
665      { ER_EXPECTED_LOC_PATH_AT_END_EXPR,
666           "A location path was expected, but the end of the XPath expression was found instead."},
667    
668      // Note to translators:  A location step is part of an XPath expression.
669      // The message indicates that syntactically such an expression was expected
670      // following the specified characters.
671      { ER_EXPECTED_LOC_STEP,
672           "A location step was expected following the '/' or '//' token."},
673    
674      // Note to translators:  A node test is part of an XPath expression that is
675      // used to test for particular kinds of nodes.  In this case, a node test that
676      // consists of an NCName followed by a colon and an asterisk or that consists
677      // of a QName was expected, but was not found.
678      { ER_EXPECTED_NODE_TEST,
679           "A node test that matches either NCName:* or QName was expected."},
680    
681      // Note to translators:  A step pattern is part of an XPath expression.
682      // The message indicates that syntactically such an expression was expected,
683      // but the specified character was found in the expression instead.
684      { ER_EXPECTED_STEP_PATTERN,
685           "A step pattern was expected, but '/' was encountered."},
686    
687      // Note to translators: A relative path pattern is part of an XPath expression.
688      // The message indicates that syntactically such an expression was expected,
689      // but was not found.
690      { ER_EXPECTED_REL_PATH_PATTERN,
691           "A relative path pattern was expected."},
692    
693      // Note to translators:  The substitution text is the name of a data type.  The
694      // message indicates that a value of a particular type could not be converted
695      // to a value of type boolean.
696      { ER_CANT_CONVERT_TO_BOOLEAN,
697           "The XPathResult of XPath expression ''{0}'' has an XPathResultType of {1} which cannot be converted to a boolean."},
698    
699      // Note to translators: Do not translate ANY_UNORDERED_NODE_TYPE and 
700      // FIRST_ORDERED_NODE_TYPE.
701      { ER_CANT_CONVERT_TO_SINGLENODE,
702           "The XPathResult of XPath expression ''{0}'' has an XPathResultType of {1} which cannot be converted to a single node. The method getSingleNodeValue applies only to types ANY_UNORDERED_NODE_TYPE and FIRST_ORDERED_NODE_TYPE."},
703    
704      // Note to translators: Do not translate UNORDERED_NODE_SNAPSHOT_TYPE and
705      // ORDERED_NODE_SNAPSHOT_TYPE.
706      { ER_CANT_GET_SNAPSHOT_LENGTH,
707           "The method getSnapshotLength cannot be called on the XPathResult of XPath expression ''{0}'' because its XPathResultType is {1}. This method applies only to types UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE."},
708    
709      { ER_NON_ITERATOR_TYPE,
710           "The method iterateNext cannot be called on the XPathResult of XPath expression ''{0}'' because its XPathResultType is {1}. This method applies only to types UNORDERED_NODE_ITERATOR_TYPE and ORDERED_NODE_ITERATOR_TYPE."},
711    
712      // Note to translators: This message indicates that the document being operated
713      // upon changed, so the iterator object that was being used to traverse the
714      // document has now become invalid.
715      { ER_DOC_MUTATED,
716           "Document mutated since result was returned. Iterator is invalid."},
717    
718      { ER_INVALID_XPATH_TYPE,
719           "Invalid XPath type argument: {0}"},
720    
721      { ER_EMPTY_XPATH_RESULT,
722           "Empty XPath result object"},
723    
724      { ER_INCOMPATIBLE_TYPES,
725           "The XPathResult of XPath expression ''{0}'' has an XPathResultType of {1} which cannot be coerced into the specified XPathResultType of {2}."},
726    
727      { ER_NULL_RESOLVER,
728           "Unable to resolve prefix with null prefix resolver."},
729    
730      // Note to translators:  The substitution text is the name of a data type.  The
731      // message indicates that a value of a particular type could not be converted
732      // to a value of type string.
733      { ER_CANT_CONVERT_TO_STRING,
734           "The XPathResult of XPath expression ''{0}'' has an XPathResultType of {1} which cannot be converted to a string."},
735    
736      // Note to translators: Do not translate snapshotItem,
737      // UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE.
738      { ER_NON_SNAPSHOT_TYPE,
739           "The method snapshotItem cannot be called on the XPathResult of XPath expression ''{0}'' because its XPathResultType is {1}. This method applies only to types UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE."},
740    
741      // Note to translators:  XPathEvaluator is a Java interface name.  An
742      // XPathEvaluator is created with respect to a particular XML document, and in
743      // this case the expression represented by this object was being evaluated with
744      // respect to a context node from a different document.
745      { ER_WRONG_DOCUMENT,
746           "Context node does not belong to the document that is bound to this XPathEvaluator."},
747    
748      // Note to translators:  The XPath expression cannot be evaluated with respect
749      // to this type of node.
750      { ER_WRONG_NODETYPE,
751           "The context node type is not supported."},
752    
753      { ER_XPATH_ERROR,
754           "Unknown error in XPath."},
755    
756      { ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER,
757            "The XPathResult of XPath expression ''{0}'' has an XPathResultType of {1} which cannot be converted to a number"},       
758    
759      //BEGIN:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation
760    
761      /** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED                       */
762    
763      { ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
764           "Extension function: ''{0}'' can not be invoked when the XMLConstants.FEATURE_SECURE_PROCESSING feature is set to true."},
765    
766      /** Field ER_RESOLVE_VARIABLE_RETURNS_NULL                       */
767    
768      { ER_RESOLVE_VARIABLE_RETURNS_NULL,
769           "resolveVariable for variable {0} returning null"},
770    
771      /** Field ER_UNSUPPORTED_RETURN_TYPE                       */
772    
773      { ER_UNSUPPORTED_RETURN_TYPE,
774           "UnSupported Return Type : {0}"},
775    
776      /** Field ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL                       */
777    
778      { ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL,
779           "Source and/or Return Type can not be null"},
780    
781      /** Field ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL                       */
782    
783      { ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL,
784           "Source and/or Return Type can not be null"},
785    
786      /** Field ER_ARG_CANNOT_BE_NULL                       */
787    
788      { ER_ARG_CANNOT_BE_NULL,
789           "{0} argument can not be null"},
790    
791      /** Field ER_OBJECT_MODEL_NULL                       */
792    
793      { ER_OBJECT_MODEL_NULL,
794           "{0}#isObjectModelSupported( String objectModel ) cannot be called with objectModel == null"},
795    
796      /** Field ER_OBJECT_MODEL_EMPTY                       */
797    
798      { ER_OBJECT_MODEL_EMPTY,
799           "{0}#isObjectModelSupported( String objectModel ) cannot be called with objectModel == \"\""},
800    
801      /** Field ER_OBJECT_MODEL_EMPTY                       */
802    
803      { ER_FEATURE_NAME_NULL,
804           "Trying to set a feature with a null name: {0}#setFeature( null, {1})"},
805    
806      /** Field ER_FEATURE_UNKNOWN                       */
807    
808      { ER_FEATURE_UNKNOWN,
809           "Trying to set the unknown feature \"{0}\":{1}#setFeature({0},{2})"},
810    
811      /** Field ER_GETTING_NULL_FEATURE                       */
812    
813      { ER_GETTING_NULL_FEATURE,
814           "Trying to get a feature with a null name: {0}#getFeature(null)"},
815    
816      /** Field ER_GETTING_NULL_FEATURE                       */
817    
818      { ER_GETTING_UNKNOWN_FEATURE,
819           "Trying to get the unknown feature \"{0}\":{1}#getFeature({0})"},
820    
821      /** Field ER_NULL_XPATH_FUNCTION_RESOLVER                       */
822    
823      { ER_NULL_XPATH_FUNCTION_RESOLVER,
824           "Attempting to set a null XPathFunctionResolver:{0}#setXPathFunctionResolver(null)"},
825    
826      /** Field ER_NULL_XPATH_VARIABLE_RESOLVER                       */
827    
828      { ER_NULL_XPATH_VARIABLE_RESOLVER,
829           "Attempting to set a null XPathVariableResolver:{0}#setXPathVariableResolver(null)"},
830    
831      //END:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation
832    
833      // Warnings...
834    
835      { WG_LOCALE_NAME_NOT_HANDLED,
836          "locale name in the format-number function not yet handled!"},
837    
838      { WG_PROPERTY_NOT_SUPPORTED,
839          "XSL Property not supported: {0}"},
840    
841      { WG_DONT_DO_ANYTHING_WITH_NS,
842          "Do not currently do anything with namespace {0} in property: {1}"},
843    
844      { WG_SECURITY_EXCEPTION,
845          "SecurityException when trying to access XSL system property: {0}"},
846    
847      { WG_QUO_NO_LONGER_DEFINED,
848          "Old syntax: quo(...) is no longer defined in XPath."},
849    
850      { WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST,
851          "XPath needs a derived object to implement nodeTest!"},
852    
853      { WG_FUNCTION_TOKEN_NOT_FOUND,
854          "function token not found."},
855    
856      { WG_COULDNOT_FIND_FUNCTION,
857          "Could not find function: {0}"},
858    
859      { WG_CANNOT_MAKE_URL_FROM,
860          "Can not make URL from: {0}"},
861    
862      { WG_EXPAND_ENTITIES_NOT_SUPPORTED,
863          "-E option not supported for DTM parser"},
864    
865      { WG_ILLEGAL_VARIABLE_REFERENCE,
866          "VariableReference given for variable out of context or without definition!  Name = {0}"},
867    
868      { WG_UNSUPPORTED_ENCODING,
869         "Unsupported encoding: {0}"},
870    
871    
872    
873      // Other miscellaneous text used inside the code...
874      { "ui_language", "en"},
875      { "help_language", "en"},
876      { "language", "en"},
877      { "BAD_CODE", "Parameter to createMessage was out of bounds"},
878      { "FORMAT_FAILED", "Exception thrown during messageFormat call"},
879      { "version", ">>>>>>> Xalan Version "},
880      { "version2", "<<<<<<<"},
881      { "yes", "yes"},
882      { "line", "Line #"},
883      { "column", "Column #"},
884      { "xsldone", "XSLProcessor: done"},
885      { "xpath_option", "xpath options: "},
886      { "optionIN", "   [-in inputXMLURL]"},
887      { "optionSelect", "   [-select xpath expression]"},
888      { "optionMatch", "   [-match match pattern (for match diagnostics)]"},
889      { "optionAnyExpr", "Or just an xpath expression will do a diagnostic dump"},
890      { "noParsermsg1", "XSL Process was not successful."},
891      { "noParsermsg2", "** Could not find parser **"},
892      { "noParsermsg3", "Please check your classpath."},
893      { "noParsermsg4", "If you don't have IBM's XML Parser for Java, you can download it from"},
894      { "noParsermsg5", "IBM's AlphaWorks: http://www.alphaworks.ibm.com/formula/xml"},
895      { "gtone", ">1" },
896      { "zero", "0" },
897      { "one", "1" },
898      { "two" , "2" },
899      { "three", "3" }
900    
901      };
902      }
903    
904    
905      // ================= INFRASTRUCTURE ======================
906    
907      /** Field BAD_CODE          */
908      public static final String BAD_CODE = "BAD_CODE";
909    
910      /** Field FORMAT_FAILED          */
911      public static final String FORMAT_FAILED = "FORMAT_FAILED";
912    
913      /** Field ERROR_RESOURCES          */
914      public static final String ERROR_RESOURCES =
915        "org.apache.xpath.res.XPATHErrorResources";
916    
917      /** Field ERROR_STRING          */
918      public static final String ERROR_STRING = "#error";
919    
920      /** Field ERROR_HEADER          */
921      public static final String ERROR_HEADER = "Error: ";
922    
923      /** Field WARNING_HEADER          */
924      public static final String WARNING_HEADER = "Warning: ";
925    
926      /** Field XSL_HEADER          */
927      public static final String XSL_HEADER = "XSL ";
928    
929      /** Field XML_HEADER          */
930      public static final String XML_HEADER = "XML ";
931    
932      /** Field QUERY_HEADER          */
933      public static final String QUERY_HEADER = "PATTERN ";
934    
935    
936      /**
937       * Return a named ResourceBundle for a particular locale.  This method mimics the behavior
938       * of ResourceBundle.getBundle().
939       *
940       * @param className Name of local-specific subclass.
941       * @return the ResourceBundle
942       * @throws MissingResourceException
943       */
944      public static final XPATHErrorResources loadResourceBundle(String className)
945              throws MissingResourceException
946      {
947    
948        Locale locale = Locale.getDefault();
949        String suffix = getResourceSuffix(locale);
950    
951        try
952        {
953    
954          // first try with the given locale
955          return (XPATHErrorResources) ResourceBundle.getBundle(className
956                  + suffix, locale);
957        }
958        catch (MissingResourceException e)
959        {
960          try  // try to fall back to en_US if we can't load
961          {
962    
963            // Since we can't find the localized property file,
964            // fall back to en_US.
965            return (XPATHErrorResources) ResourceBundle.getBundle(className,
966                    new Locale("en", "US"));
967          }
968          catch (MissingResourceException e2)
969          {
970    
971            // Now we are really in trouble.
972            // very bad, definitely very bad...not going to get very far
973            throw new MissingResourceException(
974              "Could not load any resource bundles.", className, "");
975          }
976        }
977      }
978    
979      /**
980       * Return the resource file suffic for the indicated locale
981       * For most locales, this will be based the language code.  However
982       * for Chinese, we do distinguish between Taiwan and PRC
983       *
984       * @param locale the locale
985       * @return an String suffix which canbe appended to a resource name
986       */
987      private static final String getResourceSuffix(Locale locale)
988      {
989    
990        String suffix = "_" + locale.getLanguage();
991        String country = locale.getCountry();
992    
993        if (country.equals("TW"))
994          suffix += "_" + country;
995    
996        return suffix;
997      }
998    
999    }