1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the  "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18/*
19 * $Id: XPATHErrorResources.java 468655 2006-10-28 07:12:06Z minchau $
20 */
21package org.apache.xpath.res;
22
23import java.util.ListResourceBundle;
24import java.util.Locale;
25import java.util.MissingResourceException;
26import java.util.ResourceBundle;
27
28/**
29 * Set up error messages.
30 * We build a two dimensional array of message keys and
31 * message strings. In order to add a new message here,
32 * you need to first add a Static string constant for the
33 * Key and update the contents array with Key, Value pair
34  * Also you need to  update the count of messages(MAX_CODE)or
35 * the count of warnings(MAX_WARNING) [ Information purpose only]
36 * @xsl.usage advanced
37 */
38public class XPATHErrorResources extends ListResourceBundle
39{
40
41/*
42 * General notes to translators:
43 *
44 * This file contains error and warning messages related to XPath Error
45 * Handling.
46 *
47 *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
48 *     components.
49 *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
50 *     XSLTC is an acronym for XSLT Compiler.
51 *
52 *  2) A stylesheet is a description of how to transform an input XML document
53 *     into a resultant XML document (or HTML document or text).  The
54 *     stylesheet itself is described in the form of an XML document.
55 *
56 *  3) A template is a component of a stylesheet that is used to match a
57 *     particular portion of an input document and specifies the form of the
58 *     corresponding portion of the output document.
59 *
60 *  4) An element is a mark-up tag in an XML document; an attribute is a
61 *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
62 *     "elem" is an element name, "attr" and "attr2" are attribute names with
63 *     the values "val" and "val2", respectively.
64 *
65 *  5) A namespace declaration is a special attribute that is used to associate
66 *     a prefix with a URI (the namespace).  The meanings of element names and
67 *     attribute names that use that prefix are defined with respect to that
68 *     namespace.
69 *
70 *  6) "Translet" is an invented term that describes the class file that
71 *     results from compiling an XML stylesheet into a Java class.
72 *
73 *  7) XPath is a specification that describes a notation for identifying
74 *     nodes in a tree-structured representation of an XML document.  An
75 *     instance of that notation is referred to as an XPath expression.
76 *
77 *  8) The context node is the node in the document with respect to which an
78 *     XPath expression is being evaluated.
79 *
80 *  9) An iterator is an object that traverses nodes in the tree, one at a time.
81 *
82 *  10) NCName is an XML term used to describe a name that does not contain a
83 *     colon (a "no-colon name").
84 *
85 *  11) QName is an XML term meaning "qualified name".
86 */
87
88  /*
89   * static variables
90   */
91  public static final String ERROR0000 = "ERROR0000";
92  public static final String ER_CURRENT_NOT_ALLOWED_IN_MATCH =
93	 "ER_CURRENT_NOT_ALLOWED_IN_MATCH";
94  public static final String ER_CURRENT_TAKES_NO_ARGS =
95	 "ER_CURRENT_TAKES_NO_ARGS";
96  public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED";
97  public static final String ER_CONTEXT_HAS_NO_OWNERDOC =
98	 "ER_CONTEXT_HAS_NO_OWNERDOC";
99  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";
185public 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}
1000