Adding and fixing SVN properties.

git-svn-id: https://svn.apache.org/repos/asf/xalan/java/trunk@1225426 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/MANIFEST.SERIALIZER b/src/MANIFEST.SERIALIZER
index eb5dfb3..8d6eb9c 100644
--- a/src/MANIFEST.SERIALIZER
+++ b/src/MANIFEST.SERIALIZER
@@ -1,20 +1,20 @@
-Manifest-Version: 1.0

-Created-By: @java.version@ (@java.vendor@)

-Main-Class: org.apache.xml.serializer.Version

-Class-Path: xml-apis.jar

-

-Name: org/apache/xml/serializer/

-Comment: Serializer to write out XML, HTML etc. as a stream of characters from an input DOM or from input SAX events.

-Specification-Title: XSL Transformations (XSLT), at http://www.w3.org/TR/xslt

-Specification-Vendor: W3C Recommendation 16 November 1999

-Specification-Version: 1.0

-Implementation-Title: org.apache.xml.serializer

-Implementation-Version: @impl.version@

-Implementation-Vendor: Apache Software Foundation

-Implementation-URL: http://xml.apache.org/xalan-j/usagepatterns.html

-

-Name: org/apache/xml/serializer/utils/

-Comment: Utilities used internally by the Serializer. Not for external use.

-Implementation-Title: org.apache.xml.serializer.utils

-Implementation-Version: @impl.version@

-Implementation-Vendor: Apache Software Foundation

+Manifest-Version: 1.0
+Created-By: @java.version@ (@java.vendor@)
+Main-Class: org.apache.xml.serializer.Version
+Class-Path: xml-apis.jar
+
+Name: org/apache/xml/serializer/
+Comment: Serializer to write out XML, HTML etc. as a stream of characters from an input DOM or from input SAX events.
+Specification-Title: XSL Transformations (XSLT), at http://www.w3.org/TR/xslt
+Specification-Vendor: W3C Recommendation 16 November 1999
+Specification-Version: 1.0
+Implementation-Title: org.apache.xml.serializer
+Implementation-Version: @impl.version@
+Implementation-Vendor: Apache Software Foundation
+Implementation-URL: http://xml.apache.org/xalan-j/usagepatterns.html
+
+Name: org/apache/xml/serializer/utils/
+Comment: Utilities used internally by the Serializer. Not for external use.
+Implementation-Title: org.apache.xml.serializer.utils
+Implementation-Version: @impl.version@
+Implementation-Vendor: Apache Software Foundation
diff --git a/src/org/apache/xalan/Version.src b/src/org/apache/xalan/Version.src
index f1fb77e..ae942c7 100644
--- a/src/org/apache/xalan/Version.src
+++ b/src/org/apache/xalan/Version.src
@@ -1,153 +1,153 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id$

- */

-package org.apache.xalan;

-

-/**

- * Administrative class to keep track of the version number of

- * the Xalan release.

- * <P>This class implements the upcoming standard of having

- * org.apache.project-name.Version.getVersion() be a standard way 

- * to get version information.  This class will replace the older 

- * org.apache.xalan.processor.Version class.</P>

- * <P>See also: org/apache/xalan/res/XSLTInfo.properties for 

- * information about the version of the XSLT spec we support.</P>

- * @xsl.usage general

- */

-public class Version

-{

-

-  /**

-   * Get the basic version string for the current Xalan release.

-   * Version String formatted like 

-   * <CODE>"<B>Xalan</B> <B>Java</B> v.r[.dd| <B>D</B>nn]"</CODE>.

-   *

-   * Futurework: have this read version info from jar manifest.

-   *

-   * @return String denoting our current version

-   */

-  public static String getVersion()

-  {

-     return getProduct()+" "+getImplementationLanguage()+" "

-           +getMajorVersionNum()+"."+getReleaseVersionNum()+"."

-           +( (getDevelopmentVersionNum() > 0) ? 

-               ("D"+getDevelopmentVersionNum()) : (""+getMaintenanceVersionNum()));  

-  }

-

-  /**

-   * Print the processor version to the command line.

-   *

-   * @param argv command line arguments, unused.

-   */

-  public static void main(String argv[])

-  {

-    System.out.println(getVersion());

-  }

-  

-  /**

-   * Name of product: Xalan.

-   */

-  public static String getProduct()

-  {

-    return "Xalan";

-  }

-

-  /**

-   * Implementation Language: Java.

-   */

-  public static String getImplementationLanguage()

-  {

-    return "Java";

-  }

-  

-  

-  /**

-   * Major version number.

-   * Version number. This changes only when there is a

-   *          significant, externally apparent enhancement from

-   *          the previous release. 'n' represents the n'th

-   *          version.

-   *

-   *          Clients should carefully consider the implications

-   *          of new versions as external interfaces and behaviour

-   *          may have changed.

-   */

-  public static int getMajorVersionNum()

-  {

-    return @version.VERSION@;

-    

-  }  

-

-  /**

-   * Release Number.

-   * Release number. This changes when:

-   *            -  a new set of functionality is to be added, eg,

-   *               implementation of a new W3C specification.

-   *            -  API or behaviour change.

-   *            -  its designated as a reference release.

-   */

-  public static int getReleaseVersionNum()

-  {

-    return @version.RELEASE@;

-  }

-  

-  /**

-   * Maintenance Drop Number.

-   * Optional identifier used to designate maintenance

-   *          drop applied to a specific release and contains

-   *          fixes for defects reported. It maintains compatibility

-   *          with the release and contains no API changes.

-   *          When missing, it designates the final and complete

-   *          development drop for a release.

-   */

-  public static int getMaintenanceVersionNum()

-  {

-    return @version.MINOR@;

-  }

-

-  /**

-   * Development Drop Number.

-   * Optional identifier designates development drop of

-   *          a specific release. D01 is the first development drop

-   *          of a new release.

-   *

-   *          Development drops are works in progress towards a

-   *          compeleted, final release. A specific development drop

-   *          may not completely implement all aspects of a new

-   *          feature, which may take several development drops to

-   *          complete. At the point of the final drop for the

-   *          release, the D suffix will be omitted.

-   *

-   *          Each 'D' drops can contain functional enhancements as

-   *          well as defect fixes. 'D' drops may not be as stable as

-   *          the final releases.

-   */

-  public static int getDevelopmentVersionNum()

-  { 

-    try {   

-        if ((new String("@version.DEVELOPER@")).length() == 0)

-          return 0;

-        else  

-          return Integer.parseInt("@version.DEVELOPER@");

-    } catch (NumberFormatException nfe) {

-           return 0;

-    }    

-  }      

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan;
+
+/**
+ * Administrative class to keep track of the version number of
+ * the Xalan release.
+ * <P>This class implements the upcoming standard of having
+ * org.apache.project-name.Version.getVersion() be a standard way 
+ * to get version information.  This class will replace the older 
+ * org.apache.xalan.processor.Version class.</P>
+ * <P>See also: org/apache/xalan/res/XSLTInfo.properties for 
+ * information about the version of the XSLT spec we support.</P>
+ * @xsl.usage general
+ */
+public class Version
+{
+
+  /**
+   * Get the basic version string for the current Xalan release.
+   * Version String formatted like 
+   * <CODE>"<B>Xalan</B> <B>Java</B> v.r[.dd| <B>D</B>nn]"</CODE>.
+   *
+   * Futurework: have this read version info from jar manifest.
+   *
+   * @return String denoting our current version
+   */
+  public static String getVersion()
+  {
+     return getProduct()+" "+getImplementationLanguage()+" "
+           +getMajorVersionNum()+"."+getReleaseVersionNum()+"."
+           +( (getDevelopmentVersionNum() > 0) ? 
+               ("D"+getDevelopmentVersionNum()) : (""+getMaintenanceVersionNum()));  
+  }
+
+  /**
+   * Print the processor version to the command line.
+   *
+   * @param argv command line arguments, unused.
+   */
+  public static void main(String argv[])
+  {
+    System.out.println(getVersion());
+  }
+  
+  /**
+   * Name of product: Xalan.
+   */
+  public static String getProduct()
+  {
+    return "Xalan";
+  }
+
+  /**
+   * Implementation Language: Java.
+   */
+  public static String getImplementationLanguage()
+  {
+    return "Java";
+  }
+  
+  
+  /**
+   * Major version number.
+   * Version number. This changes only when there is a
+   *          significant, externally apparent enhancement from
+   *          the previous release. 'n' represents the n'th
+   *          version.
+   *
+   *          Clients should carefully consider the implications
+   *          of new versions as external interfaces and behaviour
+   *          may have changed.
+   */
+  public static int getMajorVersionNum()
+  {
+    return @version.VERSION@;
+    
+  }  
+
+  /**
+   * Release Number.
+   * Release number. This changes when:
+   *            -  a new set of functionality is to be added, eg,
+   *               implementation of a new W3C specification.
+   *            -  API or behaviour change.
+   *            -  its designated as a reference release.
+   */
+  public static int getReleaseVersionNum()
+  {
+    return @version.RELEASE@;
+  }
+  
+  /**
+   * Maintenance Drop Number.
+   * Optional identifier used to designate maintenance
+   *          drop applied to a specific release and contains
+   *          fixes for defects reported. It maintains compatibility
+   *          with the release and contains no API changes.
+   *          When missing, it designates the final and complete
+   *          development drop for a release.
+   */
+  public static int getMaintenanceVersionNum()
+  {
+    return @version.MINOR@;
+  }
+
+  /**
+   * Development Drop Number.
+   * Optional identifier designates development drop of
+   *          a specific release. D01 is the first development drop
+   *          of a new release.
+   *
+   *          Development drops are works in progress towards a
+   *          compeleted, final release. A specific development drop
+   *          may not completely implement all aspects of a new
+   *          feature, which may take several development drops to
+   *          complete. At the point of the final drop for the
+   *          release, the D suffix will be omitted.
+   *
+   *          Each 'D' drops can contain functional enhancements as
+   *          well as defect fixes. 'D' drops may not be as stable as
+   *          the final releases.
+   */
+  public static int getDevelopmentVersionNum()
+  { 
+    try {   
+        if ((new String("@version.DEVELOPER@")).length() == 0)
+          return 0;
+        else  
+          return Integer.parseInt("@version.DEVELOPER@");
+    } catch (NumberFormatException nfe) {
+           return 0;
+    }    
+  }      
+}
diff --git a/src/org/apache/xalan/res/XSLTErrorResources_sl.java b/src/org/apache/xalan/res/XSLTErrorResources_sl.java
old mode 100755
new mode 100644
index d77dcea..74fac02
--- a/src/org/apache/xalan/res/XSLTErrorResources_sl.java
+++ b/src/org/apache/xalan/res/XSLTErrorResources_sl.java
@@ -1,1517 +1,1517 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: XSLTErrorResources_sl.java 338081 2004-12-15 17:35:58Z jycli $

- */

-package org.apache.xalan.res;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * Set up error messages.

- * We build a two dimensional array of message keys and

- * message strings. In order to add a new message here,

- * you need to first add a String constant. And

- *  you need to enter key , value pair as part of contents

- * Array. You also need to update MAX_CODE for error strings

- * and MAX_WARNING for warnings ( Needed for only information

- * purpose )

- */

-public class XSLTErrorResources_sl extends ListResourceBundle

-{

-

-/*

- * This file contains error and warning messages related to Xalan Error

- * Handling.

- *

- *  General notes to translators:

- *

- *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of

- *     components.

- *     XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *     XSLTC is an acronym for XSLT Compiler.

- *

- *  2) A stylesheet is a description of how to transform an input XML document

- *     into a resultant XML document (or HTML document or text).  The

- *     stylesheet itself is described in the form of an XML document.

- *

- *  3) A template is a component of a stylesheet that is used to match a

- *     particular portion of an input document and specifies the form of the

- *     corresponding portion of the output document.

- *

- *  4) An element is a mark-up tag in an XML document; an attribute is a

- *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *     "elem" is an element name, "attr" and "attr2" are attribute names with

- *     the values "val" and "val2", respectively.

- *

- *  5) A namespace declaration is a special attribute that is used to associate

- *     a prefix with a URI (the namespace).  The meanings of element names and

- *     attribute names that use that prefix are defined with respect to that

- *     namespace.

- *

- *  6) "Translet" is an invented term that describes the class file that

- *     results from compiling an XML stylesheet into a Java class.

- *

- *  7) XPath is a specification that describes a notation for identifying

- *     nodes in a tree-structured representation of an XML document.  An

- *     instance of that notation is referred to as an XPath expression.

- *

- */

-

-  /*

-   * Static variables

-   */

-  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX =

-        "ER_INVALID_SET_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX";

-

-  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT =

-        "ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT";

-

-  public static final String ER_NO_CURLYBRACE = "ER_NO_CURLYBRACE";

-  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";

-  public static final String ER_ILLEGAL_ATTRIBUTE = "ER_ILLEGAL_ATTRIBUTE";

-  public static final String ER_NULL_SOURCENODE_APPLYIMPORTS = "ER_NULL_SOURCENODE_APPLYIMPORTS";

-  public static final String ER_CANNOT_ADD = "ER_CANNOT_ADD";

-  public static final String ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES="ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES";

-  public static final String ER_NO_NAME_ATTRIB = "ER_NO_NAME_ATTRIB";

-  public static final String ER_TEMPLATE_NOT_FOUND = "ER_TEMPLATE_NOT_FOUND";

-  public static final String ER_CANT_RESOLVE_NAME_AVT = "ER_CANT_RESOLVE_NAME_AVT";

-  public static final String ER_REQUIRES_ATTRIB = "ER_REQUIRES_ATTRIB";

-  public static final String ER_MUST_HAVE_TEST_ATTRIB = "ER_MUST_HAVE_TEST_ATTRIB";

-  public static final String ER_BAD_VAL_ON_LEVEL_ATTRIB =

-         "ER_BAD_VAL_ON_LEVEL_ATTRIB";

-  public static final String ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =

-         "ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";

-  public static final String ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =

-         "ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";

-  public static final String ER_NEED_MATCH_ATTRIB = "ER_NEED_MATCH_ATTRIB";

-  public static final String ER_NEED_NAME_OR_MATCH_ATTRIB =

-         "ER_NEED_NAME_OR_MATCH_ATTRIB";

-  public static final String ER_CANT_RESOLVE_NSPREFIX =

-         "ER_CANT_RESOLVE_NSPREFIX";

-  public static final String ER_ILLEGAL_VALUE = "ER_ILLEGAL_VALUE";

-  public static final String ER_NO_OWNERDOC = "ER_NO_OWNERDOC";

-  public static final String ER_ELEMTEMPLATEELEM_ERR ="ER_ELEMTEMPLATEELEM_ERR";

-  public static final String ER_NULL_CHILD = "ER_NULL_CHILD";

-  public static final String ER_NEED_SELECT_ATTRIB = "ER_NEED_SELECT_ATTRIB";

-  public static final String ER_NEED_TEST_ATTRIB = "ER_NEED_TEST_ATTRIB";

-  public static final String ER_NEED_NAME_ATTRIB = "ER_NEED_NAME_ATTRIB";

-  public static final String ER_NO_CONTEXT_OWNERDOC = "ER_NO_CONTEXT_OWNERDOC";

-  public static final String ER_COULD_NOT_CREATE_XML_PROC_LIAISON =

-         "ER_COULD_NOT_CREATE_XML_PROC_LIAISON";

-  public static final String ER_PROCESS_NOT_SUCCESSFUL =

-         "ER_PROCESS_NOT_SUCCESSFUL";

-  public static final String ER_NOT_SUCCESSFUL = "ER_NOT_SUCCESSFUL";

-  public static final String ER_ENCODING_NOT_SUPPORTED =

-         "ER_ENCODING_NOT_SUPPORTED";

-  public static final String ER_COULD_NOT_CREATE_TRACELISTENER =

-         "ER_COULD_NOT_CREATE_TRACELISTENER";

-  public static final String ER_KEY_REQUIRES_NAME_ATTRIB =

-         "ER_KEY_REQUIRES_NAME_ATTRIB";

-  public static final String ER_KEY_REQUIRES_MATCH_ATTRIB =

-         "ER_KEY_REQUIRES_MATCH_ATTRIB";

-  public static final String ER_KEY_REQUIRES_USE_ATTRIB =

-         "ER_KEY_REQUIRES_USE_ATTRIB";

-  public static final String ER_REQUIRES_ELEMENTS_ATTRIB =

-         "ER_REQUIRES_ELEMENTS_ATTRIB";

-  public static final String ER_MISSING_PREFIX_ATTRIB =

-         "ER_MISSING_PREFIX_ATTRIB";

-  public static final String ER_BAD_STYLESHEET_URL = "ER_BAD_STYLESHEET_URL";

-  public static final String ER_FILE_NOT_FOUND = "ER_FILE_NOT_FOUND";

-  public static final String ER_IOEXCEPTION = "ER_IOEXCEPTION";

-  public static final String ER_NO_HREF_ATTRIB = "ER_NO_HREF_ATTRIB";

-  public static final String ER_STYLESHEET_INCLUDES_ITSELF =

-         "ER_STYLESHEET_INCLUDES_ITSELF";

-  public static final String ER_PROCESSINCLUDE_ERROR ="ER_PROCESSINCLUDE_ERROR";

-  public static final String ER_MISSING_LANG_ATTRIB = "ER_MISSING_LANG_ATTRIB";

-  public static final String ER_MISSING_CONTAINER_ELEMENT_COMPONENT =

-         "ER_MISSING_CONTAINER_ELEMENT_COMPONENT";

-  public static final String ER_CAN_ONLY_OUTPUT_TO_ELEMENT =

-         "ER_CAN_ONLY_OUTPUT_TO_ELEMENT";

-  public static final String ER_PROCESS_ERROR = "ER_PROCESS_ERROR";

-  public static final String ER_UNIMPLNODE_ERROR = "ER_UNIMPLNODE_ERROR";

-  public static final String ER_NO_SELECT_EXPRESSION ="ER_NO_SELECT_EXPRESSION";

-  public static final String ER_CANNOT_SERIALIZE_XSLPROCESSOR =

-         "ER_CANNOT_SERIALIZE_XSLPROCESSOR";

-  public static final String ER_NO_INPUT_STYLESHEET = "ER_NO_INPUT_STYLESHEET";

-  public static final String ER_FAILED_PROCESS_STYLESHEET =

-         "ER_FAILED_PROCESS_STYLESHEET";

-  public static final String ER_COULDNT_PARSE_DOC = "ER_COULDNT_PARSE_DOC";

-  public static final String ER_COULDNT_FIND_FRAGMENT =

-         "ER_COULDNT_FIND_FRAGMENT";

-  public static final String ER_NODE_NOT_ELEMENT = "ER_NODE_NOT_ELEMENT";

-  public static final String ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB =

-         "ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB";

-  public static final String ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB =

-         "ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB";

-  public static final String ER_NO_CLONE_OF_DOCUMENT_FRAG =

-         "ER_NO_CLONE_OF_DOCUMENT_FRAG";

-  public static final String ER_CANT_CREATE_ITEM = "ER_CANT_CREATE_ITEM";

-  public static final String ER_XMLSPACE_ILLEGAL_VALUE =

-         "ER_XMLSPACE_ILLEGAL_VALUE";

-  public static final String ER_NO_XSLKEY_DECLARATION =

-         "ER_NO_XSLKEY_DECLARATION";

-  public static final String ER_CANT_CREATE_URL = "ER_CANT_CREATE_URL";

-  public static final String ER_XSLFUNCTIONS_UNSUPPORTED =

-         "ER_XSLFUNCTIONS_UNSUPPORTED";

-  public static final String ER_PROCESSOR_ERROR = "ER_PROCESSOR_ERROR";

-  public static final String ER_NOT_ALLOWED_INSIDE_STYLESHEET =

-         "ER_NOT_ALLOWED_INSIDE_STYLESHEET";

-  public static final String ER_RESULTNS_NOT_SUPPORTED =

-         "ER_RESULTNS_NOT_SUPPORTED";

-  public static final String ER_DEFAULTSPACE_NOT_SUPPORTED =

-         "ER_DEFAULTSPACE_NOT_SUPPORTED";

-  public static final String ER_INDENTRESULT_NOT_SUPPORTED =

-         "ER_INDENTRESULT_NOT_SUPPORTED";

-  public static final String ER_ILLEGAL_ATTRIB = "ER_ILLEGAL_ATTRIB";

-  public static final String ER_UNKNOWN_XSL_ELEM = "ER_UNKNOWN_XSL_ELEM";

-  public static final String ER_BAD_XSLSORT_USE = "ER_BAD_XSLSORT_USE";

-  public static final String ER_MISPLACED_XSLWHEN = "ER_MISPLACED_XSLWHEN";

-  public static final String ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE =

-         "ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE";

-  public static final String ER_MISPLACED_XSLOTHERWISE =

-         "ER_MISPLACED_XSLOTHERWISE";

-  public static final String ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE =

-         "ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE";

-  public static final String ER_NOT_ALLOWED_INSIDE_TEMPLATE =

-         "ER_NOT_ALLOWED_INSIDE_TEMPLATE";

-  public static final String ER_UNKNOWN_EXT_NS_PREFIX =

-         "ER_UNKNOWN_EXT_NS_PREFIX";

-  public static final String ER_IMPORTS_AS_FIRST_ELEM =

-         "ER_IMPORTS_AS_FIRST_ELEM";

-  public static final String ER_IMPORTING_ITSELF = "ER_IMPORTING_ITSELF";

-  public static final String ER_XMLSPACE_ILLEGAL_VAL ="ER_XMLSPACE_ILLEGAL_VAL";

-  public static final String ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL =

-         "ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL";

-  public static final String ER_SAX_EXCEPTION = "ER_SAX_EXCEPTION";

-  public static final String ER_XSLT_ERROR = "ER_XSLT_ERROR";

-  public static final String ER_CURRENCY_SIGN_ILLEGAL=

-         "ER_CURRENCY_SIGN_ILLEGAL";

-  public static final String ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM =

-         "ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM";

-  public static final String ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER =

-         "ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER";

-  public static final String ER_REDIRECT_COULDNT_GET_FILENAME =

-         "ER_REDIRECT_COULDNT_GET_FILENAME";

-  public static final String ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT =

-         "ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT";

-  public static final String ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX =

-         "ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX";

-  public static final String ER_MISSING_NS_URI = "ER_MISSING_NS_URI";

-  public static final String ER_MISSING_ARG_FOR_OPTION =

-         "ER_MISSING_ARG_FOR_OPTION";

-  public static final String ER_INVALID_OPTION = "ER_INVALID_OPTION";

-  public static final String ER_MALFORMED_FORMAT_STRING =

-         "ER_MALFORMED_FORMAT_STRING";

-  public static final String ER_STYLESHEET_REQUIRES_VERSION_ATTRIB =

-         "ER_STYLESHEET_REQUIRES_VERSION_ATTRIB";

-  public static final String ER_ILLEGAL_ATTRIBUTE_VALUE =

-         "ER_ILLEGAL_ATTRIBUTE_VALUE";

-  public static final String ER_CHOOSE_REQUIRES_WHEN ="ER_CHOOSE_REQUIRES_WHEN";

-  public static final String ER_NO_APPLY_IMPORT_IN_FOR_EACH =

-         "ER_NO_APPLY_IMPORT_IN_FOR_EACH";

-  public static final String ER_CANT_USE_DTM_FOR_OUTPUT =

-         "ER_CANT_USE_DTM_FOR_OUTPUT";

-  public static final String ER_CANT_USE_DTM_FOR_INPUT =

-         "ER_CANT_USE_DTM_FOR_INPUT";

-  public static final String ER_CALL_TO_EXT_FAILED = "ER_CALL_TO_EXT_FAILED";

-  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";

-  public static final String ER_INVALID_UTF16_SURROGATE =

-         "ER_INVALID_UTF16_SURROGATE";

-  public static final String ER_XSLATTRSET_USED_ITSELF =

-         "ER_XSLATTRSET_USED_ITSELF";

-  public static final String ER_CANNOT_MIX_XERCESDOM ="ER_CANNOT_MIX_XERCESDOM";

-  public static final String ER_TOO_MANY_LISTENERS = "ER_TOO_MANY_LISTENERS";

-  public static final String ER_IN_ELEMTEMPLATEELEM_READOBJECT =

-         "ER_IN_ELEMTEMPLATEELEM_READOBJECT";

-  public static final String ER_DUPLICATE_NAMED_TEMPLATE =

-         "ER_DUPLICATE_NAMED_TEMPLATE";

-  public static final String ER_INVALID_KEY_CALL = "ER_INVALID_KEY_CALL";

-  public static final String ER_REFERENCING_ITSELF = "ER_REFERENCING_ITSELF";

-  public static final String ER_ILLEGAL_DOMSOURCE_INPUT =

-         "ER_ILLEGAL_DOMSOURCE_INPUT";

-  public static final String ER_CLASS_NOT_FOUND_FOR_OPTION =

-         "ER_CLASS_NOT_FOUND_FOR_OPTION";

-  public static final String ER_REQUIRED_ELEM_NOT_FOUND =

-         "ER_REQUIRED_ELEM_NOT_FOUND";

-  public static final String ER_INPUT_CANNOT_BE_NULL ="ER_INPUT_CANNOT_BE_NULL";

-  public static final String ER_URI_CANNOT_BE_NULL = "ER_URI_CANNOT_BE_NULL";

-  public static final String ER_FILE_CANNOT_BE_NULL = "ER_FILE_CANNOT_BE_NULL";

-  public static final String ER_SOURCE_CANNOT_BE_NULL =

-         "ER_SOURCE_CANNOT_BE_NULL";

-  public static final String ER_CANNOT_INIT_BSFMGR = "ER_CANNOT_INIT_BSFMGR";

-  public static final String ER_CANNOT_CMPL_EXTENSN = "ER_CANNOT_CMPL_EXTENSN";

-  public static final String ER_CANNOT_CREATE_EXTENSN =

-         "ER_CANNOT_CREATE_EXTENSN";

-  public static final String ER_INSTANCE_MTHD_CALL_REQUIRES =

-         "ER_INSTANCE_MTHD_CALL_REQUIRES";

-  public static final String ER_INVALID_ELEMENT_NAME ="ER_INVALID_ELEMENT_NAME";

-  public static final String ER_ELEMENT_NAME_METHOD_STATIC =

-         "ER_ELEMENT_NAME_METHOD_STATIC";

-  public static final String ER_EXTENSION_FUNC_UNKNOWN =

-         "ER_EXTENSION_FUNC_UNKNOWN";

-  public static final String ER_MORE_MATCH_CONSTRUCTOR =

-         "ER_MORE_MATCH_CONSTRUCTOR";

-  public static final String ER_MORE_MATCH_METHOD = "ER_MORE_MATCH_METHOD";

-  public static final String ER_MORE_MATCH_ELEMENT = "ER_MORE_MATCH_ELEMENT";

-  public static final String ER_INVALID_CONTEXT_PASSED =

-         "ER_INVALID_CONTEXT_PASSED";

-  public static final String ER_POOL_EXISTS = "ER_POOL_EXISTS";

-  public static final String ER_NO_DRIVER_NAME = "ER_NO_DRIVER_NAME";

-  public static final String ER_NO_URL = "ER_NO_URL";

-  public static final String ER_POOL_SIZE_LESSTHAN_ONE =

-         "ER_POOL_SIZE_LESSTHAN_ONE";

-  public static final String ER_INVALID_DRIVER = "ER_INVALID_DRIVER";

-  public static final String ER_NO_STYLESHEETROOT = "ER_NO_STYLESHEETROOT";

-  public static final String ER_ILLEGAL_XMLSPACE_VALUE =

-         "ER_ILLEGAL_XMLSPACE_VALUE";

-  public static final String ER_PROCESSFROMNODE_FAILED =

-         "ER_PROCESSFROMNODE_FAILED";

-  public static final String ER_RESOURCE_COULD_NOT_LOAD =

-         "ER_RESOURCE_COULD_NOT_LOAD";

-  public static final String ER_BUFFER_SIZE_LESSTHAN_ZERO =

-         "ER_BUFFER_SIZE_LESSTHAN_ZERO";

-  public static final String ER_UNKNOWN_ERROR_CALLING_EXTENSION =

-         "ER_UNKNOWN_ERROR_CALLING_EXTENSION";

-  public static final String ER_NO_NAMESPACE_DECL = "ER_NO_NAMESPACE_DECL";

-  public static final String ER_ELEM_CONTENT_NOT_ALLOWED =

-         "ER_ELEM_CONTENT_NOT_ALLOWED";

-  public static final String ER_STYLESHEET_DIRECTED_TERMINATION =

-         "ER_STYLESHEET_DIRECTED_TERMINATION";

-  public static final String ER_ONE_OR_TWO = "ER_ONE_OR_TWO";

-  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";

-  public static final String ER_COULD_NOT_LOAD_RESOURCE =

-         "ER_COULD_NOT_LOAD_RESOURCE";

-  public static final String ER_CANNOT_INIT_DEFAULT_TEMPLATES =

-         "ER_CANNOT_INIT_DEFAULT_TEMPLATES";

-  public static final String ER_RESULT_NULL = "ER_RESULT_NULL";

-  public static final String ER_RESULT_COULD_NOT_BE_SET =

-         "ER_RESULT_COULD_NOT_BE_SET";

-  public static final String ER_NO_OUTPUT_SPECIFIED = "ER_NO_OUTPUT_SPECIFIED";

-  public static final String ER_CANNOT_TRANSFORM_TO_RESULT_TYPE =

-         "ER_CANNOT_TRANSFORM_TO_RESULT_TYPE";

-  public static final String ER_CANNOT_TRANSFORM_SOURCE_TYPE =

-         "ER_CANNOT_TRANSFORM_SOURCE_TYPE";

-  public static final String ER_NULL_CONTENT_HANDLER ="ER_NULL_CONTENT_HANDLER";

-  public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";

-  public static final String ER_CANNOT_CALL_PARSE = "ER_CANNOT_CALL_PARSE";

-  public static final String ER_NO_PARENT_FOR_FILTER ="ER_NO_PARENT_FOR_FILTER";

-  public static final String ER_NO_STYLESHEET_IN_MEDIA =

-         "ER_NO_STYLESHEET_IN_MEDIA";

-  public static final String ER_NO_STYLESHEET_PI = "ER_NO_STYLESHEET_PI";

-  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";

-  public static final String ER_PROPERTY_VALUE_BOOLEAN =

-         "ER_PROPERTY_VALUE_BOOLEAN";

-  public static final String ER_COULD_NOT_FIND_EXTERN_SCRIPT =

-         "ER_COULD_NOT_FIND_EXTERN_SCRIPT";

-  public static final String ER_RESOURCE_COULD_NOT_FIND =

-         "ER_RESOURCE_COULD_NOT_FIND";

-  public static final String ER_OUTPUT_PROPERTY_NOT_RECOGNIZED =

-         "ER_OUTPUT_PROPERTY_NOT_RECOGNIZED";

-  public static final String ER_FAILED_CREATING_ELEMLITRSLT =

-         "ER_FAILED_CREATING_ELEMLITRSLT";

-  public static final String ER_VALUE_SHOULD_BE_NUMBER =

-         "ER_VALUE_SHOULD_BE_NUMBER";

-  public static final String ER_VALUE_SHOULD_EQUAL = "ER_VALUE_SHOULD_EQUAL";

-  public static final String ER_FAILED_CALLING_METHOD =

-         "ER_FAILED_CALLING_METHOD";

-  public static final String ER_FAILED_CREATING_ELEMTMPL =

-         "ER_FAILED_CREATING_ELEMTMPL";

-  public static final String ER_CHARS_NOT_ALLOWED = "ER_CHARS_NOT_ALLOWED";

-  public static final String ER_ATTR_NOT_ALLOWED = "ER_ATTR_NOT_ALLOWED";

-  public static final String ER_BAD_VALUE = "ER_BAD_VALUE";

-  public static final String ER_ATTRIB_VALUE_NOT_FOUND =

-         "ER_ATTRIB_VALUE_NOT_FOUND";

-  public static final String ER_ATTRIB_VALUE_NOT_RECOGNIZED =

-         "ER_ATTRIB_VALUE_NOT_RECOGNIZED";

-  public static final String ER_NULL_URI_NAMESPACE = "ER_NULL_URI_NAMESPACE";

-  public static final String ER_NUMBER_TOO_BIG = "ER_NUMBER_TOO_BIG";

-  public static final String  ER_CANNOT_FIND_SAX1_DRIVER =

-         "ER_CANNOT_FIND_SAX1_DRIVER";

-  public static final String  ER_SAX1_DRIVER_NOT_LOADED =

-         "ER_SAX1_DRIVER_NOT_LOADED";

-  public static final String  ER_SAX1_DRIVER_NOT_INSTANTIATED =

-         "ER_SAX1_DRIVER_NOT_INSTANTIATED" ;

-  public static final String ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER =

-         "ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER";

-  public static final String  ER_PARSER_PROPERTY_NOT_SPECIFIED =

-         "ER_PARSER_PROPERTY_NOT_SPECIFIED";

-  public static final String  ER_PARSER_ARG_CANNOT_BE_NULL =

-         "ER_PARSER_ARG_CANNOT_BE_NULL" ;

-  public static final String  ER_FEATURE = "ER_FEATURE";

-  public static final String ER_PROPERTY = "ER_PROPERTY" ;

-  public static final String ER_NULL_ENTITY_RESOLVER ="ER_NULL_ENTITY_RESOLVER";

-  public static final String  ER_NULL_DTD_HANDLER = "ER_NULL_DTD_HANDLER" ;

-  public static final String ER_NO_DRIVER_NAME_SPECIFIED =

-         "ER_NO_DRIVER_NAME_SPECIFIED";

-  public static final String ER_NO_URL_SPECIFIED = "ER_NO_URL_SPECIFIED";

-  public static final String ER_POOLSIZE_LESS_THAN_ONE =

-         "ER_POOLSIZE_LESS_THAN_ONE";

-  public static final String ER_INVALID_DRIVER_NAME = "ER_INVALID_DRIVER_NAME";

-  public static final String ER_ERRORLISTENER = "ER_ERRORLISTENER";

-  public static final String ER_ASSERT_NO_TEMPLATE_PARENT =

-         "ER_ASSERT_NO_TEMPLATE_PARENT";

-  public static final String ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR =

-         "ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR";

-  public static final String ER_NOT_ALLOWED_IN_POSITION =

-         "ER_NOT_ALLOWED_IN_POSITION";

-  public static final String ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION =

-         "ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION";

-  public static final String ER_NAMESPACE_CONTEXT_NULL_NAMESPACE =

-         "ER_NAMESPACE_CONTEXT_NULL_NAMESPACE";

-  public static final String ER_NAMESPACE_CONTEXT_NULL_PREFIX =

-         "ER_NAMESPACE_CONTEXT_NULL_PREFIX";

-  public static final String ER_XPATH_RESOLVER_NULL_QNAME =

-         "ER_XPATH_RESOLVER_NULL_QNAME";

-  public static final String ER_XPATH_RESOLVER_NEGATIVE_ARITY =

-         "ER_XPATH_RESOLVER_NEGATIVE_ARITY";

-  public static final String INVALID_TCHAR = "INVALID_TCHAR";

-  public static final String INVALID_QNAME = "INVALID_QNAME";

-  public static final String INVALID_ENUM = "INVALID_ENUM";

-  public static final String INVALID_NMTOKEN = "INVALID_NMTOKEN";

-  public static final String INVALID_NCNAME = "INVALID_NCNAME";

-  public static final String INVALID_BOOLEAN = "INVALID_BOOLEAN";

-  public static final String INVALID_NUMBER = "INVALID_NUMBER";

-  public static final String ER_ARG_LITERAL = "ER_ARG_LITERAL";

-  public static final String ER_DUPLICATE_GLOBAL_VAR ="ER_DUPLICATE_GLOBAL_VAR";

-  public static final String ER_DUPLICATE_VAR = "ER_DUPLICATE_VAR";

-  public static final String ER_TEMPLATE_NAME_MATCH = "ER_TEMPLATE_NAME_MATCH";

-  public static final String ER_INVALID_PREFIX = "ER_INVALID_PREFIX";

-  public static final String ER_NO_ATTRIB_SET = "ER_NO_ATTRIB_SET";

-  public static final String ER_FUNCTION_NOT_FOUND =

-         "ER_FUNCTION_NOT_FOUND";

-  public static final String ER_CANT_HAVE_CONTENT_AND_SELECT =

-     "ER_CANT_HAVE_CONTENT_AND_SELECT";

-  public static final String ER_INVALID_SET_PARAM_VALUE = "ER_INVALID_SET_PARAM_VALUE";

-  public static final String ER_SET_FEATURE_NULL_NAME =

-        "ER_SET_FEATURE_NULL_NAME";

-  public static final String ER_GET_FEATURE_NULL_NAME =

-        "ER_GET_FEATURE_NULL_NAME";

-  public static final String ER_UNSUPPORTED_FEATURE =

-        "ER_UNSUPPORTED_FEATURE";

-  public static final String ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING =

-        "ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING";

-

-  public static final String WG_FOUND_CURLYBRACE = "WG_FOUND_CURLYBRACE";

-  public static final String WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR =

-         "WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR";

-  public static final String WG_EXPR_ATTRIB_CHANGED_TO_SELECT =

-         "WG_EXPR_ATTRIB_CHANGED_TO_SELECT";

-  public static final String WG_NO_LOCALE_IN_FORMATNUMBER =

-         "WG_NO_LOCALE_IN_FORMATNUMBER";

-  public static final String WG_LOCALE_NOT_FOUND = "WG_LOCALE_NOT_FOUND";

-  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";

-  public static final String WG_CANNOT_LOAD_REQUESTED_DOC =

-         "WG_CANNOT_LOAD_REQUESTED_DOC";

-  public static final String WG_CANNOT_FIND_COLLATOR ="WG_CANNOT_FIND_COLLATOR";

-  public static final String WG_FUNCTIONS_SHOULD_USE_URL =

-         "WG_FUNCTIONS_SHOULD_USE_URL";

-  public static final String WG_ENCODING_NOT_SUPPORTED_USING_UTF8 =

-         "WG_ENCODING_NOT_SUPPORTED_USING_UTF8";

-  public static final String WG_ENCODING_NOT_SUPPORTED_USING_JAVA =

-         "WG_ENCODING_NOT_SUPPORTED_USING_JAVA";

-  public static final String WG_SPECIFICITY_CONFLICTS =

-         "WG_SPECIFICITY_CONFLICTS";

-  public static final String WG_PARSING_AND_PREPARING =

-         "WG_PARSING_AND_PREPARING";

-  public static final String WG_ATTR_TEMPLATE = "WG_ATTR_TEMPLATE";

-  public static final String WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE = "WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESP";

-  public static final String WG_ATTRIB_NOT_HANDLED = "WG_ATTRIB_NOT_HANDLED";

-  public static final String WG_NO_DECIMALFORMAT_DECLARATION =

-         "WG_NO_DECIMALFORMAT_DECLARATION";

-  public static final String WG_OLD_XSLT_NS = "WG_OLD_XSLT_NS";

-  public static final String WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED =

-         "WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED";

-  public static final String WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE =

-         "WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE";

-  public static final String WG_ILLEGAL_ATTRIBUTE = "WG_ILLEGAL_ATTRIBUTE";

-  public static final String WG_COULD_NOT_RESOLVE_PREFIX =

-         "WG_COULD_NOT_RESOLVE_PREFIX";

-  public static final String WG_STYLESHEET_REQUIRES_VERSION_ATTRIB =

-         "WG_STYLESHEET_REQUIRES_VERSION_ATTRIB";

-  public static final String WG_ILLEGAL_ATTRIBUTE_NAME =

-         "WG_ILLEGAL_ATTRIBUTE_NAME";

-  public static final String WG_ILLEGAL_ATTRIBUTE_VALUE =

-         "WG_ILLEGAL_ATTRIBUTE_VALUE";

-  public static final String WG_EMPTY_SECOND_ARG = "WG_EMPTY_SECOND_ARG";

-  public static final String WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =

-         "WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";

-  public static final String WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =

-         "WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";

-  public static final String WG_ILLEGAL_ATTRIBUTE_POSITION =

-         "WG_ILLEGAL_ATTRIBUTE_POSITION";

-  public static final String NO_MODIFICATION_ALLOWED_ERR =

-         "NO_MODIFICATION_ALLOWED_ERR";

-

-  /*

-   * Now fill in the message text.

-   * Then fill in the message text for that message code in the

-   * array. Use the new error code as the index into the array.

-   */

-

-  // Error messages...

-

-  /** Get the lookup table for error messages.

-   *

-   * @return The message lookup table.

-   */

-  public Object[][] getContents()

-  {

-    return new Object[][] {

-

-  /** Error message ID that has a null message, but takes in a single object.    */

-  {"ER0000" , "{0}" },

-

-

-    { ER_NO_CURLYBRACE,

-      "Napaka: Izraz ne sme vsebovati '{'"},

-

-    { ER_ILLEGAL_ATTRIBUTE ,

-     "{0} vsebuje neveljaven atribut: {1}"},

-

-  {ER_NULL_SOURCENODE_APPLYIMPORTS ,

-      "sourceNode je NULL v xsl:apply-imports!"},

-

-  {ER_CANNOT_ADD,

-      "Ne morem dodati {0} k {1}"},

-

-    { ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES,

-      "sourceNode je NULL v handleApplyTemplatesInstruction!"},

-

-    { ER_NO_NAME_ATTRIB,

-     "{0} mora vsebovati atribut imena."},

-

-    {ER_TEMPLATE_NOT_FOUND,

-     "Nisem na\u0161em predloge z imenom: {0}"},

-

-    {ER_CANT_RESOLVE_NAME_AVT,

-      "Imena AVT v xsl:call-template ni bilo mogo\u010de razre\u0161iti."},

-

-    {ER_REQUIRES_ATTRIB,

-     "{0} zahteva atribut: {1}"},

-

-    { ER_MUST_HAVE_TEST_ATTRIB,

-      "{0} mora imeti atribut ''test''."},

-

-    {ER_BAD_VAL_ON_LEVEL_ATTRIB,

-      "Slaba vrednost pri atributu stopnje: {0}"},

-

-    {ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,

-      "Ime navodila za obdelavo ne more biti 'xml'"},

-

-    { ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,

-      "Ime navodila za obdelavo mora biti veljavno NCIme: {0}"},

-

-    { ER_NEED_MATCH_ATTRIB,

-      "{0} mora vsebovati primerjalni atribut, \u010de vsebuje vozli\u0161\u010de."},

-

-    { ER_NEED_NAME_OR_MATCH_ATTRIB,

-      "{0} zahteva atribut imena ali primerjalni atribut."},

-

-    {ER_CANT_RESOLVE_NSPREFIX,

-      "Predpone imenskega prostora ni mogo\u010de razre\u0161iti: {0}"},

-

-    { ER_ILLEGAL_VALUE,

-     "xml:space vsebuje neveljavno vrednost: {0}"},

-

-    { ER_NO_OWNERDOC,

-      "Podrejeno vozli\u0161\u010de ne vsebuje lastni\u0161kega dokumenta!"},

-

-    { ER_ELEMTEMPLATEELEM_ERR,

-     "Napaka ElemTemplateElement: {0}"},

-

-    { ER_NULL_CHILD,

-     "Poskus dodajanja podrejenega elementa z vrednostjo NULL!"},

-

-    { ER_NEED_SELECT_ATTRIB,

-     "{0} zahteva atribut izbire."},

-

-    { ER_NEED_TEST_ATTRIB ,

-      "xsl:when mora vsebovati atribut 'test'."},

-

-    { ER_NEED_NAME_ATTRIB,

-      "xsl:with-param mora vsebovati atribut 'ime'."},

-

-    { ER_NO_CONTEXT_OWNERDOC,

-      "Kontekst ne vsebuje lastni\u0161kega dokumenta!"},

-

-    {ER_COULD_NOT_CREATE_XML_PROC_LIAISON,

-      "Ne morem ustvariti zveze XML TransformerFactory: {0}"},

-

-    {ER_PROCESS_NOT_SUCCESSFUL,

-      "Xalan: postopek ni uspel."},

-

-    { ER_NOT_SUCCESSFUL,

-     "Xalan: ni uspel."},

-

-    { ER_ENCODING_NOT_SUPPORTED,

-     "Kodiranje ni podprto: {0}"},

-

-    {ER_COULD_NOT_CREATE_TRACELISTENER,

-      "Ne morem ustvariti javanskega razreda TraceListener: {0}"},

-

-    {ER_KEY_REQUIRES_NAME_ATTRIB,

-      "xsl:key zahteva atribut 'ime'!"},

-

-    { ER_KEY_REQUIRES_MATCH_ATTRIB,

-      "xsl:key zahteva atribut 'ujemanje'!"},

-

-    { ER_KEY_REQUIRES_USE_ATTRIB,

-      "xsl:key zahteva atribut 'uporaba'!"},

-

-    { ER_REQUIRES_ELEMENTS_ATTRIB,

-      "(StylesheetHandler) {0} zahteva atribut ''elementi''!"},

-

-    { ER_MISSING_PREFIX_ATTRIB,

-      "(StylesheetHandler) {0} manjka atribut ''predpona''"},

-

-    { ER_BAD_STYLESHEET_URL,

-     "URL slogovne datoteke je neveljaven: {0}"},

-

-    { ER_FILE_NOT_FOUND,

-     "Slogovne datoteke ni bilo mogo\u010de najti: {0}"},

-

-    { ER_IOEXCEPTION,

-      "Pri slogovni datoteki je pri\u0161lo do izjeme IO: {0}"},

-

-    { ER_NO_HREF_ATTRIB,

-      "(StylesheetHandler) Atributa href za {0} ni bilo mogo\u010de najti"},

-

-    { ER_STYLESHEET_INCLUDES_ITSELF,

-      "(StylesheetHandler) {0} neposredno ali posredno vklju\u010duje samega sebe!"},

-

-    { ER_PROCESSINCLUDE_ERROR,

-      "Napaka StylesheetHandler.processInclude, {0}"},

-

-    { ER_MISSING_LANG_ATTRIB,

-      "(StylesheetHandler) {0} manjka atribut ''lang'' "},

-

-    { ER_MISSING_CONTAINER_ELEMENT_COMPONENT,

-      "(StylesheetHandler) napa\u010dna postavitev elementa {0}?? Manjka vsebni element ''komponenta''"},

-

-    { ER_CAN_ONLY_OUTPUT_TO_ELEMENT,

-      "Prenos mogo\u010d samo v Element, DocumentFragment, Document, ali PrintWriter."},

-

-    { ER_PROCESS_ERROR,

-     "Napaka StylesheetRoot.process"},

-

-    { ER_UNIMPLNODE_ERROR,

-     "Napaka UnImplNode: {0}"},

-

-    { ER_NO_SELECT_EXPRESSION,

-      "Napaka! Ne najdem izbirnega izraza xpath (-select)."},

-

-    { ER_CANNOT_SERIALIZE_XSLPROCESSOR,

-      "Ne morem serializirati XSLProcessor!"},

-

-    { ER_NO_INPUT_STYLESHEET,

-      "Vnos slogovne datoteke ni dolo\u010den!"},

-

-    { ER_FAILED_PROCESS_STYLESHEET,

-      "Obdelava slogovne datoteke ni uspela!"},

-

-    { ER_COULDNT_PARSE_DOC,

-     "Dokumenta {0} ni mogo\u010de raz\u010dleniti!"},

-

-    { ER_COULDNT_FIND_FRAGMENT,

-     "Ne najdem fragmenta: {0}"},

-

-    { ER_NODE_NOT_ELEMENT,

-      "Vozli\u0161\u010de, na katerega ka\u017ee identifikator fragmenta, ni element: {0}"},

-

-    { ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB,

-      "vsak mora vsebovati primerjalni atribut ali atribut imena"},

-

-    { ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB,

-      "predloge morajo imeti primerjalni atribut ali atribut imena"},

-

-    { ER_NO_CLONE_OF_DOCUMENT_FRAG,

-      "Ni klona fragmenta dokumenta!"},

-

-    { ER_CANT_CREATE_ITEM,

-      "Ne morem ustvariti elementa v drevesu rezultatov: {0}"},

-

-    { ER_XMLSPACE_ILLEGAL_VALUE,

-      "xml:space v izvirnem XML ima neveljavno vrednost: {0}"},

-

-    { ER_NO_XSLKEY_DECLARATION,

-      "Ni deklaracije xsl:key za {0}!"},

-

-    { ER_CANT_CREATE_URL,

-     "Napaka! Ne morem ustvariti URL za: {0}"},

-

-    { ER_XSLFUNCTIONS_UNSUPPORTED,

-     "xsl:functions niso podprte"},

-

-    { ER_PROCESSOR_ERROR,

-     "Napaka XSLT TransformerFactory"},

-

-    { ER_NOT_ALLOWED_INSIDE_STYLESHEET,

-      "(StylesheetHandler) {0} ni dovoljen znotraj slogovne datoteke!"},

-

-    { ER_RESULTNS_NOT_SUPPORTED,

-      "result-ns ni ve\u010d podprt!  Namesto njega uporabite xsl:output."},

-

-    { ER_DEFAULTSPACE_NOT_SUPPORTED,

-      "default-space ni ve\u010d podprt!  Namesto njega uporabite xsl:strip-space ali xsl:preserve-space."},

-

-    { ER_INDENTRESULT_NOT_SUPPORTED,

-      "indent-result ni ve\u010d podprt!  Namesto njega uporabite xsl:output."},

-

-    { ER_ILLEGAL_ATTRIB,

-      "(StylesheetHandler) {0} ima neveljaven atribut: {1}"},

-

-    { ER_UNKNOWN_XSL_ELEM,

-     "Neznani element XSL: {0}"},

-

-    { ER_BAD_XSLSORT_USE,

-      "(StylesheetHandler) xsl:sort lahko uporabljamo samo z xsl:apply-templates ali z xsl:for-each."},

-

-    { ER_MISPLACED_XSLWHEN,

-      "(StylesheetHandler) napa\u010dna postavitev xsl:when!"},

-

-    { ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE,

-      "(StylesheetHandler) xsl:choose ni nadrejen xsl:when!"},

-

-    { ER_MISPLACED_XSLOTHERWISE,

-      "(StylesheetHandler) napa\u010dna postavitev xsl:otherwise!"},

-

-    { ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE,

-      "(StylesheetHandler) xsl:choose ni nadrejen xsl:otherwise!"},

-

-    { ER_NOT_ALLOWED_INSIDE_TEMPLATE,

-      "(StylesheetHandler) {0} ni dovoljen znotraj predloge!"},

-

-    { ER_UNKNOWN_EXT_NS_PREFIX,

-      "(StylesheetHandler) Neznana {0} kon\u010dnica predpone imenskega prostora {1}"},

-

-    { ER_IMPORTS_AS_FIRST_ELEM,

-      "(StylesheetHandler) Uvozi se lahko pojavijo samo kot prvi elementi v slogovni datoteki!"},

-

-    { ER_IMPORTING_ITSELF,

-      "(StylesheetHandler) {0} neposredno ali posredno uva\u017ea samega sebe!"},

-

-    { ER_XMLSPACE_ILLEGAL_VAL,

-      "(StylesheetHandler) xml:space vsebuje neveljavno vrednost: {0}"},

-

-    { ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL,

-      "processStylesheet ni uspelo!"},

-

-    { ER_SAX_EXCEPTION,

-     "Izjema SAX"},

-

-//  add this message to fix bug 21478

-    { ER_FUNCTION_NOT_SUPPORTED,

-     "Funkcija ni podprta!"},

-

-

-    { ER_XSLT_ERROR,

-     "Napaka XSLT"},

-

-    { ER_CURRENCY_SIGN_ILLEGAL,

-      "V oblikovnem nizu vzorca znak za denarno enoto ni dovoljen"},

-

-    { ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM,

-      "Funkcija dokumenta v slogovni datoteki DOM ni podprta!"},

-

-    { ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER,

-      "Ne morem razbrati predpone nepredponskega razre\u0161evalnika!"},

-

-    { ER_REDIRECT_COULDNT_GET_FILENAME,

-      "Preusmeri kon\u010dnico: ne morem pridobiti imena datoteke - atribut datoteke ali izbire mora vrniti veljaven niz."},

-

-    { ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT,

-      "V Preusmeritvi kon\u010dnice ne morem zgraditi FormatterListener!"},

-

-    { ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX,

-      "Predpona v izklju\u010di-predpone-rezultatov (exclude-result-prefixes) ni veljavna: {0}"},

-

-    { ER_MISSING_NS_URI,

-      "Za navedeno predpono manjka imenski prostor URI"},

-

-    { ER_MISSING_ARG_FOR_OPTION,

-      "Manjka argument za mo\u017enost: {0}"},

-

-    { ER_INVALID_OPTION,

-     "Neveljavna mo\u017enost: {0}"},

-

-    { ER_MALFORMED_FORMAT_STRING,

-     "Po\u0161kodovan niz sloga: {0}"},

-

-    { ER_STYLESHEET_REQUIRES_VERSION_ATTRIB,

-      "xsl:stylesheet zahteva atribut 'razli\u010dica'!"},

-

-    { ER_ILLEGAL_ATTRIBUTE_VALUE,

-      "Atribut: {0} ima neveljavno vrednost: {1}"},

-

-    { ER_CHOOSE_REQUIRES_WHEN,

-     "xsl:choose zahteva xsl:when"},

-

-    { ER_NO_APPLY_IMPORT_IN_FOR_EACH,

-      "xsl:apply-imports v xsl:for-each ni dovoljen"},

-

-    { ER_CANT_USE_DTM_FOR_OUTPUT,

-      "Za izhodno vozli\u0161\u010de DOM ne morem uporabiti DTMLiaison... namesto njega posredujte org.apache.xpath.DOM2Helper!"},

-

-    { ER_CANT_USE_DTM_FOR_INPUT,

-      "Za vhodno vozli\u0161\u010de DOM ne morem uporabiti DTMLiaison... namesto njega posredujte org.apache.xpath.DOM2Helper!"},

-

-    { ER_CALL_TO_EXT_FAILED,

-      "Klic elementa kon\u010dnice ni uspel: {0}"},

-

-    { ER_PREFIX_MUST_RESOLVE,

-      "Predpona se mora razre\u0161iti v imenski prostor: {0}"},

-

-    { ER_INVALID_UTF16_SURROGATE,

-      "Zaznan neveljaven nadomestek UTF-16: {0} ?"},

-

-    { ER_XSLATTRSET_USED_ITSELF,

-      "xsl:attribute-set {0} je uporabil samega sebe, kar bo povzro\u010dilo neskon\u010do ponavljanje."},

-

-    { ER_CANNOT_MIX_XERCESDOM,

-      "Prepletanje ne-Xerces-DOM vhoda s Xerces-DOM vhodom ni mogo\u010de!"},

-

-    { ER_TOO_MANY_LISTENERS,

-      "addTraceListenersToStylesheet - TooManyListenersException"},

-

-    { ER_IN_ELEMTEMPLATEELEM_READOBJECT,

-      "V ElemTemplateElement.readObject: {0}"},

-

-    { ER_DUPLICATE_NAMED_TEMPLATE,

-      "Na\u0161el ve\u010d predlog z istim imenom: {0}"},

-

-    { ER_INVALID_KEY_CALL,

-      "Neveljaven klic funkcije: povratni klici key() niso dovoljeni"},

-

-    { ER_REFERENCING_ITSELF,

-      "Spremenljivka {0} se neposredno ali posredno sklicuje sama nase!"},

-

-    { ER_ILLEGAL_DOMSOURCE_INPUT,

-      "Vhodno vozli\u0161\u010de za DOMSource za newTemplates ne more biti NULL!"},

-

-    { ER_CLASS_NOT_FOUND_FOR_OPTION,

-        "Datoteke razreda za mo\u017enost {0} ni bilo mogo\u010de najti"},

-

-    { ER_REQUIRED_ELEM_NOT_FOUND,

-        "Zahtevanega elementa ni bilo mogo\u010de najti: {0}"},

-

-    { ER_INPUT_CANNOT_BE_NULL,

-        "InputStream ne more biti NULL"},

-

-    { ER_URI_CANNOT_BE_NULL,

-        "URI ne more biti NULL"},

-

-    { ER_FILE_CANNOT_BE_NULL,

-        "Datoteka ne more biti NULL"},

-

-    { ER_SOURCE_CANNOT_BE_NULL,

-                "InputSource ne more biti NULL"},

-

-    { ER_CANNOT_INIT_BSFMGR,

-                "Inicializacija BSF Manager-ja ni mogo\u010da"},

-

-    { ER_CANNOT_CMPL_EXTENSN,

-                "Kon\u010dnice ni mogo\u010de prevesti"},

-

-    { ER_CANNOT_CREATE_EXTENSN,

-      "Ne morem ustvariti kon\u010dnice: {0} zaradi: {1}"},

-

-    { ER_INSTANCE_MTHD_CALL_REQUIRES,

-      "Klic primerkov metode za metodo {0} zahteva primerek objekta kot prvi argument"},

-

-    { ER_INVALID_ELEMENT_NAME,

-      "Navedeno neveljavno ime elementa {0}"},

-

-    { ER_ELEMENT_NAME_METHOD_STATIC,

-      "Metoda imena elementa mora biti stati\u010dna (static) {0}"},

-

-    { ER_EXTENSION_FUNC_UNKNOWN,

-             "Funkcija kon\u010dnice {0} : {1} je neznana"},

-

-    { ER_MORE_MATCH_CONSTRUCTOR,

-             "Ve\u010d kot eno najbolj\u0161e ujemanje za graditelja za {0}"},

-

-    { ER_MORE_MATCH_METHOD,

-             "Ve\u010d kot eno najbolj\u0161e ujemanje za metodo {0}"},

-

-    { ER_MORE_MATCH_ELEMENT,

-             "Ve\u010d kot eno najbolj\u0161e ujemanje za metodo elementa {0}"},

-

-    { ER_INVALID_CONTEXT_PASSED,

-             "Posredovan neveljaven kontekst za ovrednotenje {0}"},

-

-    { ER_POOL_EXISTS,

-             "Zaloga \u017ee obstaja"},

-

-    { ER_NO_DRIVER_NAME,

-             "Ime gonilnika ni dolo\u010deno"},

-

-    { ER_NO_URL,

-             "URL ni dolo\u010den"},

-

-    { ER_POOL_SIZE_LESSTHAN_ONE,

-             "Zaloga je manj\u0161a od ena!"},

-

-    { ER_INVALID_DRIVER,

-             "Navedeno neveljavno ime gonilnika!"},

-

-    { ER_NO_STYLESHEETROOT,

-             "Korena slogovne datoteke ni mogo\u010de najti!"},

-

-    { ER_ILLEGAL_XMLSPACE_VALUE,

-         "Neveljavna vrednost za xml:space"},

-

-    { ER_PROCESSFROMNODE_FAILED,

-         "processFromNode spodletelo"},

-

-    { ER_RESOURCE_COULD_NOT_LOAD,

-        "Sredstva [ {0} ] ni bilo mogo\u010de nalo\u017eiti: {1} \n {2} \t {3}"},

-

-    { ER_BUFFER_SIZE_LESSTHAN_ZERO,

-        "Velikost medpomnilnika <=0"},

-

-    { ER_UNKNOWN_ERROR_CALLING_EXTENSION,

-        "Neznana napaka pri klicu kon\u010dnice"},

-

-    { ER_NO_NAMESPACE_DECL,

-        "Predpona {0} nima ustrezne deklaracije imenskega prostora"},

-

-    { ER_ELEM_CONTENT_NOT_ALLOWED,

-        "Vsebina elementa za lang=javaclass {0} ni dovoljena"},

-

-    { ER_STYLESHEET_DIRECTED_TERMINATION,

-        "Prekinitev usmerja slogovna datoteka"},

-

-    { ER_ONE_OR_TWO,

-        "1 ali 2"},

-

-    { ER_TWO_OR_THREE,

-        "2 ali 3"},

-

-    { ER_COULD_NOT_LOAD_RESOURCE,

-        "Nisem mogel nalo\u017eiti {0} (preverite CLASSPATH), trenutno se uporabljajo privzete vrednosti"},

-

-    { ER_CANNOT_INIT_DEFAULT_TEMPLATES,

-        "Ne morem inicializirati privzetih predlog"},

-

-    { ER_RESULT_NULL,

-        "Rezultat naj ne bi bil NULL"},

-

-    { ER_RESULT_COULD_NOT_BE_SET,

-        "Rezultata ni bilo mogo\u010de nastaviti"},

-

-    { ER_NO_OUTPUT_SPECIFIED,

-        "Izhod ni naveden"},

-

-    { ER_CANNOT_TRANSFORM_TO_RESULT_TYPE,

-        "Ne morem pretvoriti v rezultat tipa {0}"},

-

-    { ER_CANNOT_TRANSFORM_SOURCE_TYPE,

-        "Ne morem pretvoriti vira tipa {0}"},

-

-    { ER_NULL_CONTENT_HANDLER,

-        "Program za obravnavo vsebine NULL"},

-

-    { ER_NULL_ERROR_HANDLER,

-        "Program za obravnavo napak NULL"},

-

-    { ER_CANNOT_CALL_PARSE,

-        "klic raz\u010dlenitve ni mo\u017een \u010de ContentHandler ni bil nastavljen"},

-

-    { ER_NO_PARENT_FOR_FILTER,

-        "Ni nadrejenega za filter"},

-

-    { ER_NO_STYLESHEET_IN_MEDIA,

-         "Ni mogo\u010de najti slogovne datoteke v: {0}, medij= {1}"},

-

-    { ER_NO_STYLESHEET_PI,

-         "Ne najdem xml-stylesheet PI v: {0}"},

-

-    { ER_NOT_SUPPORTED,

-       "Ni podprto: {0}"},

-

-    { ER_PROPERTY_VALUE_BOOLEAN,

-       "Vrednost lastnosti {0} bi morala biti ponovitev logi\u010dne vrednosti"},

-

-    { ER_COULD_NOT_FIND_EXTERN_SCRIPT,

-         "Ne morem dostopati do zunanje skripte na {0}"},

-

-    { ER_RESOURCE_COULD_NOT_FIND,

-        "Vira [ {0} ] ni mogo\u010de najti.\n {1}"},

-

-    { ER_OUTPUT_PROPERTY_NOT_RECOGNIZED,

-        "Izhodna lastnost ni prepoznana: {0}"},

-

-    { ER_FAILED_CREATING_ELEMLITRSLT,

-        "Priprava primerka ElemLiteralResult ni uspela"},

-

-  //Earlier (JDK 1.4 XALAN 2.2-D11) at key code '204' the key name was ER_PRIORITY_NOT_PARSABLE

-  // In latest Xalan code base key name is  ER_VALUE_SHOULD_BE_NUMBER. This should also be taken care

-  //in locale specific files like XSLTErrorResources_de.java, XSLTErrorResources_fr.java etc.

-  //NOTE: Not only the key name but message has also been changed.

-

-    { ER_VALUE_SHOULD_BE_NUMBER,

-        "Vrednost za {0} bi morala biti \u0161tevilka, ki jo je mogo\u010de raz\u010dleniti"},

-

-    { ER_VALUE_SHOULD_EQUAL,

-        "Vrednost za {0} bi morala biti enaka da ali ne"},

-

-    { ER_FAILED_CALLING_METHOD,

-        "Klic metode {0} ni uspel"},

-

-    { ER_FAILED_CREATING_ELEMTMPL,

-        "Priprava primerka ElemTemplateElement ni uspela"},

-

-    { ER_CHARS_NOT_ALLOWED,

-        "V tem trenutku znaki v dokumentu niso na voljo"},

-

-    { ER_ATTR_NOT_ALLOWED,

-        "Atribut \"{0}\" v elementu {1} ni dovoljen!"},

-

-    { ER_BAD_VALUE,

-     "{0} slaba vrednost {1} "},

-

-    { ER_ATTRIB_VALUE_NOT_FOUND,

-     "Vrednosti atributa {0} ni bilo mogo\u010de najti "},

-

-    { ER_ATTRIB_VALUE_NOT_RECOGNIZED,

-     "Vrednosti atributa {0} ni bilo mogo\u010de prepoznati "},

-

-    { ER_NULL_URI_NAMESPACE,

-     "Posku\u0161am generirati predpono imenskega prostora z URI z vrednostjo NULL"},

-

-  //New ERROR keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)

-

-    { ER_NUMBER_TOO_BIG,

-     "Poskus oblikovanja \u0161tevilke, ve\u010dje od najve\u010djega dolgega celega \u0161tevila"},

-

-    { ER_CANNOT_FIND_SAX1_DRIVER,

-     "Ne najdem razreda gonilnika SAX1 {0}"},

-

-    { ER_SAX1_DRIVER_NOT_LOADED,

-     "Na\u0161el razred gonilnika SAX1 {0}, vendar ga ne morem nalo\u017eiti"},

-

-    { ER_SAX1_DRIVER_NOT_INSTANTIATED,

-     "Nalo\u017eil razred gonilnika SAX1 {0}, vendar ga ne morem udejaniti"},

-

-    { ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER,

-     "Razred gonilnika SAX1 {0} ne vklju\u010duje org.xml.sax.Parser"},

-

-    { ER_PARSER_PROPERTY_NOT_SPECIFIED,

-     "Sistemska lastnost org.xml.sax.parser ni dolo\u010dena"},

-

-    { ER_PARSER_ARG_CANNOT_BE_NULL,

-     "Argument raz\u010dlenjevalnika sme biti NULL"},

-

-    { ER_FEATURE,

-     "Zna\u010dilnost: {0}"},

-

-    { ER_PROPERTY,

-     "Lastnost: {0}"},

-

-    { ER_NULL_ENTITY_RESOLVER,

-     "Razre\u0161evalnik entitet NULL"},

-

-    { ER_NULL_DTD_HANDLER,

-     "Program za obravnavanje DTD z vrednostjo NULL"},

-

-    { ER_NO_DRIVER_NAME_SPECIFIED,

-     "Ime gonilnika ni dolo\u010deno!"},

-

-    { ER_NO_URL_SPECIFIED,

-     "URL ni dolo\u010den!"},

-

-    { ER_POOLSIZE_LESS_THAN_ONE,

-     "Zaloga je manj\u0161a od 1!"},

-

-    { ER_INVALID_DRIVER_NAME,

-     "Dolo\u010deno neveljavno ime gonilnika!"},

-

-    { ER_ERRORLISTENER,

-     "ErrorListener"},

-

-

-// Note to translators:  The following message should not normally be displayed

-//   to users.  It describes a situation in which the processor has detected

-//   an internal consistency problem in itself, and it provides this message

-//   for the developer to help diagnose the problem.  The name

-//   'ElemTemplateElement' is the name of a class, and should not be

-//   translated.

-    { ER_ASSERT_NO_TEMPLATE_PARENT,

-     "Programerjeva napaka! Izraz nima nadrejenega ElemTemplateElement!"},

-

-

-// Note to translators:  The following message should not normally be displayed

-//   to users.  It describes a situation in which the processor has detected

-//   an internal consistency problem in itself, and it provides this message

-//   for the developer to help diagnose the problem.  The substitution text

-//   provides further information in order to diagnose the problem.  The name

-//   'RedundentExprEliminator' is the name of a class, and should not be

-//   translated.

-    { ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR,

-     "Programerjeva izjava v RedundentExprEliminator: {0}"},

-

-    { ER_NOT_ALLOWED_IN_POSITION,

-     "Na tem polo\u017eaju v slogovni datoteki {0} ni dovoljen!"},

-

-    { ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION,

-     "Besedilo, ki niso presledki in drugi podobni znaki, na tem polo\u017eaju v slogovni datoteki ni dovoljeno.!"},

-

-  // This code is shared with warning codes.

-  // SystemId Unknown

-    { INVALID_TCHAR,

-     "Neveljavna vrednost: {1} uporabljena za atribut CHAR: {0}.  Atribut tipa CHAR mora biti samo 1 znak!"},

-

-    // Note to translators:  The following message is used if the value of

-    // an attribute in a stylesheet is invalid.  "QNAME" is the XML data-type of

-    // the attribute, and should not be translated.  The substitution text {1} is

-    // the attribute value and {0} is the attribute name.

-    //The following codes are shared with the warning codes...

-    { INVALID_QNAME,

-     "Neveljavna vrednost: {1} uporabljena za atribut QNAME: {0}"},

-

-    // Note to translators:  The following message is used if the value of

-    // an attribute in a stylesheet is invalid.  "ENUM" is the XML data-type of

-    // the attribute, and should not be translated.  The substitution text {1} is

-    // the attribute value, {0} is the attribute name, and {2} is a list of valid

-    // values.

-    { INVALID_ENUM,

-     "Neveljavna vrednost: {1} uporabljena za atribut ENUM: {0}.  Veljavne vrednosti so: {2}."},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "NMTOKEN" is the XML data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-    { INVALID_NMTOKEN,

-     "Neveljavna vrednost: {1} uporabljena za atribut NMTOKEN: {0} "},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "NCNAME" is the XML data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-    { INVALID_NCNAME,

-     "Neveljavna vrednost: {1} uporabljena za atribut NCNAME: {0} "},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "boolean" is the XSLT data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-    { INVALID_BOOLEAN,

-     "Neveljavna vrednost: {1} uporabljena za atribut boolean: {0} "},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "number" is the XSLT data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-     { INVALID_NUMBER,

-     "Neveljavna vrednost: {1} uporabljena za atribut number: {0} "},

-

-

-  // End of shared codes...

-

-// Note to translators:  A "match pattern" is a special form of XPath expression

-// that is used for matching patterns.  The substitution text is the name of

-// a function.  The message indicates that when this function is referenced in

-// a match pattern, its argument must be a string literal (or constant.)

-// ER_ARG_LITERAL - new error message for bugzilla //5202

-    { ER_ARG_LITERAL,

-     "Argument za {0} v primerjalnem vzorcu mora biti dobesedni niz."},

-

-// Note to translators:  The following message indicates that two definitions of

-// a variable.  A "global variable" is a variable that is accessible everywher

-// in the stylesheet.

-// ER_DUPLICATE_GLOBAL_VAR - new error message for bugzilla #790

-    { ER_DUPLICATE_GLOBAL_VAR,

-     "Dvojnik deklaracije globalne spremenljivke."},

-

-

-// Note to translators:  The following message indicates that two definitions of

-// a variable were encountered.

-// ER_DUPLICATE_VAR - new error message for bugzilla #790

-    { ER_DUPLICATE_VAR,

-     "Dvojnik deklaracije spremenljivke."},

-

-    // Note to translators:  "xsl:template, "name" and "match" are XSLT keywords

-    // which must not be translated.

-    // ER_TEMPLATE_NAME_MATCH - new error message for bugzilla #789

-    { ER_TEMPLATE_NAME_MATCH,

-     "xsl:template mora vsebovati atribut name ali match (ali oba)"},

-

-    // Note to translators:  "exclude-result-prefixes" is an XSLT keyword which

-    // should not be translated.  The message indicates that a namespace prefix

-    // encountered as part of the value of the exclude-result-prefixes attribute

-    // was in error.

-    // ER_INVALID_PREFIX - new error message for bugzilla #788

-    { ER_INVALID_PREFIX,

-     "Predpona v izklju\u010di-predpone-rezultatov (exclude-result-prefixes) ni veljavna: {0}"},

-

-    // Note to translators:  An "attribute set" is a set of attributes that can

-    // be added to an element in the output document as a group.  The message

-    // indicates that there was a reference to an attribute set named {0} that

-    // was never defined.

-    // ER_NO_ATTRIB_SET - new error message for bugzilla #782

-    { ER_NO_ATTRIB_SET,

-     "Nabor atributov, imenovana {0}, ne obstaja"},

-

-    // Note to translators:  This message indicates that there was a reference

-    // to a function named {0} for which no function definition could be found.

-    { ER_FUNCTION_NOT_FOUND,

-     "Funkcija, imenovana {0}, ne obstaja"},

-

-    // Note to translators:  This message indicates that the XSLT instruction

-    // that is named by the substitution text {0} must not contain other XSLT

-    // instructions (content) or a "select" attribute.  The word "select" is

-    // an XSLT keyword in this case and must not be translated.

-    { ER_CANT_HAVE_CONTENT_AND_SELECT,

-     "Element {0} ne sme imeti vsebine in atributa izbire hkrati."},

-

-    // Note to translators:  This message indicates that the value argument

-    // of setParameter must be a valid Java Object.

-    { ER_INVALID_SET_PARAM_VALUE,

-     "Vrednost parametra {0} mora biti veljaven javanski objekt"},

-

-        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT,

-         "Atribut result-prefix elementa xsl:namespace-alias element ima vrednost '#default' (privzeto), ampak ni deklaracije privzetega imenskega prostora v razponu za ta element."},

-

-        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX,

-         "Atribut result-prefix elementa xsl:namespace-alias ima vrednost ''{0}'', ampak ni deklaracije privzetega imenskega prostora za predpono ''{0}'' v razponu za ta element."},

-

-    { ER_SET_FEATURE_NULL_NAME,

-      "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza, vrednost boolean)."},

-

-    { ER_GET_FEATURE_NULL_NAME,

-      "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza)."},

-

-    { ER_UNSUPPORTED_FEATURE,

-      "Ni mogo\u010de nastaviti funkcije ''{0}'' v tem TransformerFactory."},

-

-    { ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING,

-        "Uporaba raz\u0161iritvene elementa ''{0}'' ni na voljo, ko je funkcija varnega procesiranja nastavljena na true."},

-

-        { ER_NAMESPACE_CONTEXT_NULL_NAMESPACE,

-          "Ni mogo\u010de dobiti predpone za URI imenskega prostora null."},

-

-        { ER_NAMESPACE_CONTEXT_NULL_PREFIX,

-          "Ni mogo\u010de dobiti URI-ja imenskega prostora za predpono null."},

-

-        { ER_XPATH_RESOLVER_NULL_QNAME,

-          "Ime funkcije ne more biti ni\u010d."},

-

-        { ER_XPATH_RESOLVER_NEGATIVE_ARITY,

-          "\u0160tevilo argumentov ne more biti negativno"},

-

-  // Warnings...

-

-    { WG_FOUND_CURLYBRACE,

-      "Najden '}' vendar ni odprtih predlog atributov!"},

-

-    { WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR,

-      "Opozorilo: \u0161tevni atribut ni skladen s prednikom v xsl:number! Cilj = {0}"},

-

-    { WG_EXPR_ATTRIB_CHANGED_TO_SELECT,

-      "Stara sintaksa: Ime atributa 'izraz' je bilo spremenjeno v 'izbira'."},

-

-    { WG_NO_LOCALE_IN_FORMATNUMBER,

-      "Xalan \u0161e ne podpira podro\u010dnih imen v funkciji za oblikovanje \u0161tevilk."},

-

-    { WG_LOCALE_NOT_FOUND,

-      "Opozorilo: ne najdem podro\u010dnih nastavitev za xml:lang={0}"},

-

-    { WG_CANNOT_MAKE_URL_FROM,

-      "Iz {0} ni mogo\u010de narediti naslova URL."},

-

-    { WG_CANNOT_LOAD_REQUESTED_DOC,

-      "Ne morem nalo\u017eiti zahtevanega dokumenta: {0}"},

-

-    { WG_CANNOT_FIND_COLLATOR,

-      "Ne najdem kolacionista (collator) za <sort xml:lang={0}"},

-

-    { WG_FUNCTIONS_SHOULD_USE_URL,

-      "Stara sintaksa: navodilo za funkcije bi moralo uporabljati URL {0}"},

-

-    { WG_ENCODING_NOT_SUPPORTED_USING_UTF8,

-      "Kodiranje ni podprto: {0}, uporabljen bo UTF-8"},

-

-    { WG_ENCODING_NOT_SUPPORTED_USING_JAVA,

-      "kodiranje ni podprto: {0}, uporabljena bo Java {1}"},

-

-    { WG_SPECIFICITY_CONFLICTS,

-      "Spori pri specifi\u010dnosti: uporabljen bo zadnji najdeni {0} v slogovni datoteki."},

-

-    { WG_PARSING_AND_PREPARING,

-      "========= Poteka raz\u010dlenjevanje in priprava {0} =========="},

-

-    { WG_ATTR_TEMPLATE,

-     "Predloga atributa, {0}"},

-

-    { WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE,

-      "Spor ujemanja med xsl:strip-space in xsl:preserve-space"},

-

-    { WG_ATTRIB_NOT_HANDLED,

-      "Xalan \u0161e ne podpira atributa {0}!"},

-

-    { WG_NO_DECIMALFORMAT_DECLARATION,

-      "Deklaracije za decimalno obliko ni bilo mogo\u010de najti: {0}"},

-

-    { WG_OLD_XSLT_NS,

-     "Manjkajo\u010d ali nepravilen imenski prostor XSLT. "},

-

-    { WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED,

-      "Dovoljena je samo ena privzeta deklaracija xsl:decimal-format."},

-

-    { WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE,

-      "Imena xsl:decimal-format morajo biti enoli\u010dna. Ime \"{0}\" je bilo podvojeno."},

-

-    { WG_ILLEGAL_ATTRIBUTE,

-      "{0} vsebuje neveljaven atribut: {1}"},

-

-    { WG_COULD_NOT_RESOLVE_PREFIX,

-      "Ne morem razre\u0161iti predpone imenskega prostora: {0}. Vozli\u0161\u010de bo prezrto."},

-

-    { WG_STYLESHEET_REQUIRES_VERSION_ATTRIB,

-      "xsl:stylesheet zahteva atribut 'razli\u010dica'!"},

-

-    { WG_ILLEGAL_ATTRIBUTE_NAME,

-      "Neveljavno ime atributa: {0}"},

-

-    { WG_ILLEGAL_ATTRIBUTE_VALUE,

-      "Uporabljena neveljavna vrednost za atribut {0}: {1}"},

-

-    { WG_EMPTY_SECOND_ARG,

-      "Posledi\u010dna skupina vozli\u0161\u010d iz drugega argumenta funkcije dokumenta je prazna. Posredujte prazno skupino vozli\u0161\u010d."},

-

-  //Following are the new WARNING keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)

-

-    // Note to translators:  "name" and "xsl:processing-instruction" are keywords

-    // and must not be translated.

-    { WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,

-      "Vrednost atributa 'ime' iz imena xsl:processing-instruction ne sme biti 'xml'"},

-

-    // Note to translators:  "name" and "xsl:processing-instruction" are keywords

-    // and must not be translated.  "NCName" is an XML data-type and must not be

-    // translated.

-    { WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,

-      "Vrednost atributa ''ime'' iz xsl:processing-instruction mora biti veljavno NCIme: {0}"},

-

-    // Note to translators:  This message is reported if the stylesheet that is

-    // being processed attempted to construct an XML document with an attribute in a

-    // place other than on an element.  The substitution text specifies the name of

-    // the attribute.

-    { WG_ILLEGAL_ATTRIBUTE_POSITION,

-      "Atributa {0} ne morem dodati za podrejenimi vozli\u0161\u010di ali pred izdelavo elementa.  Atribut bo prezrt."},

-

-    { NO_MODIFICATION_ALLOWED_ERR,

-      "Izveden je poskus spremembe objekta tam, kjer spremembe niso dovoljene."

-    },

-

-    //Check: WHY THERE IS A GAP B/W NUMBERS in the XSLTErrorResources properties file?

-

-  // Other miscellaneous text used inside the code...

-  { "ui_language", "sl"},

-  {  "help_language",  "sl" },

-  {  "language",  "sl" },

-  { "BAD_CODE", "Parameter za createMessage presega meje"},

-  {  "FORMAT_FAILED", "Med klicem messageFormat naletel na izjemo"},

-  {  "version", ">>>>>>> Razli\u010dica Xalan "},

-  {  "version2",  "<<<<<<<"},

-  {  "yes", "da"},

-  { "line", "Vrstica #"},

-  { "column","Stolpec #"},

-  { "xsldone", "XSLProcessor: dokon\u010dano"},

-

-

-  // Note to translators:  The following messages provide usage information

-  // for the Xalan Process command line.  "Process" is the name of a Java class,

-  // and should not be translated.

-  { "xslProc_option", "Ukazna vrstica Xalan-J Mo\u017enosti razreda postopka:"},

-  { "xslProc_option", "Ukazna vrstica Xalan-J Mo\u017enosti razredov postopkov\u003a"},

-  { "xslProc_invalid_xsltc_option", "Mo\u017enost {0} v na\u010dinu XSLTC ni podprta."},

-  { "xslProc_invalid_xalan_option", "Mo\u017enost {0} se lahko uporablja samo z -XSLTC."},

-  { "xslProc_no_input", "Napaka: ni dolo\u010dene slogovne datoteke ali vhodnega xml. Po\u017eenite ta ukaz, za katerega ni na voljo napotkov za uporabo."},

-  { "xslProc_common_options", "-Splo\u0161ne mo\u017enosti-"},

-  { "xslProc_xalan_options", "-Mo\u017enosti za Xalan-"},

-  { "xslProc_xsltc_options", "-Mo\u017enosti za XSLTC-"},

-  { "xslProc_return_to_continue", "(za nadaljevanje pritisnite <return>)"},

-

-   // Note to translators: The option name and the parameter name do not need to

-   // be translated. Only translate the messages in parentheses.  Note also that

-   // leading whitespace in the messages is used to indent the usage information

-   // for each option in the English messages.

-   // Do not translate the keywords: XSLTC, SAX, DOM and DTM.

-  { "optionXSLTC", "   [-XSLTC (za preoblikovanje uporabite XSLTC)]"},

-  { "optionIN", "   [-IN vhodniXMLURL]"},

-  { "optionXSL", "   [-XSL XSLPreoblikovanjeURL]"},

-  { "optionOUT",  "   [-OUT ImeIzhodneDatoteke]"},

-  { "optionLXCIN", "   [-LXCIN ImeVhodneDatotekePrevedeneSlogovneDatoteke]"},

-  { "optionLXCOUT", "   [-LXCOUT ImeIzhodneDatotekePrevedeneSlogovneDatoteke]"},

-  { "optionPARSER", "   [-PARSER popolnoma ustrezno ime razreda zveze raz\u010dlenjevalnika]"},

-  {  "optionE", "   [-E (Ne raz\u0161irjajte sklicev entitet)]"},

-  {  "optionV",  "   [-E (Ne raz\u0161irjajte sklicev entitet)]"},

-  {  "optionQC", "   [-QC (Tiha opozorila o sporih vzorcev)]"},

-  {  "optionQ", "   [-Q  (Tihi na\u010din)]"},

-  {  "optionLF", "   [-LF (Uporabite pomike samo na izhodu {privzeto je CR/LF})]"},

-  {  "optionCR", "   [-CR (Uporabite prehode v novo vrstico samo na izhodu {privzeto je CR/LF})]"},

-  { "optionESCAPE", "   [-ESCAPE (Znaki za izogib {privzeto je <>&\"\'\\r\\n}]"},

-  { "optionINDENT", "   [-INDENT (Koliko presledkov zamika {privzeto je 0})]"},

-  { "optionTT", "   [-TT (Sledite predlogam glede na njihov poziv.)]"},

-  { "optionTG", "   [-TG (Sledite vsakemu dogodku rodu.)]"},

-  { "optionTS", "   [-TS (Sledite vsakemu dogodku izbire.)]"},

-  {  "optionTTC", "   [-TTC (Sledite podrejenim predloge kot se obdelujejo.)]"},

-  { "optionTCLASS", "   [-TCLASS (Razred TraceListener za kon\u010dnice sledi.)]"},

-  { "optionVALIDATE", "   [-VALIDATE (Nastavi v primeru preverjanja veljavnosti.  Privzeta vrednost za preverjanje veljavnosti je izklopljeno.)]"},

-  { "optionEDUMP", "   [-EDUMP {izbirno ime datoteke} (V primeru napake naredi izvoz skladov.)]"},

-  {  "optionXML", "   [-XML (Uporabite oblikovalnik XML in dodajte glavo XML.)]"},

-  {  "optionTEXT", "   [-TEXT (Uporabite preprost oblikovalnik besedila.)]"},

-  {  "optionHTML", "   [-HTML (Uporabite oblikovalnik za HTML.)]"},

-  {  "optionPARAM", "   [-PARAM izraz imena (nastavite parameter slogovne datoteke)]"},

-  {  "noParsermsg1", "Postopek XSL ni uspel."},

-  {  "noParsermsg2", "** Nisem na\u0161el raz\u010dlenjevalnika **"},

-  { "noParsermsg3",  "Preverite pot razreda."},

-  { "noParsermsg4", "\u010ce nimate IBM raz\u010dlenjevalnika za Javo, ga lahko prenesete iz"},

-  { "noParsermsg5", "IBM AlphaWorks: http://www.alphaworks.ibm.com/formula/xml"},

-  { "optionURIRESOLVER", "   [-URIRESOLVER polno ime razreda (URIResolver za razre\u0161evanje URL-jev)]"},

-  { "optionENTITYRESOLVER",  "   [-ENTITYRESOLVER polno ime razreda (EntityResolver za razre\u0161evanje entitet)]"},

-  { "optionCONTENTHANDLER",  "   [-CONTENTHANDLER polno ime razreda (ContentHandler za serializacijo izhoda)]"},

-  {  "optionLINENUMBERS",  "   [-L za izvorni dokument uporabite \u0161tevilke vrstic]"},

-  { "optionSECUREPROCESSING", "   [-SECURE (nastavite funkcijo varne obdelave na True.)]"},

-

-    // Following are the new options added in XSLTErrorResources.properties files after Jdk 1.4 (Xalan 2.2-D11)

-

-

-  {  "optionMEDIA",  "   [-MEDIA TipMedija (z atributom medija poi\u0161\u010dite slogovno datoteko, ki se nana\u0161a na dokument.)]"},

-  {  "optionFLAVOR",  "   [-FLAVOR ImePosebnosti (Za preoblikovanje izrecno uporabljajte s2s=SAX ali d2d=DOM.)] "}, // Added by sboag/scurcuru; experimental

-  { "optionDIAG", "   [-DIAG (Natisnite skupni \u010das trajanja pretvorbe v milisekundah.)]"},

-  { "optionINCREMENTAL",  "   [-INCREMENTAL (zahtevajte gradnjo prirastnega DTM tako, da nastavite http://xml.apache.org/xalan/features/incremental na resni\u010dno.)]"},

-  {  "optionNOOPTIMIMIZE",  "   [-NOOPTIMIMIZE (prepre\u010dite obdelavo optimiziranja slogovne datoteke, tako da nastavite http://xml.apache.org/xalan/features/optimize na false.)]"},

-  { "optionRL",  "   [-RL mejaRekurzije (zahtevajte numeri\u010dno mejo globine rekurzije slogovne datoteke.)]"},

-  {   "optionXO",  "   [-XO [imeTransleta] (dodelite ime ustvarjenemu transletu)]"},

-  {  "optionXD", "   [-XD ciljnaMapa (navedite ciljno mapo za translet)]"},

-  {  "optionXJ",  "   [-XJ datotekaJar (zdru\u017ei razrede transleta v datoteko jar z imenom <jarfile>)]"},

-  {   "optionXP",  "   [-XP paket (navede predpono imena paketa vsem ustvarjenim razredom transletov)]"},

-

-  //AddITIONAL  STRINGS that need L10n

-  // Note to translators:  The following message describes usage of a particular

-  // command-line option that is used to enable the "template inlining"

-  // optimization.  The optimization involves making a copy of the code

-  // generated for a template in another template that refers to it.

-  { "optionXN",  "   [-XN (omogo\u010da vstavljanje predlog)]" },

-  { "optionXX",  "   [-XX (vklopi izhod za dodatna sporo\u010dila za iskanje napak)]"},

-  { "optionXT" , "   [-XT (\u010de je mogo\u010de, uporabite translet za pretvorbo)]"},

-  { "diagTiming"," --------- Pretvorba {0} prek {1} je trajala {2} ms" },

-  { "recursionTooDeep","Predloga pregloboko vgnezdena. Gnezdenje = {0}, predloga {1} {2}" },

-  { "nameIs", "ime je" },

-  { "matchPatternIs", "primerjalni vzorec je" }

-

-  };

-  }

-  // ================= INFRASTRUCTURE ======================

-

-  /** String for use when a bad error code was encountered.    */

-  public static final String BAD_CODE = "BAD_CODE";

-

-  /** String for use when formatting of the error string failed.   */

-  public static final String FORMAT_FAILED = "FORMAT_FAILED";

-

-  /** General error string.   */

-  public static final String ERROR_STRING = "#error";

-

-  /** String to prepend to error messages.  */

-  public static final String ERROR_HEADER = "Napaka: ";

-

-  /** String to prepend to warning messages.    */

-  public static final String WARNING_HEADER = "Opozorilo: ";

-

-  /** String to specify the XSLT module.  */

-  public static final String XSL_HEADER = "XSLT ";

-

-  /** String to specify the XML parser module.  */

-  public static final String XML_HEADER = "XML ";

-

-  /** I don't think this is used any more.

-   * @deprecated  */

-  public static final String QUERY_HEADER = "VZOREC ";

-

-

-  /**

-   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior

-   *   of ResourceBundle.getBundle().

-   *

-   *   @param className the name of the class that implements the resource bundle.

-   *   @return the ResourceBundle

-   *   @throws MissingResourceException

-   */

-  public static final XSLTErrorResources loadResourceBundle(String className)

-          throws MissingResourceException

-  {

-

-    Locale locale = Locale.getDefault();

-    String suffix = getResourceSuffix(locale);

-

-    try

-    {

-

-      // first try with the given locale

-      return (XSLTErrorResources) ResourceBundle.getBundle(className

-              + suffix, locale);

-    }

-    catch (MissingResourceException e)

-    {

-      try  // try to fall back to en_US if we can't load

-      {

-

-        // Since we can't find the localized property file,

-        // fall back to en_US.

-        return (XSLTErrorResources) ResourceBundle.getBundle(className,

-                new Locale("sl", "US"));

-      }

-      catch (MissingResourceException e2)

-      {

-

-        // Now we are really in trouble.

-        // very bad, definitely very bad...not going to get very far

-        throw new MissingResourceException(

-          "Could not load any resource bundles.", className, "");

-      }

-    }

-  }

-

-  /**

-   * Return the resource file suffic for the indicated locale

-   * For most locales, this will be based the language code.  However

-   * for Chinese, we do distinguish between Taiwan and PRC

-   *

-   * @param locale the locale

-   * @return an String suffix which canbe appended to a resource name

-   */

-  private static final String getResourceSuffix(Locale locale)

-  {

-

-    String suffix = "_" + locale.getLanguage();

-    String country = locale.getCountry();

-

-    if (country.equals("TW"))

-      suffix += "_" + country;

-

-    return suffix;

-  }

-

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.res;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Set up error messages.
+ * We build a two dimensional array of message keys and
+ * message strings. In order to add a new message here,
+ * you need to first add a String constant. And
+ *  you need to enter key , value pair as part of contents
+ * Array. You also need to update MAX_CODE for error strings
+ * and MAX_WARNING for warnings ( Needed for only information
+ * purpose )
+ */
+public class XSLTErrorResources_sl extends ListResourceBundle
+{
+
+/*
+ * This file contains error and warning messages related to Xalan Error
+ * Handling.
+ *
+ *  General notes to translators:
+ *
+ *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
+ *     components.
+ *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *     XSLTC is an acronym for XSLT Compiler.
+ *
+ *  2) A stylesheet is a description of how to transform an input XML document
+ *     into a resultant XML document (or HTML document or text).  The
+ *     stylesheet itself is described in the form of an XML document.
+ *
+ *  3) A template is a component of a stylesheet that is used to match a
+ *     particular portion of an input document and specifies the form of the
+ *     corresponding portion of the output document.
+ *
+ *  4) An element is a mark-up tag in an XML document; an attribute is a
+ *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *     "elem" is an element name, "attr" and "attr2" are attribute names with
+ *     the values "val" and "val2", respectively.
+ *
+ *  5) A namespace declaration is a special attribute that is used to associate
+ *     a prefix with a URI (the namespace).  The meanings of element names and
+ *     attribute names that use that prefix are defined with respect to that
+ *     namespace.
+ *
+ *  6) "Translet" is an invented term that describes the class file that
+ *     results from compiling an XML stylesheet into a Java class.
+ *
+ *  7) XPath is a specification that describes a notation for identifying
+ *     nodes in a tree-structured representation of an XML document.  An
+ *     instance of that notation is referred to as an XPath expression.
+ *
+ */
+
+  /*
+   * Static variables
+   */
+  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX =
+        "ER_INVALID_SET_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX";
+
+  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT =
+        "ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT";
+
+  public static final String ER_NO_CURLYBRACE = "ER_NO_CURLYBRACE";
+  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";
+  public static final String ER_ILLEGAL_ATTRIBUTE = "ER_ILLEGAL_ATTRIBUTE";
+  public static final String ER_NULL_SOURCENODE_APPLYIMPORTS = "ER_NULL_SOURCENODE_APPLYIMPORTS";
+  public static final String ER_CANNOT_ADD = "ER_CANNOT_ADD";
+  public static final String ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES="ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES";
+  public static final String ER_NO_NAME_ATTRIB = "ER_NO_NAME_ATTRIB";
+  public static final String ER_TEMPLATE_NOT_FOUND = "ER_TEMPLATE_NOT_FOUND";
+  public static final String ER_CANT_RESOLVE_NAME_AVT = "ER_CANT_RESOLVE_NAME_AVT";
+  public static final String ER_REQUIRES_ATTRIB = "ER_REQUIRES_ATTRIB";
+  public static final String ER_MUST_HAVE_TEST_ATTRIB = "ER_MUST_HAVE_TEST_ATTRIB";
+  public static final String ER_BAD_VAL_ON_LEVEL_ATTRIB =
+         "ER_BAD_VAL_ON_LEVEL_ATTRIB";
+  public static final String ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =
+         "ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";
+  public static final String ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =
+         "ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";
+  public static final String ER_NEED_MATCH_ATTRIB = "ER_NEED_MATCH_ATTRIB";
+  public static final String ER_NEED_NAME_OR_MATCH_ATTRIB =
+         "ER_NEED_NAME_OR_MATCH_ATTRIB";
+  public static final String ER_CANT_RESOLVE_NSPREFIX =
+         "ER_CANT_RESOLVE_NSPREFIX";
+  public static final String ER_ILLEGAL_VALUE = "ER_ILLEGAL_VALUE";
+  public static final String ER_NO_OWNERDOC = "ER_NO_OWNERDOC";
+  public static final String ER_ELEMTEMPLATEELEM_ERR ="ER_ELEMTEMPLATEELEM_ERR";
+  public static final String ER_NULL_CHILD = "ER_NULL_CHILD";
+  public static final String ER_NEED_SELECT_ATTRIB = "ER_NEED_SELECT_ATTRIB";
+  public static final String ER_NEED_TEST_ATTRIB = "ER_NEED_TEST_ATTRIB";
+  public static final String ER_NEED_NAME_ATTRIB = "ER_NEED_NAME_ATTRIB";
+  public static final String ER_NO_CONTEXT_OWNERDOC = "ER_NO_CONTEXT_OWNERDOC";
+  public static final String ER_COULD_NOT_CREATE_XML_PROC_LIAISON =
+         "ER_COULD_NOT_CREATE_XML_PROC_LIAISON";
+  public static final String ER_PROCESS_NOT_SUCCESSFUL =
+         "ER_PROCESS_NOT_SUCCESSFUL";
+  public static final String ER_NOT_SUCCESSFUL = "ER_NOT_SUCCESSFUL";
+  public static final String ER_ENCODING_NOT_SUPPORTED =
+         "ER_ENCODING_NOT_SUPPORTED";
+  public static final String ER_COULD_NOT_CREATE_TRACELISTENER =
+         "ER_COULD_NOT_CREATE_TRACELISTENER";
+  public static final String ER_KEY_REQUIRES_NAME_ATTRIB =
+         "ER_KEY_REQUIRES_NAME_ATTRIB";
+  public static final String ER_KEY_REQUIRES_MATCH_ATTRIB =
+         "ER_KEY_REQUIRES_MATCH_ATTRIB";
+  public static final String ER_KEY_REQUIRES_USE_ATTRIB =
+         "ER_KEY_REQUIRES_USE_ATTRIB";
+  public static final String ER_REQUIRES_ELEMENTS_ATTRIB =
+         "ER_REQUIRES_ELEMENTS_ATTRIB";
+  public static final String ER_MISSING_PREFIX_ATTRIB =
+         "ER_MISSING_PREFIX_ATTRIB";
+  public static final String ER_BAD_STYLESHEET_URL = "ER_BAD_STYLESHEET_URL";
+  public static final String ER_FILE_NOT_FOUND = "ER_FILE_NOT_FOUND";
+  public static final String ER_IOEXCEPTION = "ER_IOEXCEPTION";
+  public static final String ER_NO_HREF_ATTRIB = "ER_NO_HREF_ATTRIB";
+  public static final String ER_STYLESHEET_INCLUDES_ITSELF =
+         "ER_STYLESHEET_INCLUDES_ITSELF";
+  public static final String ER_PROCESSINCLUDE_ERROR ="ER_PROCESSINCLUDE_ERROR";
+  public static final String ER_MISSING_LANG_ATTRIB = "ER_MISSING_LANG_ATTRIB";
+  public static final String ER_MISSING_CONTAINER_ELEMENT_COMPONENT =
+         "ER_MISSING_CONTAINER_ELEMENT_COMPONENT";
+  public static final String ER_CAN_ONLY_OUTPUT_TO_ELEMENT =
+         "ER_CAN_ONLY_OUTPUT_TO_ELEMENT";
+  public static final String ER_PROCESS_ERROR = "ER_PROCESS_ERROR";
+  public static final String ER_UNIMPLNODE_ERROR = "ER_UNIMPLNODE_ERROR";
+  public static final String ER_NO_SELECT_EXPRESSION ="ER_NO_SELECT_EXPRESSION";
+  public static final String ER_CANNOT_SERIALIZE_XSLPROCESSOR =
+         "ER_CANNOT_SERIALIZE_XSLPROCESSOR";
+  public static final String ER_NO_INPUT_STYLESHEET = "ER_NO_INPUT_STYLESHEET";
+  public static final String ER_FAILED_PROCESS_STYLESHEET =
+         "ER_FAILED_PROCESS_STYLESHEET";
+  public static final String ER_COULDNT_PARSE_DOC = "ER_COULDNT_PARSE_DOC";
+  public static final String ER_COULDNT_FIND_FRAGMENT =
+         "ER_COULDNT_FIND_FRAGMENT";
+  public static final String ER_NODE_NOT_ELEMENT = "ER_NODE_NOT_ELEMENT";
+  public static final String ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB =
+         "ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB";
+  public static final String ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB =
+         "ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB";
+  public static final String ER_NO_CLONE_OF_DOCUMENT_FRAG =
+         "ER_NO_CLONE_OF_DOCUMENT_FRAG";
+  public static final String ER_CANT_CREATE_ITEM = "ER_CANT_CREATE_ITEM";
+  public static final String ER_XMLSPACE_ILLEGAL_VALUE =
+         "ER_XMLSPACE_ILLEGAL_VALUE";
+  public static final String ER_NO_XSLKEY_DECLARATION =
+         "ER_NO_XSLKEY_DECLARATION";
+  public static final String ER_CANT_CREATE_URL = "ER_CANT_CREATE_URL";
+  public static final String ER_XSLFUNCTIONS_UNSUPPORTED =
+         "ER_XSLFUNCTIONS_UNSUPPORTED";
+  public static final String ER_PROCESSOR_ERROR = "ER_PROCESSOR_ERROR";
+  public static final String ER_NOT_ALLOWED_INSIDE_STYLESHEET =
+         "ER_NOT_ALLOWED_INSIDE_STYLESHEET";
+  public static final String ER_RESULTNS_NOT_SUPPORTED =
+         "ER_RESULTNS_NOT_SUPPORTED";
+  public static final String ER_DEFAULTSPACE_NOT_SUPPORTED =
+         "ER_DEFAULTSPACE_NOT_SUPPORTED";
+  public static final String ER_INDENTRESULT_NOT_SUPPORTED =
+         "ER_INDENTRESULT_NOT_SUPPORTED";
+  public static final String ER_ILLEGAL_ATTRIB = "ER_ILLEGAL_ATTRIB";
+  public static final String ER_UNKNOWN_XSL_ELEM = "ER_UNKNOWN_XSL_ELEM";
+  public static final String ER_BAD_XSLSORT_USE = "ER_BAD_XSLSORT_USE";
+  public static final String ER_MISPLACED_XSLWHEN = "ER_MISPLACED_XSLWHEN";
+  public static final String ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE =
+         "ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE";
+  public static final String ER_MISPLACED_XSLOTHERWISE =
+         "ER_MISPLACED_XSLOTHERWISE";
+  public static final String ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE =
+         "ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE";
+  public static final String ER_NOT_ALLOWED_INSIDE_TEMPLATE =
+         "ER_NOT_ALLOWED_INSIDE_TEMPLATE";
+  public static final String ER_UNKNOWN_EXT_NS_PREFIX =
+         "ER_UNKNOWN_EXT_NS_PREFIX";
+  public static final String ER_IMPORTS_AS_FIRST_ELEM =
+         "ER_IMPORTS_AS_FIRST_ELEM";
+  public static final String ER_IMPORTING_ITSELF = "ER_IMPORTING_ITSELF";
+  public static final String ER_XMLSPACE_ILLEGAL_VAL ="ER_XMLSPACE_ILLEGAL_VAL";
+  public static final String ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL =
+         "ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL";
+  public static final String ER_SAX_EXCEPTION = "ER_SAX_EXCEPTION";
+  public static final String ER_XSLT_ERROR = "ER_XSLT_ERROR";
+  public static final String ER_CURRENCY_SIGN_ILLEGAL=
+         "ER_CURRENCY_SIGN_ILLEGAL";
+  public static final String ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM =
+         "ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM";
+  public static final String ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER =
+         "ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER";
+  public static final String ER_REDIRECT_COULDNT_GET_FILENAME =
+         "ER_REDIRECT_COULDNT_GET_FILENAME";
+  public static final String ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT =
+         "ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT";
+  public static final String ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX =
+         "ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX";
+  public static final String ER_MISSING_NS_URI = "ER_MISSING_NS_URI";
+  public static final String ER_MISSING_ARG_FOR_OPTION =
+         "ER_MISSING_ARG_FOR_OPTION";
+  public static final String ER_INVALID_OPTION = "ER_INVALID_OPTION";
+  public static final String ER_MALFORMED_FORMAT_STRING =
+         "ER_MALFORMED_FORMAT_STRING";
+  public static final String ER_STYLESHEET_REQUIRES_VERSION_ATTRIB =
+         "ER_STYLESHEET_REQUIRES_VERSION_ATTRIB";
+  public static final String ER_ILLEGAL_ATTRIBUTE_VALUE =
+         "ER_ILLEGAL_ATTRIBUTE_VALUE";
+  public static final String ER_CHOOSE_REQUIRES_WHEN ="ER_CHOOSE_REQUIRES_WHEN";
+  public static final String ER_NO_APPLY_IMPORT_IN_FOR_EACH =
+         "ER_NO_APPLY_IMPORT_IN_FOR_EACH";
+  public static final String ER_CANT_USE_DTM_FOR_OUTPUT =
+         "ER_CANT_USE_DTM_FOR_OUTPUT";
+  public static final String ER_CANT_USE_DTM_FOR_INPUT =
+         "ER_CANT_USE_DTM_FOR_INPUT";
+  public static final String ER_CALL_TO_EXT_FAILED = "ER_CALL_TO_EXT_FAILED";
+  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
+  public static final String ER_INVALID_UTF16_SURROGATE =
+         "ER_INVALID_UTF16_SURROGATE";
+  public static final String ER_XSLATTRSET_USED_ITSELF =
+         "ER_XSLATTRSET_USED_ITSELF";
+  public static final String ER_CANNOT_MIX_XERCESDOM ="ER_CANNOT_MIX_XERCESDOM";
+  public static final String ER_TOO_MANY_LISTENERS = "ER_TOO_MANY_LISTENERS";
+  public static final String ER_IN_ELEMTEMPLATEELEM_READOBJECT =
+         "ER_IN_ELEMTEMPLATEELEM_READOBJECT";
+  public static final String ER_DUPLICATE_NAMED_TEMPLATE =
+         "ER_DUPLICATE_NAMED_TEMPLATE";
+  public static final String ER_INVALID_KEY_CALL = "ER_INVALID_KEY_CALL";
+  public static final String ER_REFERENCING_ITSELF = "ER_REFERENCING_ITSELF";
+  public static final String ER_ILLEGAL_DOMSOURCE_INPUT =
+         "ER_ILLEGAL_DOMSOURCE_INPUT";
+  public static final String ER_CLASS_NOT_FOUND_FOR_OPTION =
+         "ER_CLASS_NOT_FOUND_FOR_OPTION";
+  public static final String ER_REQUIRED_ELEM_NOT_FOUND =
+         "ER_REQUIRED_ELEM_NOT_FOUND";
+  public static final String ER_INPUT_CANNOT_BE_NULL ="ER_INPUT_CANNOT_BE_NULL";
+  public static final String ER_URI_CANNOT_BE_NULL = "ER_URI_CANNOT_BE_NULL";
+  public static final String ER_FILE_CANNOT_BE_NULL = "ER_FILE_CANNOT_BE_NULL";
+  public static final String ER_SOURCE_CANNOT_BE_NULL =
+         "ER_SOURCE_CANNOT_BE_NULL";
+  public static final String ER_CANNOT_INIT_BSFMGR = "ER_CANNOT_INIT_BSFMGR";
+  public static final String ER_CANNOT_CMPL_EXTENSN = "ER_CANNOT_CMPL_EXTENSN";
+  public static final String ER_CANNOT_CREATE_EXTENSN =
+         "ER_CANNOT_CREATE_EXTENSN";
+  public static final String ER_INSTANCE_MTHD_CALL_REQUIRES =
+         "ER_INSTANCE_MTHD_CALL_REQUIRES";
+  public static final String ER_INVALID_ELEMENT_NAME ="ER_INVALID_ELEMENT_NAME";
+  public static final String ER_ELEMENT_NAME_METHOD_STATIC =
+         "ER_ELEMENT_NAME_METHOD_STATIC";
+  public static final String ER_EXTENSION_FUNC_UNKNOWN =
+         "ER_EXTENSION_FUNC_UNKNOWN";
+  public static final String ER_MORE_MATCH_CONSTRUCTOR =
+         "ER_MORE_MATCH_CONSTRUCTOR";
+  public static final String ER_MORE_MATCH_METHOD = "ER_MORE_MATCH_METHOD";
+  public static final String ER_MORE_MATCH_ELEMENT = "ER_MORE_MATCH_ELEMENT";
+  public static final String ER_INVALID_CONTEXT_PASSED =
+         "ER_INVALID_CONTEXT_PASSED";
+  public static final String ER_POOL_EXISTS = "ER_POOL_EXISTS";
+  public static final String ER_NO_DRIVER_NAME = "ER_NO_DRIVER_NAME";
+  public static final String ER_NO_URL = "ER_NO_URL";
+  public static final String ER_POOL_SIZE_LESSTHAN_ONE =
+         "ER_POOL_SIZE_LESSTHAN_ONE";
+  public static final String ER_INVALID_DRIVER = "ER_INVALID_DRIVER";
+  public static final String ER_NO_STYLESHEETROOT = "ER_NO_STYLESHEETROOT";
+  public static final String ER_ILLEGAL_XMLSPACE_VALUE =
+         "ER_ILLEGAL_XMLSPACE_VALUE";
+  public static final String ER_PROCESSFROMNODE_FAILED =
+         "ER_PROCESSFROMNODE_FAILED";
+  public static final String ER_RESOURCE_COULD_NOT_LOAD =
+         "ER_RESOURCE_COULD_NOT_LOAD";
+  public static final String ER_BUFFER_SIZE_LESSTHAN_ZERO =
+         "ER_BUFFER_SIZE_LESSTHAN_ZERO";
+  public static final String ER_UNKNOWN_ERROR_CALLING_EXTENSION =
+         "ER_UNKNOWN_ERROR_CALLING_EXTENSION";
+  public static final String ER_NO_NAMESPACE_DECL = "ER_NO_NAMESPACE_DECL";
+  public static final String ER_ELEM_CONTENT_NOT_ALLOWED =
+         "ER_ELEM_CONTENT_NOT_ALLOWED";
+  public static final String ER_STYLESHEET_DIRECTED_TERMINATION =
+         "ER_STYLESHEET_DIRECTED_TERMINATION";
+  public static final String ER_ONE_OR_TWO = "ER_ONE_OR_TWO";
+  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";
+  public static final String ER_COULD_NOT_LOAD_RESOURCE =
+         "ER_COULD_NOT_LOAD_RESOURCE";
+  public static final String ER_CANNOT_INIT_DEFAULT_TEMPLATES =
+         "ER_CANNOT_INIT_DEFAULT_TEMPLATES";
+  public static final String ER_RESULT_NULL = "ER_RESULT_NULL";
+  public static final String ER_RESULT_COULD_NOT_BE_SET =
+         "ER_RESULT_COULD_NOT_BE_SET";
+  public static final String ER_NO_OUTPUT_SPECIFIED = "ER_NO_OUTPUT_SPECIFIED";
+  public static final String ER_CANNOT_TRANSFORM_TO_RESULT_TYPE =
+         "ER_CANNOT_TRANSFORM_TO_RESULT_TYPE";
+  public static final String ER_CANNOT_TRANSFORM_SOURCE_TYPE =
+         "ER_CANNOT_TRANSFORM_SOURCE_TYPE";
+  public static final String ER_NULL_CONTENT_HANDLER ="ER_NULL_CONTENT_HANDLER";
+  public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";
+  public static final String ER_CANNOT_CALL_PARSE = "ER_CANNOT_CALL_PARSE";
+  public static final String ER_NO_PARENT_FOR_FILTER ="ER_NO_PARENT_FOR_FILTER";
+  public static final String ER_NO_STYLESHEET_IN_MEDIA =
+         "ER_NO_STYLESHEET_IN_MEDIA";
+  public static final String ER_NO_STYLESHEET_PI = "ER_NO_STYLESHEET_PI";
+  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";
+  public static final String ER_PROPERTY_VALUE_BOOLEAN =
+         "ER_PROPERTY_VALUE_BOOLEAN";
+  public static final String ER_COULD_NOT_FIND_EXTERN_SCRIPT =
+         "ER_COULD_NOT_FIND_EXTERN_SCRIPT";
+  public static final String ER_RESOURCE_COULD_NOT_FIND =
+         "ER_RESOURCE_COULD_NOT_FIND";
+  public static final String ER_OUTPUT_PROPERTY_NOT_RECOGNIZED =
+         "ER_OUTPUT_PROPERTY_NOT_RECOGNIZED";
+  public static final String ER_FAILED_CREATING_ELEMLITRSLT =
+         "ER_FAILED_CREATING_ELEMLITRSLT";
+  public static final String ER_VALUE_SHOULD_BE_NUMBER =
+         "ER_VALUE_SHOULD_BE_NUMBER";
+  public static final String ER_VALUE_SHOULD_EQUAL = "ER_VALUE_SHOULD_EQUAL";
+  public static final String ER_FAILED_CALLING_METHOD =
+         "ER_FAILED_CALLING_METHOD";
+  public static final String ER_FAILED_CREATING_ELEMTMPL =
+         "ER_FAILED_CREATING_ELEMTMPL";
+  public static final String ER_CHARS_NOT_ALLOWED = "ER_CHARS_NOT_ALLOWED";
+  public static final String ER_ATTR_NOT_ALLOWED = "ER_ATTR_NOT_ALLOWED";
+  public static final String ER_BAD_VALUE = "ER_BAD_VALUE";
+  public static final String ER_ATTRIB_VALUE_NOT_FOUND =
+         "ER_ATTRIB_VALUE_NOT_FOUND";
+  public static final String ER_ATTRIB_VALUE_NOT_RECOGNIZED =
+         "ER_ATTRIB_VALUE_NOT_RECOGNIZED";
+  public static final String ER_NULL_URI_NAMESPACE = "ER_NULL_URI_NAMESPACE";
+  public static final String ER_NUMBER_TOO_BIG = "ER_NUMBER_TOO_BIG";
+  public static final String  ER_CANNOT_FIND_SAX1_DRIVER =
+         "ER_CANNOT_FIND_SAX1_DRIVER";
+  public static final String  ER_SAX1_DRIVER_NOT_LOADED =
+         "ER_SAX1_DRIVER_NOT_LOADED";
+  public static final String  ER_SAX1_DRIVER_NOT_INSTANTIATED =
+         "ER_SAX1_DRIVER_NOT_INSTANTIATED" ;
+  public static final String ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER =
+         "ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER";
+  public static final String  ER_PARSER_PROPERTY_NOT_SPECIFIED =
+         "ER_PARSER_PROPERTY_NOT_SPECIFIED";
+  public static final String  ER_PARSER_ARG_CANNOT_BE_NULL =
+         "ER_PARSER_ARG_CANNOT_BE_NULL" ;
+  public static final String  ER_FEATURE = "ER_FEATURE";
+  public static final String ER_PROPERTY = "ER_PROPERTY" ;
+  public static final String ER_NULL_ENTITY_RESOLVER ="ER_NULL_ENTITY_RESOLVER";
+  public static final String  ER_NULL_DTD_HANDLER = "ER_NULL_DTD_HANDLER" ;
+  public static final String ER_NO_DRIVER_NAME_SPECIFIED =
+         "ER_NO_DRIVER_NAME_SPECIFIED";
+  public static final String ER_NO_URL_SPECIFIED = "ER_NO_URL_SPECIFIED";
+  public static final String ER_POOLSIZE_LESS_THAN_ONE =
+         "ER_POOLSIZE_LESS_THAN_ONE";
+  public static final String ER_INVALID_DRIVER_NAME = "ER_INVALID_DRIVER_NAME";
+  public static final String ER_ERRORLISTENER = "ER_ERRORLISTENER";
+  public static final String ER_ASSERT_NO_TEMPLATE_PARENT =
+         "ER_ASSERT_NO_TEMPLATE_PARENT";
+  public static final String ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR =
+         "ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR";
+  public static final String ER_NOT_ALLOWED_IN_POSITION =
+         "ER_NOT_ALLOWED_IN_POSITION";
+  public static final String ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION =
+         "ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION";
+  public static final String ER_NAMESPACE_CONTEXT_NULL_NAMESPACE =
+         "ER_NAMESPACE_CONTEXT_NULL_NAMESPACE";
+  public static final String ER_NAMESPACE_CONTEXT_NULL_PREFIX =
+         "ER_NAMESPACE_CONTEXT_NULL_PREFIX";
+  public static final String ER_XPATH_RESOLVER_NULL_QNAME =
+         "ER_XPATH_RESOLVER_NULL_QNAME";
+  public static final String ER_XPATH_RESOLVER_NEGATIVE_ARITY =
+         "ER_XPATH_RESOLVER_NEGATIVE_ARITY";
+  public static final String INVALID_TCHAR = "INVALID_TCHAR";
+  public static final String INVALID_QNAME = "INVALID_QNAME";
+  public static final String INVALID_ENUM = "INVALID_ENUM";
+  public static final String INVALID_NMTOKEN = "INVALID_NMTOKEN";
+  public static final String INVALID_NCNAME = "INVALID_NCNAME";
+  public static final String INVALID_BOOLEAN = "INVALID_BOOLEAN";
+  public static final String INVALID_NUMBER = "INVALID_NUMBER";
+  public static final String ER_ARG_LITERAL = "ER_ARG_LITERAL";
+  public static final String ER_DUPLICATE_GLOBAL_VAR ="ER_DUPLICATE_GLOBAL_VAR";
+  public static final String ER_DUPLICATE_VAR = "ER_DUPLICATE_VAR";
+  public static final String ER_TEMPLATE_NAME_MATCH = "ER_TEMPLATE_NAME_MATCH";
+  public static final String ER_INVALID_PREFIX = "ER_INVALID_PREFIX";
+  public static final String ER_NO_ATTRIB_SET = "ER_NO_ATTRIB_SET";
+  public static final String ER_FUNCTION_NOT_FOUND =
+         "ER_FUNCTION_NOT_FOUND";
+  public static final String ER_CANT_HAVE_CONTENT_AND_SELECT =
+     "ER_CANT_HAVE_CONTENT_AND_SELECT";
+  public static final String ER_INVALID_SET_PARAM_VALUE = "ER_INVALID_SET_PARAM_VALUE";
+  public static final String ER_SET_FEATURE_NULL_NAME =
+        "ER_SET_FEATURE_NULL_NAME";
+  public static final String ER_GET_FEATURE_NULL_NAME =
+        "ER_GET_FEATURE_NULL_NAME";
+  public static final String ER_UNSUPPORTED_FEATURE =
+        "ER_UNSUPPORTED_FEATURE";
+  public static final String ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING =
+        "ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING";
+
+  public static final String WG_FOUND_CURLYBRACE = "WG_FOUND_CURLYBRACE";
+  public static final String WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR =
+         "WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR";
+  public static final String WG_EXPR_ATTRIB_CHANGED_TO_SELECT =
+         "WG_EXPR_ATTRIB_CHANGED_TO_SELECT";
+  public static final String WG_NO_LOCALE_IN_FORMATNUMBER =
+         "WG_NO_LOCALE_IN_FORMATNUMBER";
+  public static final String WG_LOCALE_NOT_FOUND = "WG_LOCALE_NOT_FOUND";
+  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";
+  public static final String WG_CANNOT_LOAD_REQUESTED_DOC =
+         "WG_CANNOT_LOAD_REQUESTED_DOC";
+  public static final String WG_CANNOT_FIND_COLLATOR ="WG_CANNOT_FIND_COLLATOR";
+  public static final String WG_FUNCTIONS_SHOULD_USE_URL =
+         "WG_FUNCTIONS_SHOULD_USE_URL";
+  public static final String WG_ENCODING_NOT_SUPPORTED_USING_UTF8 =
+         "WG_ENCODING_NOT_SUPPORTED_USING_UTF8";
+  public static final String WG_ENCODING_NOT_SUPPORTED_USING_JAVA =
+         "WG_ENCODING_NOT_SUPPORTED_USING_JAVA";
+  public static final String WG_SPECIFICITY_CONFLICTS =
+         "WG_SPECIFICITY_CONFLICTS";
+  public static final String WG_PARSING_AND_PREPARING =
+         "WG_PARSING_AND_PREPARING";
+  public static final String WG_ATTR_TEMPLATE = "WG_ATTR_TEMPLATE";
+  public static final String WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE = "WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESP";
+  public static final String WG_ATTRIB_NOT_HANDLED = "WG_ATTRIB_NOT_HANDLED";
+  public static final String WG_NO_DECIMALFORMAT_DECLARATION =
+         "WG_NO_DECIMALFORMAT_DECLARATION";
+  public static final String WG_OLD_XSLT_NS = "WG_OLD_XSLT_NS";
+  public static final String WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED =
+         "WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED";
+  public static final String WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE =
+         "WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE";
+  public static final String WG_ILLEGAL_ATTRIBUTE = "WG_ILLEGAL_ATTRIBUTE";
+  public static final String WG_COULD_NOT_RESOLVE_PREFIX =
+         "WG_COULD_NOT_RESOLVE_PREFIX";
+  public static final String WG_STYLESHEET_REQUIRES_VERSION_ATTRIB =
+         "WG_STYLESHEET_REQUIRES_VERSION_ATTRIB";
+  public static final String WG_ILLEGAL_ATTRIBUTE_NAME =
+         "WG_ILLEGAL_ATTRIBUTE_NAME";
+  public static final String WG_ILLEGAL_ATTRIBUTE_VALUE =
+         "WG_ILLEGAL_ATTRIBUTE_VALUE";
+  public static final String WG_EMPTY_SECOND_ARG = "WG_EMPTY_SECOND_ARG";
+  public static final String WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =
+         "WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";
+  public static final String WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =
+         "WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";
+  public static final String WG_ILLEGAL_ATTRIBUTE_POSITION =
+         "WG_ILLEGAL_ATTRIBUTE_POSITION";
+  public static final String NO_MODIFICATION_ALLOWED_ERR =
+         "NO_MODIFICATION_ALLOWED_ERR";
+
+  /*
+   * Now fill in the message text.
+   * Then fill in the message text for that message code in the
+   * array. Use the new error code as the index into the array.
+   */
+
+  // Error messages...
+
+  /** Get the lookup table for error messages.
+   *
+   * @return The message lookup table.
+   */
+  public Object[][] getContents()
+  {
+    return new Object[][] {
+
+  /** Error message ID that has a null message, but takes in a single object.    */
+  {"ER0000" , "{0}" },
+
+
+    { ER_NO_CURLYBRACE,
+      "Napaka: Izraz ne sme vsebovati '{'"},
+
+    { ER_ILLEGAL_ATTRIBUTE ,
+     "{0} vsebuje neveljaven atribut: {1}"},
+
+  {ER_NULL_SOURCENODE_APPLYIMPORTS ,
+      "sourceNode je NULL v xsl:apply-imports!"},
+
+  {ER_CANNOT_ADD,
+      "Ne morem dodati {0} k {1}"},
+
+    { ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES,
+      "sourceNode je NULL v handleApplyTemplatesInstruction!"},
+
+    { ER_NO_NAME_ATTRIB,
+     "{0} mora vsebovati atribut imena."},
+
+    {ER_TEMPLATE_NOT_FOUND,
+     "Nisem na\u0161em predloge z imenom: {0}"},
+
+    {ER_CANT_RESOLVE_NAME_AVT,
+      "Imena AVT v xsl:call-template ni bilo mogo\u010de razre\u0161iti."},
+
+    {ER_REQUIRES_ATTRIB,
+     "{0} zahteva atribut: {1}"},
+
+    { ER_MUST_HAVE_TEST_ATTRIB,
+      "{0} mora imeti atribut ''test''."},
+
+    {ER_BAD_VAL_ON_LEVEL_ATTRIB,
+      "Slaba vrednost pri atributu stopnje: {0}"},
+
+    {ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,
+      "Ime navodila za obdelavo ne more biti 'xml'"},
+
+    { ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,
+      "Ime navodila za obdelavo mora biti veljavno NCIme: {0}"},
+
+    { ER_NEED_MATCH_ATTRIB,
+      "{0} mora vsebovati primerjalni atribut, \u010de vsebuje vozli\u0161\u010de."},
+
+    { ER_NEED_NAME_OR_MATCH_ATTRIB,
+      "{0} zahteva atribut imena ali primerjalni atribut."},
+
+    {ER_CANT_RESOLVE_NSPREFIX,
+      "Predpone imenskega prostora ni mogo\u010de razre\u0161iti: {0}"},
+
+    { ER_ILLEGAL_VALUE,
+     "xml:space vsebuje neveljavno vrednost: {0}"},
+
+    { ER_NO_OWNERDOC,
+      "Podrejeno vozli\u0161\u010de ne vsebuje lastni\u0161kega dokumenta!"},
+
+    { ER_ELEMTEMPLATEELEM_ERR,
+     "Napaka ElemTemplateElement: {0}"},
+
+    { ER_NULL_CHILD,
+     "Poskus dodajanja podrejenega elementa z vrednostjo NULL!"},
+
+    { ER_NEED_SELECT_ATTRIB,
+     "{0} zahteva atribut izbire."},
+
+    { ER_NEED_TEST_ATTRIB ,
+      "xsl:when mora vsebovati atribut 'test'."},
+
+    { ER_NEED_NAME_ATTRIB,
+      "xsl:with-param mora vsebovati atribut 'ime'."},
+
+    { ER_NO_CONTEXT_OWNERDOC,
+      "Kontekst ne vsebuje lastni\u0161kega dokumenta!"},
+
+    {ER_COULD_NOT_CREATE_XML_PROC_LIAISON,
+      "Ne morem ustvariti zveze XML TransformerFactory: {0}"},
+
+    {ER_PROCESS_NOT_SUCCESSFUL,
+      "Xalan: postopek ni uspel."},
+
+    { ER_NOT_SUCCESSFUL,
+     "Xalan: ni uspel."},
+
+    { ER_ENCODING_NOT_SUPPORTED,
+     "Kodiranje ni podprto: {0}"},
+
+    {ER_COULD_NOT_CREATE_TRACELISTENER,
+      "Ne morem ustvariti javanskega razreda TraceListener: {0}"},
+
+    {ER_KEY_REQUIRES_NAME_ATTRIB,
+      "xsl:key zahteva atribut 'ime'!"},
+
+    { ER_KEY_REQUIRES_MATCH_ATTRIB,
+      "xsl:key zahteva atribut 'ujemanje'!"},
+
+    { ER_KEY_REQUIRES_USE_ATTRIB,
+      "xsl:key zahteva atribut 'uporaba'!"},
+
+    { ER_REQUIRES_ELEMENTS_ATTRIB,
+      "(StylesheetHandler) {0} zahteva atribut ''elementi''!"},
+
+    { ER_MISSING_PREFIX_ATTRIB,
+      "(StylesheetHandler) {0} manjka atribut ''predpona''"},
+
+    { ER_BAD_STYLESHEET_URL,
+     "URL slogovne datoteke je neveljaven: {0}"},
+
+    { ER_FILE_NOT_FOUND,
+     "Slogovne datoteke ni bilo mogo\u010de najti: {0}"},
+
+    { ER_IOEXCEPTION,
+      "Pri slogovni datoteki je pri\u0161lo do izjeme IO: {0}"},
+
+    { ER_NO_HREF_ATTRIB,
+      "(StylesheetHandler) Atributa href za {0} ni bilo mogo\u010de najti"},
+
+    { ER_STYLESHEET_INCLUDES_ITSELF,
+      "(StylesheetHandler) {0} neposredno ali posredno vklju\u010duje samega sebe!"},
+
+    { ER_PROCESSINCLUDE_ERROR,
+      "Napaka StylesheetHandler.processInclude, {0}"},
+
+    { ER_MISSING_LANG_ATTRIB,
+      "(StylesheetHandler) {0} manjka atribut ''lang'' "},
+
+    { ER_MISSING_CONTAINER_ELEMENT_COMPONENT,
+      "(StylesheetHandler) napa\u010dna postavitev elementa {0}?? Manjka vsebni element ''komponenta''"},
+
+    { ER_CAN_ONLY_OUTPUT_TO_ELEMENT,
+      "Prenos mogo\u010d samo v Element, DocumentFragment, Document, ali PrintWriter."},
+
+    { ER_PROCESS_ERROR,
+     "Napaka StylesheetRoot.process"},
+
+    { ER_UNIMPLNODE_ERROR,
+     "Napaka UnImplNode: {0}"},
+
+    { ER_NO_SELECT_EXPRESSION,
+      "Napaka! Ne najdem izbirnega izraza xpath (-select)."},
+
+    { ER_CANNOT_SERIALIZE_XSLPROCESSOR,
+      "Ne morem serializirati XSLProcessor!"},
+
+    { ER_NO_INPUT_STYLESHEET,
+      "Vnos slogovne datoteke ni dolo\u010den!"},
+
+    { ER_FAILED_PROCESS_STYLESHEET,
+      "Obdelava slogovne datoteke ni uspela!"},
+
+    { ER_COULDNT_PARSE_DOC,
+     "Dokumenta {0} ni mogo\u010de raz\u010dleniti!"},
+
+    { ER_COULDNT_FIND_FRAGMENT,
+     "Ne najdem fragmenta: {0}"},
+
+    { ER_NODE_NOT_ELEMENT,
+      "Vozli\u0161\u010de, na katerega ka\u017ee identifikator fragmenta, ni element: {0}"},
+
+    { ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB,
+      "vsak mora vsebovati primerjalni atribut ali atribut imena"},
+
+    { ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB,
+      "predloge morajo imeti primerjalni atribut ali atribut imena"},
+
+    { ER_NO_CLONE_OF_DOCUMENT_FRAG,
+      "Ni klona fragmenta dokumenta!"},
+
+    { ER_CANT_CREATE_ITEM,
+      "Ne morem ustvariti elementa v drevesu rezultatov: {0}"},
+
+    { ER_XMLSPACE_ILLEGAL_VALUE,
+      "xml:space v izvirnem XML ima neveljavno vrednost: {0}"},
+
+    { ER_NO_XSLKEY_DECLARATION,
+      "Ni deklaracije xsl:key za {0}!"},
+
+    { ER_CANT_CREATE_URL,
+     "Napaka! Ne morem ustvariti URL za: {0}"},
+
+    { ER_XSLFUNCTIONS_UNSUPPORTED,
+     "xsl:functions niso podprte"},
+
+    { ER_PROCESSOR_ERROR,
+     "Napaka XSLT TransformerFactory"},
+
+    { ER_NOT_ALLOWED_INSIDE_STYLESHEET,
+      "(StylesheetHandler) {0} ni dovoljen znotraj slogovne datoteke!"},
+
+    { ER_RESULTNS_NOT_SUPPORTED,
+      "result-ns ni ve\u010d podprt!  Namesto njega uporabite xsl:output."},
+
+    { ER_DEFAULTSPACE_NOT_SUPPORTED,
+      "default-space ni ve\u010d podprt!  Namesto njega uporabite xsl:strip-space ali xsl:preserve-space."},
+
+    { ER_INDENTRESULT_NOT_SUPPORTED,
+      "indent-result ni ve\u010d podprt!  Namesto njega uporabite xsl:output."},
+
+    { ER_ILLEGAL_ATTRIB,
+      "(StylesheetHandler) {0} ima neveljaven atribut: {1}"},
+
+    { ER_UNKNOWN_XSL_ELEM,
+     "Neznani element XSL: {0}"},
+
+    { ER_BAD_XSLSORT_USE,
+      "(StylesheetHandler) xsl:sort lahko uporabljamo samo z xsl:apply-templates ali z xsl:for-each."},
+
+    { ER_MISPLACED_XSLWHEN,
+      "(StylesheetHandler) napa\u010dna postavitev xsl:when!"},
+
+    { ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE,
+      "(StylesheetHandler) xsl:choose ni nadrejen xsl:when!"},
+
+    { ER_MISPLACED_XSLOTHERWISE,
+      "(StylesheetHandler) napa\u010dna postavitev xsl:otherwise!"},
+
+    { ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE,
+      "(StylesheetHandler) xsl:choose ni nadrejen xsl:otherwise!"},
+
+    { ER_NOT_ALLOWED_INSIDE_TEMPLATE,
+      "(StylesheetHandler) {0} ni dovoljen znotraj predloge!"},
+
+    { ER_UNKNOWN_EXT_NS_PREFIX,
+      "(StylesheetHandler) Neznana {0} kon\u010dnica predpone imenskega prostora {1}"},
+
+    { ER_IMPORTS_AS_FIRST_ELEM,
+      "(StylesheetHandler) Uvozi se lahko pojavijo samo kot prvi elementi v slogovni datoteki!"},
+
+    { ER_IMPORTING_ITSELF,
+      "(StylesheetHandler) {0} neposredno ali posredno uva\u017ea samega sebe!"},
+
+    { ER_XMLSPACE_ILLEGAL_VAL,
+      "(StylesheetHandler) xml:space vsebuje neveljavno vrednost: {0}"},
+
+    { ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL,
+      "processStylesheet ni uspelo!"},
+
+    { ER_SAX_EXCEPTION,
+     "Izjema SAX"},
+
+//  add this message to fix bug 21478
+    { ER_FUNCTION_NOT_SUPPORTED,
+     "Funkcija ni podprta!"},
+
+
+    { ER_XSLT_ERROR,
+     "Napaka XSLT"},
+
+    { ER_CURRENCY_SIGN_ILLEGAL,
+      "V oblikovnem nizu vzorca znak za denarno enoto ni dovoljen"},
+
+    { ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM,
+      "Funkcija dokumenta v slogovni datoteki DOM ni podprta!"},
+
+    { ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER,
+      "Ne morem razbrati predpone nepredponskega razre\u0161evalnika!"},
+
+    { ER_REDIRECT_COULDNT_GET_FILENAME,
+      "Preusmeri kon\u010dnico: ne morem pridobiti imena datoteke - atribut datoteke ali izbire mora vrniti veljaven niz."},
+
+    { ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT,
+      "V Preusmeritvi kon\u010dnice ne morem zgraditi FormatterListener!"},
+
+    { ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX,
+      "Predpona v izklju\u010di-predpone-rezultatov (exclude-result-prefixes) ni veljavna: {0}"},
+
+    { ER_MISSING_NS_URI,
+      "Za navedeno predpono manjka imenski prostor URI"},
+
+    { ER_MISSING_ARG_FOR_OPTION,
+      "Manjka argument za mo\u017enost: {0}"},
+
+    { ER_INVALID_OPTION,
+     "Neveljavna mo\u017enost: {0}"},
+
+    { ER_MALFORMED_FORMAT_STRING,
+     "Po\u0161kodovan niz sloga: {0}"},
+
+    { ER_STYLESHEET_REQUIRES_VERSION_ATTRIB,
+      "xsl:stylesheet zahteva atribut 'razli\u010dica'!"},
+
+    { ER_ILLEGAL_ATTRIBUTE_VALUE,
+      "Atribut: {0} ima neveljavno vrednost: {1}"},
+
+    { ER_CHOOSE_REQUIRES_WHEN,
+     "xsl:choose zahteva xsl:when"},
+
+    { ER_NO_APPLY_IMPORT_IN_FOR_EACH,
+      "xsl:apply-imports v xsl:for-each ni dovoljen"},
+
+    { ER_CANT_USE_DTM_FOR_OUTPUT,
+      "Za izhodno vozli\u0161\u010de DOM ne morem uporabiti DTMLiaison... namesto njega posredujte org.apache.xpath.DOM2Helper!"},
+
+    { ER_CANT_USE_DTM_FOR_INPUT,
+      "Za vhodno vozli\u0161\u010de DOM ne morem uporabiti DTMLiaison... namesto njega posredujte org.apache.xpath.DOM2Helper!"},
+
+    { ER_CALL_TO_EXT_FAILED,
+      "Klic elementa kon\u010dnice ni uspel: {0}"},
+
+    { ER_PREFIX_MUST_RESOLVE,
+      "Predpona se mora razre\u0161iti v imenski prostor: {0}"},
+
+    { ER_INVALID_UTF16_SURROGATE,
+      "Zaznan neveljaven nadomestek UTF-16: {0} ?"},
+
+    { ER_XSLATTRSET_USED_ITSELF,
+      "xsl:attribute-set {0} je uporabil samega sebe, kar bo povzro\u010dilo neskon\u010do ponavljanje."},
+
+    { ER_CANNOT_MIX_XERCESDOM,
+      "Prepletanje ne-Xerces-DOM vhoda s Xerces-DOM vhodom ni mogo\u010de!"},
+
+    { ER_TOO_MANY_LISTENERS,
+      "addTraceListenersToStylesheet - TooManyListenersException"},
+
+    { ER_IN_ELEMTEMPLATEELEM_READOBJECT,
+      "V ElemTemplateElement.readObject: {0}"},
+
+    { ER_DUPLICATE_NAMED_TEMPLATE,
+      "Na\u0161el ve\u010d predlog z istim imenom: {0}"},
+
+    { ER_INVALID_KEY_CALL,
+      "Neveljaven klic funkcije: povratni klici key() niso dovoljeni"},
+
+    { ER_REFERENCING_ITSELF,
+      "Spremenljivka {0} se neposredno ali posredno sklicuje sama nase!"},
+
+    { ER_ILLEGAL_DOMSOURCE_INPUT,
+      "Vhodno vozli\u0161\u010de za DOMSource za newTemplates ne more biti NULL!"},
+
+    { ER_CLASS_NOT_FOUND_FOR_OPTION,
+        "Datoteke razreda za mo\u017enost {0} ni bilo mogo\u010de najti"},
+
+    { ER_REQUIRED_ELEM_NOT_FOUND,
+        "Zahtevanega elementa ni bilo mogo\u010de najti: {0}"},
+
+    { ER_INPUT_CANNOT_BE_NULL,
+        "InputStream ne more biti NULL"},
+
+    { ER_URI_CANNOT_BE_NULL,
+        "URI ne more biti NULL"},
+
+    { ER_FILE_CANNOT_BE_NULL,
+        "Datoteka ne more biti NULL"},
+
+    { ER_SOURCE_CANNOT_BE_NULL,
+                "InputSource ne more biti NULL"},
+
+    { ER_CANNOT_INIT_BSFMGR,
+                "Inicializacija BSF Manager-ja ni mogo\u010da"},
+
+    { ER_CANNOT_CMPL_EXTENSN,
+                "Kon\u010dnice ni mogo\u010de prevesti"},
+
+    { ER_CANNOT_CREATE_EXTENSN,
+      "Ne morem ustvariti kon\u010dnice: {0} zaradi: {1}"},
+
+    { ER_INSTANCE_MTHD_CALL_REQUIRES,
+      "Klic primerkov metode za metodo {0} zahteva primerek objekta kot prvi argument"},
+
+    { ER_INVALID_ELEMENT_NAME,
+      "Navedeno neveljavno ime elementa {0}"},
+
+    { ER_ELEMENT_NAME_METHOD_STATIC,
+      "Metoda imena elementa mora biti stati\u010dna (static) {0}"},
+
+    { ER_EXTENSION_FUNC_UNKNOWN,
+             "Funkcija kon\u010dnice {0} : {1} je neznana"},
+
+    { ER_MORE_MATCH_CONSTRUCTOR,
+             "Ve\u010d kot eno najbolj\u0161e ujemanje za graditelja za {0}"},
+
+    { ER_MORE_MATCH_METHOD,
+             "Ve\u010d kot eno najbolj\u0161e ujemanje za metodo {0}"},
+
+    { ER_MORE_MATCH_ELEMENT,
+             "Ve\u010d kot eno najbolj\u0161e ujemanje za metodo elementa {0}"},
+
+    { ER_INVALID_CONTEXT_PASSED,
+             "Posredovan neveljaven kontekst za ovrednotenje {0}"},
+
+    { ER_POOL_EXISTS,
+             "Zaloga \u017ee obstaja"},
+
+    { ER_NO_DRIVER_NAME,
+             "Ime gonilnika ni dolo\u010deno"},
+
+    { ER_NO_URL,
+             "URL ni dolo\u010den"},
+
+    { ER_POOL_SIZE_LESSTHAN_ONE,
+             "Zaloga je manj\u0161a od ena!"},
+
+    { ER_INVALID_DRIVER,
+             "Navedeno neveljavno ime gonilnika!"},
+
+    { ER_NO_STYLESHEETROOT,
+             "Korena slogovne datoteke ni mogo\u010de najti!"},
+
+    { ER_ILLEGAL_XMLSPACE_VALUE,
+         "Neveljavna vrednost za xml:space"},
+
+    { ER_PROCESSFROMNODE_FAILED,
+         "processFromNode spodletelo"},
+
+    { ER_RESOURCE_COULD_NOT_LOAD,
+        "Sredstva [ {0} ] ni bilo mogo\u010de nalo\u017eiti: {1} \n {2} \t {3}"},
+
+    { ER_BUFFER_SIZE_LESSTHAN_ZERO,
+        "Velikost medpomnilnika <=0"},
+
+    { ER_UNKNOWN_ERROR_CALLING_EXTENSION,
+        "Neznana napaka pri klicu kon\u010dnice"},
+
+    { ER_NO_NAMESPACE_DECL,
+        "Predpona {0} nima ustrezne deklaracije imenskega prostora"},
+
+    { ER_ELEM_CONTENT_NOT_ALLOWED,
+        "Vsebina elementa za lang=javaclass {0} ni dovoljena"},
+
+    { ER_STYLESHEET_DIRECTED_TERMINATION,
+        "Prekinitev usmerja slogovna datoteka"},
+
+    { ER_ONE_OR_TWO,
+        "1 ali 2"},
+
+    { ER_TWO_OR_THREE,
+        "2 ali 3"},
+
+    { ER_COULD_NOT_LOAD_RESOURCE,
+        "Nisem mogel nalo\u017eiti {0} (preverite CLASSPATH), trenutno se uporabljajo privzete vrednosti"},
+
+    { ER_CANNOT_INIT_DEFAULT_TEMPLATES,
+        "Ne morem inicializirati privzetih predlog"},
+
+    { ER_RESULT_NULL,
+        "Rezultat naj ne bi bil NULL"},
+
+    { ER_RESULT_COULD_NOT_BE_SET,
+        "Rezultata ni bilo mogo\u010de nastaviti"},
+
+    { ER_NO_OUTPUT_SPECIFIED,
+        "Izhod ni naveden"},
+
+    { ER_CANNOT_TRANSFORM_TO_RESULT_TYPE,
+        "Ne morem pretvoriti v rezultat tipa {0}"},
+
+    { ER_CANNOT_TRANSFORM_SOURCE_TYPE,
+        "Ne morem pretvoriti vira tipa {0}"},
+
+    { ER_NULL_CONTENT_HANDLER,
+        "Program za obravnavo vsebine NULL"},
+
+    { ER_NULL_ERROR_HANDLER,
+        "Program za obravnavo napak NULL"},
+
+    { ER_CANNOT_CALL_PARSE,
+        "klic raz\u010dlenitve ni mo\u017een \u010de ContentHandler ni bil nastavljen"},
+
+    { ER_NO_PARENT_FOR_FILTER,
+        "Ni nadrejenega za filter"},
+
+    { ER_NO_STYLESHEET_IN_MEDIA,
+         "Ni mogo\u010de najti slogovne datoteke v: {0}, medij= {1}"},
+
+    { ER_NO_STYLESHEET_PI,
+         "Ne najdem xml-stylesheet PI v: {0}"},
+
+    { ER_NOT_SUPPORTED,
+       "Ni podprto: {0}"},
+
+    { ER_PROPERTY_VALUE_BOOLEAN,
+       "Vrednost lastnosti {0} bi morala biti ponovitev logi\u010dne vrednosti"},
+
+    { ER_COULD_NOT_FIND_EXTERN_SCRIPT,
+         "Ne morem dostopati do zunanje skripte na {0}"},
+
+    { ER_RESOURCE_COULD_NOT_FIND,
+        "Vira [ {0} ] ni mogo\u010de najti.\n {1}"},
+
+    { ER_OUTPUT_PROPERTY_NOT_RECOGNIZED,
+        "Izhodna lastnost ni prepoznana: {0}"},
+
+    { ER_FAILED_CREATING_ELEMLITRSLT,
+        "Priprava primerka ElemLiteralResult ni uspela"},
+
+  //Earlier (JDK 1.4 XALAN 2.2-D11) at key code '204' the key name was ER_PRIORITY_NOT_PARSABLE
+  // In latest Xalan code base key name is  ER_VALUE_SHOULD_BE_NUMBER. This should also be taken care
+  //in locale specific files like XSLTErrorResources_de.java, XSLTErrorResources_fr.java etc.
+  //NOTE: Not only the key name but message has also been changed.
+
+    { ER_VALUE_SHOULD_BE_NUMBER,
+        "Vrednost za {0} bi morala biti \u0161tevilka, ki jo je mogo\u010de raz\u010dleniti"},
+
+    { ER_VALUE_SHOULD_EQUAL,
+        "Vrednost za {0} bi morala biti enaka da ali ne"},
+
+    { ER_FAILED_CALLING_METHOD,
+        "Klic metode {0} ni uspel"},
+
+    { ER_FAILED_CREATING_ELEMTMPL,
+        "Priprava primerka ElemTemplateElement ni uspela"},
+
+    { ER_CHARS_NOT_ALLOWED,
+        "V tem trenutku znaki v dokumentu niso na voljo"},
+
+    { ER_ATTR_NOT_ALLOWED,
+        "Atribut \"{0}\" v elementu {1} ni dovoljen!"},
+
+    { ER_BAD_VALUE,
+     "{0} slaba vrednost {1} "},
+
+    { ER_ATTRIB_VALUE_NOT_FOUND,
+     "Vrednosti atributa {0} ni bilo mogo\u010de najti "},
+
+    { ER_ATTRIB_VALUE_NOT_RECOGNIZED,
+     "Vrednosti atributa {0} ni bilo mogo\u010de prepoznati "},
+
+    { ER_NULL_URI_NAMESPACE,
+     "Posku\u0161am generirati predpono imenskega prostora z URI z vrednostjo NULL"},
+
+  //New ERROR keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)
+
+    { ER_NUMBER_TOO_BIG,
+     "Poskus oblikovanja \u0161tevilke, ve\u010dje od najve\u010djega dolgega celega \u0161tevila"},
+
+    { ER_CANNOT_FIND_SAX1_DRIVER,
+     "Ne najdem razreda gonilnika SAX1 {0}"},
+
+    { ER_SAX1_DRIVER_NOT_LOADED,
+     "Na\u0161el razred gonilnika SAX1 {0}, vendar ga ne morem nalo\u017eiti"},
+
+    { ER_SAX1_DRIVER_NOT_INSTANTIATED,
+     "Nalo\u017eil razred gonilnika SAX1 {0}, vendar ga ne morem udejaniti"},
+
+    { ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER,
+     "Razred gonilnika SAX1 {0} ne vklju\u010duje org.xml.sax.Parser"},
+
+    { ER_PARSER_PROPERTY_NOT_SPECIFIED,
+     "Sistemska lastnost org.xml.sax.parser ni dolo\u010dena"},
+
+    { ER_PARSER_ARG_CANNOT_BE_NULL,
+     "Argument raz\u010dlenjevalnika sme biti NULL"},
+
+    { ER_FEATURE,
+     "Zna\u010dilnost: {0}"},
+
+    { ER_PROPERTY,
+     "Lastnost: {0}"},
+
+    { ER_NULL_ENTITY_RESOLVER,
+     "Razre\u0161evalnik entitet NULL"},
+
+    { ER_NULL_DTD_HANDLER,
+     "Program za obravnavanje DTD z vrednostjo NULL"},
+
+    { ER_NO_DRIVER_NAME_SPECIFIED,
+     "Ime gonilnika ni dolo\u010deno!"},
+
+    { ER_NO_URL_SPECIFIED,
+     "URL ni dolo\u010den!"},
+
+    { ER_POOLSIZE_LESS_THAN_ONE,
+     "Zaloga je manj\u0161a od 1!"},
+
+    { ER_INVALID_DRIVER_NAME,
+     "Dolo\u010deno neveljavno ime gonilnika!"},
+
+    { ER_ERRORLISTENER,
+     "ErrorListener"},
+
+
+// Note to translators:  The following message should not normally be displayed
+//   to users.  It describes a situation in which the processor has detected
+//   an internal consistency problem in itself, and it provides this message
+//   for the developer to help diagnose the problem.  The name
+//   'ElemTemplateElement' is the name of a class, and should not be
+//   translated.
+    { ER_ASSERT_NO_TEMPLATE_PARENT,
+     "Programerjeva napaka! Izraz nima nadrejenega ElemTemplateElement!"},
+
+
+// Note to translators:  The following message should not normally be displayed
+//   to users.  It describes a situation in which the processor has detected
+//   an internal consistency problem in itself, and it provides this message
+//   for the developer to help diagnose the problem.  The substitution text
+//   provides further information in order to diagnose the problem.  The name
+//   'RedundentExprEliminator' is the name of a class, and should not be
+//   translated.
+    { ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR,
+     "Programerjeva izjava v RedundentExprEliminator: {0}"},
+
+    { ER_NOT_ALLOWED_IN_POSITION,
+     "Na tem polo\u017eaju v slogovni datoteki {0} ni dovoljen!"},
+
+    { ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION,
+     "Besedilo, ki niso presledki in drugi podobni znaki, na tem polo\u017eaju v slogovni datoteki ni dovoljeno.!"},
+
+  // This code is shared with warning codes.
+  // SystemId Unknown
+    { INVALID_TCHAR,
+     "Neveljavna vrednost: {1} uporabljena za atribut CHAR: {0}.  Atribut tipa CHAR mora biti samo 1 znak!"},
+
+    // Note to translators:  The following message is used if the value of
+    // an attribute in a stylesheet is invalid.  "QNAME" is the XML data-type of
+    // the attribute, and should not be translated.  The substitution text {1} is
+    // the attribute value and {0} is the attribute name.
+    //The following codes are shared with the warning codes...
+    { INVALID_QNAME,
+     "Neveljavna vrednost: {1} uporabljena za atribut QNAME: {0}"},
+
+    // Note to translators:  The following message is used if the value of
+    // an attribute in a stylesheet is invalid.  "ENUM" is the XML data-type of
+    // the attribute, and should not be translated.  The substitution text {1} is
+    // the attribute value, {0} is the attribute name, and {2} is a list of valid
+    // values.
+    { INVALID_ENUM,
+     "Neveljavna vrednost: {1} uporabljena za atribut ENUM: {0}.  Veljavne vrednosti so: {2}."},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "NMTOKEN" is the XML data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+    { INVALID_NMTOKEN,
+     "Neveljavna vrednost: {1} uporabljena za atribut NMTOKEN: {0} "},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "NCNAME" is the XML data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+    { INVALID_NCNAME,
+     "Neveljavna vrednost: {1} uporabljena za atribut NCNAME: {0} "},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "boolean" is the XSLT data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+    { INVALID_BOOLEAN,
+     "Neveljavna vrednost: {1} uporabljena za atribut boolean: {0} "},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "number" is the XSLT data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+     { INVALID_NUMBER,
+     "Neveljavna vrednost: {1} uporabljena za atribut number: {0} "},
+
+
+  // End of shared codes...
+
+// Note to translators:  A "match pattern" is a special form of XPath expression
+// that is used for matching patterns.  The substitution text is the name of
+// a function.  The message indicates that when this function is referenced in
+// a match pattern, its argument must be a string literal (or constant.)
+// ER_ARG_LITERAL - new error message for bugzilla //5202
+    { ER_ARG_LITERAL,
+     "Argument za {0} v primerjalnem vzorcu mora biti dobesedni niz."},
+
+// Note to translators:  The following message indicates that two definitions of
+// a variable.  A "global variable" is a variable that is accessible everywher
+// in the stylesheet.
+// ER_DUPLICATE_GLOBAL_VAR - new error message for bugzilla #790
+    { ER_DUPLICATE_GLOBAL_VAR,
+     "Dvojnik deklaracije globalne spremenljivke."},
+
+
+// Note to translators:  The following message indicates that two definitions of
+// a variable were encountered.
+// ER_DUPLICATE_VAR - new error message for bugzilla #790
+    { ER_DUPLICATE_VAR,
+     "Dvojnik deklaracije spremenljivke."},
+
+    // Note to translators:  "xsl:template, "name" and "match" are XSLT keywords
+    // which must not be translated.
+    // ER_TEMPLATE_NAME_MATCH - new error message for bugzilla #789
+    { ER_TEMPLATE_NAME_MATCH,
+     "xsl:template mora vsebovati atribut name ali match (ali oba)"},
+
+    // Note to translators:  "exclude-result-prefixes" is an XSLT keyword which
+    // should not be translated.  The message indicates that a namespace prefix
+    // encountered as part of the value of the exclude-result-prefixes attribute
+    // was in error.
+    // ER_INVALID_PREFIX - new error message for bugzilla #788
+    { ER_INVALID_PREFIX,
+     "Predpona v izklju\u010di-predpone-rezultatov (exclude-result-prefixes) ni veljavna: {0}"},
+
+    // Note to translators:  An "attribute set" is a set of attributes that can
+    // be added to an element in the output document as a group.  The message
+    // indicates that there was a reference to an attribute set named {0} that
+    // was never defined.
+    // ER_NO_ATTRIB_SET - new error message for bugzilla #782
+    { ER_NO_ATTRIB_SET,
+     "Nabor atributov, imenovana {0}, ne obstaja"},
+
+    // Note to translators:  This message indicates that there was a reference
+    // to a function named {0} for which no function definition could be found.
+    { ER_FUNCTION_NOT_FOUND,
+     "Funkcija, imenovana {0}, ne obstaja"},
+
+    // Note to translators:  This message indicates that the XSLT instruction
+    // that is named by the substitution text {0} must not contain other XSLT
+    // instructions (content) or a "select" attribute.  The word "select" is
+    // an XSLT keyword in this case and must not be translated.
+    { ER_CANT_HAVE_CONTENT_AND_SELECT,
+     "Element {0} ne sme imeti vsebine in atributa izbire hkrati."},
+
+    // Note to translators:  This message indicates that the value argument
+    // of setParameter must be a valid Java Object.
+    { ER_INVALID_SET_PARAM_VALUE,
+     "Vrednost parametra {0} mora biti veljaven javanski objekt"},
+
+        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT,
+         "Atribut result-prefix elementa xsl:namespace-alias element ima vrednost '#default' (privzeto), ampak ni deklaracije privzetega imenskega prostora v razponu za ta element."},
+
+        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX,
+         "Atribut result-prefix elementa xsl:namespace-alias ima vrednost ''{0}'', ampak ni deklaracije privzetega imenskega prostora za predpono ''{0}'' v razponu za ta element."},
+
+    { ER_SET_FEATURE_NULL_NAME,
+      "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza, vrednost boolean)."},
+
+    { ER_GET_FEATURE_NULL_NAME,
+      "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza)."},
+
+    { ER_UNSUPPORTED_FEATURE,
+      "Ni mogo\u010de nastaviti funkcije ''{0}'' v tem TransformerFactory."},
+
+    { ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING,
+        "Uporaba raz\u0161iritvene elementa ''{0}'' ni na voljo, ko je funkcija varnega procesiranja nastavljena na true."},
+
+        { ER_NAMESPACE_CONTEXT_NULL_NAMESPACE,
+          "Ni mogo\u010de dobiti predpone za URI imenskega prostora null."},
+
+        { ER_NAMESPACE_CONTEXT_NULL_PREFIX,
+          "Ni mogo\u010de dobiti URI-ja imenskega prostora za predpono null."},
+
+        { ER_XPATH_RESOLVER_NULL_QNAME,
+          "Ime funkcije ne more biti ni\u010d."},
+
+        { ER_XPATH_RESOLVER_NEGATIVE_ARITY,
+          "\u0160tevilo argumentov ne more biti negativno"},
+
+  // Warnings...
+
+    { WG_FOUND_CURLYBRACE,
+      "Najden '}' vendar ni odprtih predlog atributov!"},
+
+    { WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR,
+      "Opozorilo: \u0161tevni atribut ni skladen s prednikom v xsl:number! Cilj = {0}"},
+
+    { WG_EXPR_ATTRIB_CHANGED_TO_SELECT,
+      "Stara sintaksa: Ime atributa 'izraz' je bilo spremenjeno v 'izbira'."},
+
+    { WG_NO_LOCALE_IN_FORMATNUMBER,
+      "Xalan \u0161e ne podpira podro\u010dnih imen v funkciji za oblikovanje \u0161tevilk."},
+
+    { WG_LOCALE_NOT_FOUND,
+      "Opozorilo: ne najdem podro\u010dnih nastavitev za xml:lang={0}"},
+
+    { WG_CANNOT_MAKE_URL_FROM,
+      "Iz {0} ni mogo\u010de narediti naslova URL."},
+
+    { WG_CANNOT_LOAD_REQUESTED_DOC,
+      "Ne morem nalo\u017eiti zahtevanega dokumenta: {0}"},
+
+    { WG_CANNOT_FIND_COLLATOR,
+      "Ne najdem kolacionista (collator) za <sort xml:lang={0}"},
+
+    { WG_FUNCTIONS_SHOULD_USE_URL,
+      "Stara sintaksa: navodilo za funkcije bi moralo uporabljati URL {0}"},
+
+    { WG_ENCODING_NOT_SUPPORTED_USING_UTF8,
+      "Kodiranje ni podprto: {0}, uporabljen bo UTF-8"},
+
+    { WG_ENCODING_NOT_SUPPORTED_USING_JAVA,
+      "kodiranje ni podprto: {0}, uporabljena bo Java {1}"},
+
+    { WG_SPECIFICITY_CONFLICTS,
+      "Spori pri specifi\u010dnosti: uporabljen bo zadnji najdeni {0} v slogovni datoteki."},
+
+    { WG_PARSING_AND_PREPARING,
+      "========= Poteka raz\u010dlenjevanje in priprava {0} =========="},
+
+    { WG_ATTR_TEMPLATE,
+     "Predloga atributa, {0}"},
+
+    { WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE,
+      "Spor ujemanja med xsl:strip-space in xsl:preserve-space"},
+
+    { WG_ATTRIB_NOT_HANDLED,
+      "Xalan \u0161e ne podpira atributa {0}!"},
+
+    { WG_NO_DECIMALFORMAT_DECLARATION,
+      "Deklaracije za decimalno obliko ni bilo mogo\u010de najti: {0}"},
+
+    { WG_OLD_XSLT_NS,
+     "Manjkajo\u010d ali nepravilen imenski prostor XSLT. "},
+
+    { WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED,
+      "Dovoljena je samo ena privzeta deklaracija xsl:decimal-format."},
+
+    { WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE,
+      "Imena xsl:decimal-format morajo biti enoli\u010dna. Ime \"{0}\" je bilo podvojeno."},
+
+    { WG_ILLEGAL_ATTRIBUTE,
+      "{0} vsebuje neveljaven atribut: {1}"},
+
+    { WG_COULD_NOT_RESOLVE_PREFIX,
+      "Ne morem razre\u0161iti predpone imenskega prostora: {0}. Vozli\u0161\u010de bo prezrto."},
+
+    { WG_STYLESHEET_REQUIRES_VERSION_ATTRIB,
+      "xsl:stylesheet zahteva atribut 'razli\u010dica'!"},
+
+    { WG_ILLEGAL_ATTRIBUTE_NAME,
+      "Neveljavno ime atributa: {0}"},
+
+    { WG_ILLEGAL_ATTRIBUTE_VALUE,
+      "Uporabljena neveljavna vrednost za atribut {0}: {1}"},
+
+    { WG_EMPTY_SECOND_ARG,
+      "Posledi\u010dna skupina vozli\u0161\u010d iz drugega argumenta funkcije dokumenta je prazna. Posredujte prazno skupino vozli\u0161\u010d."},
+
+  //Following are the new WARNING keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)
+
+    // Note to translators:  "name" and "xsl:processing-instruction" are keywords
+    // and must not be translated.
+    { WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,
+      "Vrednost atributa 'ime' iz imena xsl:processing-instruction ne sme biti 'xml'"},
+
+    // Note to translators:  "name" and "xsl:processing-instruction" are keywords
+    // and must not be translated.  "NCName" is an XML data-type and must not be
+    // translated.
+    { WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,
+      "Vrednost atributa ''ime'' iz xsl:processing-instruction mora biti veljavno NCIme: {0}"},
+
+    // Note to translators:  This message is reported if the stylesheet that is
+    // being processed attempted to construct an XML document with an attribute in a
+    // place other than on an element.  The substitution text specifies the name of
+    // the attribute.
+    { WG_ILLEGAL_ATTRIBUTE_POSITION,
+      "Atributa {0} ne morem dodati za podrejenimi vozli\u0161\u010di ali pred izdelavo elementa.  Atribut bo prezrt."},
+
+    { NO_MODIFICATION_ALLOWED_ERR,
+      "Izveden je poskus spremembe objekta tam, kjer spremembe niso dovoljene."
+    },
+
+    //Check: WHY THERE IS A GAP B/W NUMBERS in the XSLTErrorResources properties file?
+
+  // Other miscellaneous text used inside the code...
+  { "ui_language", "sl"},
+  {  "help_language",  "sl" },
+  {  "language",  "sl" },
+  { "BAD_CODE", "Parameter za createMessage presega meje"},
+  {  "FORMAT_FAILED", "Med klicem messageFormat naletel na izjemo"},
+  {  "version", ">>>>>>> Razli\u010dica Xalan "},
+  {  "version2",  "<<<<<<<"},
+  {  "yes", "da"},
+  { "line", "Vrstica #"},
+  { "column","Stolpec #"},
+  { "xsldone", "XSLProcessor: dokon\u010dano"},
+
+
+  // Note to translators:  The following messages provide usage information
+  // for the Xalan Process command line.  "Process" is the name of a Java class,
+  // and should not be translated.
+  { "xslProc_option", "Ukazna vrstica Xalan-J Mo\u017enosti razreda postopka:"},
+  { "xslProc_option", "Ukazna vrstica Xalan-J Mo\u017enosti razredov postopkov\u003a"},
+  { "xslProc_invalid_xsltc_option", "Mo\u017enost {0} v na\u010dinu XSLTC ni podprta."},
+  { "xslProc_invalid_xalan_option", "Mo\u017enost {0} se lahko uporablja samo z -XSLTC."},
+  { "xslProc_no_input", "Napaka: ni dolo\u010dene slogovne datoteke ali vhodnega xml. Po\u017eenite ta ukaz, za katerega ni na voljo napotkov za uporabo."},
+  { "xslProc_common_options", "-Splo\u0161ne mo\u017enosti-"},
+  { "xslProc_xalan_options", "-Mo\u017enosti za Xalan-"},
+  { "xslProc_xsltc_options", "-Mo\u017enosti za XSLTC-"},
+  { "xslProc_return_to_continue", "(za nadaljevanje pritisnite <return>)"},
+
+   // Note to translators: The option name and the parameter name do not need to
+   // be translated. Only translate the messages in parentheses.  Note also that
+   // leading whitespace in the messages is used to indent the usage information
+   // for each option in the English messages.
+   // Do not translate the keywords: XSLTC, SAX, DOM and DTM.
+  { "optionXSLTC", "   [-XSLTC (za preoblikovanje uporabite XSLTC)]"},
+  { "optionIN", "   [-IN vhodniXMLURL]"},
+  { "optionXSL", "   [-XSL XSLPreoblikovanjeURL]"},
+  { "optionOUT",  "   [-OUT ImeIzhodneDatoteke]"},
+  { "optionLXCIN", "   [-LXCIN ImeVhodneDatotekePrevedeneSlogovneDatoteke]"},
+  { "optionLXCOUT", "   [-LXCOUT ImeIzhodneDatotekePrevedeneSlogovneDatoteke]"},
+  { "optionPARSER", "   [-PARSER popolnoma ustrezno ime razreda zveze raz\u010dlenjevalnika]"},
+  {  "optionE", "   [-E (Ne raz\u0161irjajte sklicev entitet)]"},
+  {  "optionV",  "   [-E (Ne raz\u0161irjajte sklicev entitet)]"},
+  {  "optionQC", "   [-QC (Tiha opozorila o sporih vzorcev)]"},
+  {  "optionQ", "   [-Q  (Tihi na\u010din)]"},
+  {  "optionLF", "   [-LF (Uporabite pomike samo na izhodu {privzeto je CR/LF})]"},
+  {  "optionCR", "   [-CR (Uporabite prehode v novo vrstico samo na izhodu {privzeto je CR/LF})]"},
+  { "optionESCAPE", "   [-ESCAPE (Znaki za izogib {privzeto je <>&\"\'\\r\\n}]"},
+  { "optionINDENT", "   [-INDENT (Koliko presledkov zamika {privzeto je 0})]"},
+  { "optionTT", "   [-TT (Sledite predlogam glede na njihov poziv.)]"},
+  { "optionTG", "   [-TG (Sledite vsakemu dogodku rodu.)]"},
+  { "optionTS", "   [-TS (Sledite vsakemu dogodku izbire.)]"},
+  {  "optionTTC", "   [-TTC (Sledite podrejenim predloge kot se obdelujejo.)]"},
+  { "optionTCLASS", "   [-TCLASS (Razred TraceListener za kon\u010dnice sledi.)]"},
+  { "optionVALIDATE", "   [-VALIDATE (Nastavi v primeru preverjanja veljavnosti.  Privzeta vrednost za preverjanje veljavnosti je izklopljeno.)]"},
+  { "optionEDUMP", "   [-EDUMP {izbirno ime datoteke} (V primeru napake naredi izvoz skladov.)]"},
+  {  "optionXML", "   [-XML (Uporabite oblikovalnik XML in dodajte glavo XML.)]"},
+  {  "optionTEXT", "   [-TEXT (Uporabite preprost oblikovalnik besedila.)]"},
+  {  "optionHTML", "   [-HTML (Uporabite oblikovalnik za HTML.)]"},
+  {  "optionPARAM", "   [-PARAM izraz imena (nastavite parameter slogovne datoteke)]"},
+  {  "noParsermsg1", "Postopek XSL ni uspel."},
+  {  "noParsermsg2", "** Nisem na\u0161el raz\u010dlenjevalnika **"},
+  { "noParsermsg3",  "Preverite pot razreda."},
+  { "noParsermsg4", "\u010ce nimate IBM raz\u010dlenjevalnika za Javo, ga lahko prenesete iz"},
+  { "noParsermsg5", "IBM AlphaWorks: http://www.alphaworks.ibm.com/formula/xml"},
+  { "optionURIRESOLVER", "   [-URIRESOLVER polno ime razreda (URIResolver za razre\u0161evanje URL-jev)]"},
+  { "optionENTITYRESOLVER",  "   [-ENTITYRESOLVER polno ime razreda (EntityResolver za razre\u0161evanje entitet)]"},
+  { "optionCONTENTHANDLER",  "   [-CONTENTHANDLER polno ime razreda (ContentHandler za serializacijo izhoda)]"},
+  {  "optionLINENUMBERS",  "   [-L za izvorni dokument uporabite \u0161tevilke vrstic]"},
+  { "optionSECUREPROCESSING", "   [-SECURE (nastavite funkcijo varne obdelave na True.)]"},
+
+    // Following are the new options added in XSLTErrorResources.properties files after Jdk 1.4 (Xalan 2.2-D11)
+
+
+  {  "optionMEDIA",  "   [-MEDIA TipMedija (z atributom medija poi\u0161\u010dite slogovno datoteko, ki se nana\u0161a na dokument.)]"},
+  {  "optionFLAVOR",  "   [-FLAVOR ImePosebnosti (Za preoblikovanje izrecno uporabljajte s2s=SAX ali d2d=DOM.)] "}, // Added by sboag/scurcuru; experimental
+  { "optionDIAG", "   [-DIAG (Natisnite skupni \u010das trajanja pretvorbe v milisekundah.)]"},
+  { "optionINCREMENTAL",  "   [-INCREMENTAL (zahtevajte gradnjo prirastnega DTM tako, da nastavite http://xml.apache.org/xalan/features/incremental na resni\u010dno.)]"},
+  {  "optionNOOPTIMIMIZE",  "   [-NOOPTIMIMIZE (prepre\u010dite obdelavo optimiziranja slogovne datoteke, tako da nastavite http://xml.apache.org/xalan/features/optimize na false.)]"},
+  { "optionRL",  "   [-RL mejaRekurzije (zahtevajte numeri\u010dno mejo globine rekurzije slogovne datoteke.)]"},
+  {   "optionXO",  "   [-XO [imeTransleta] (dodelite ime ustvarjenemu transletu)]"},
+  {  "optionXD", "   [-XD ciljnaMapa (navedite ciljno mapo za translet)]"},
+  {  "optionXJ",  "   [-XJ datotekaJar (zdru\u017ei razrede transleta v datoteko jar z imenom <jarfile>)]"},
+  {   "optionXP",  "   [-XP paket (navede predpono imena paketa vsem ustvarjenim razredom transletov)]"},
+
+  //AddITIONAL  STRINGS that need L10n
+  // Note to translators:  The following message describes usage of a particular
+  // command-line option that is used to enable the "template inlining"
+  // optimization.  The optimization involves making a copy of the code
+  // generated for a template in another template that refers to it.
+  { "optionXN",  "   [-XN (omogo\u010da vstavljanje predlog)]" },
+  { "optionXX",  "   [-XX (vklopi izhod za dodatna sporo\u010dila za iskanje napak)]"},
+  { "optionXT" , "   [-XT (\u010de je mogo\u010de, uporabite translet za pretvorbo)]"},
+  { "diagTiming"," --------- Pretvorba {0} prek {1} je trajala {2} ms" },
+  { "recursionTooDeep","Predloga pregloboko vgnezdena. Gnezdenje = {0}, predloga {1} {2}" },
+  { "nameIs", "ime je" },
+  { "matchPatternIs", "primerjalni vzorec je" }
+
+  };
+  }
+  // ================= INFRASTRUCTURE ======================
+
+  /** String for use when a bad error code was encountered.    */
+  public static final String BAD_CODE = "BAD_CODE";
+
+  /** String for use when formatting of the error string failed.   */
+  public static final String FORMAT_FAILED = "FORMAT_FAILED";
+
+  /** General error string.   */
+  public static final String ERROR_STRING = "#error";
+
+  /** String to prepend to error messages.  */
+  public static final String ERROR_HEADER = "Napaka: ";
+
+  /** String to prepend to warning messages.    */
+  public static final String WARNING_HEADER = "Opozorilo: ";
+
+  /** String to specify the XSLT module.  */
+  public static final String XSL_HEADER = "XSLT ";
+
+  /** String to specify the XML parser module.  */
+  public static final String XML_HEADER = "XML ";
+
+  /** I don't think this is used any more.
+   * @deprecated  */
+  public static final String QUERY_HEADER = "VZOREC ";
+
+
+  /**
+   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior
+   *   of ResourceBundle.getBundle().
+   *
+   *   @param className the name of the class that implements the resource bundle.
+   *   @return the ResourceBundle
+   *   @throws MissingResourceException
+   */
+  public static final XSLTErrorResources loadResourceBundle(String className)
+          throws MissingResourceException
+  {
+
+    Locale locale = Locale.getDefault();
+    String suffix = getResourceSuffix(locale);
+
+    try
+    {
+
+      // first try with the given locale
+      return (XSLTErrorResources) ResourceBundle.getBundle(className
+              + suffix, locale);
+    }
+    catch (MissingResourceException e)
+    {
+      try  // try to fall back to en_US if we can't load
+      {
+
+        // Since we can't find the localized property file,
+        // fall back to en_US.
+        return (XSLTErrorResources) ResourceBundle.getBundle(className,
+                new Locale("sl", "US"));
+      }
+      catch (MissingResourceException e2)
+      {
+
+        // Now we are really in trouble.
+        // very bad, definitely very bad...not going to get very far
+        throw new MissingResourceException(
+          "Could not load any resource bundles.", className, "");
+      }
+    }
+  }
+
+  /**
+   * Return the resource file suffic for the indicated locale
+   * For most locales, this will be based the language code.  However
+   * for Chinese, we do distinguish between Taiwan and PRC
+   *
+   * @param locale the locale
+   * @return an String suffix which canbe appended to a resource name
+   */
+  private static final String getResourceSuffix(Locale locale)
+  {
+
+    String suffix = "_" + locale.getLanguage();
+    String country = locale.getCountry();
+
+    if (country.equals("TW"))
+      suffix += "_" + country;
+
+    return suffix;
+  }
+
+
+}
diff --git a/src/org/apache/xalan/res/XSLTErrorResources_zh.java b/src/org/apache/xalan/res/XSLTErrorResources_zh.java
old mode 100755
new mode 100644
index 14cff58..0d2c80b
--- a/src/org/apache/xalan/res/XSLTErrorResources_zh.java
+++ b/src/org/apache/xalan/res/XSLTErrorResources_zh.java
@@ -1,1530 +1,1530 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: XSLTErrorResources_zh.java 338081 2004-12-15 17:35:58Z jycli $

- */

-package org.apache.xalan.res;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * Set up error messages.

- * We build a two dimensional array of message keys and

- * message strings. In order to add a new message here,

- * you need to first add a String constant. And

- *  you need to enter key , value pair as part of contents

- * Array. You also need to update MAX_CODE for error strings

- * and MAX_WARNING for warnings ( Needed for only information

- * purpose )

- */

-public class XSLTErrorResources_zh extends ListResourceBundle

-{

-

-/*

- * This file contains error and warning messages related to Xalan Error

- * Handling.

- *

- *  General notes to translators:

- *

- *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of

- *     components.

- *     XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *     XSLTC is an acronym for XSLT Compiler.

- *

- *  2) A stylesheet is a description of how to transform an input XML document

- *     into a resultant XML document (or HTML document or text).  The

- *     stylesheet itself is described in the form of an XML document.

- *

- *  3) A template is a component of a stylesheet that is used to match a

- *     particular portion of an input document and specifies the form of the

- *     corresponding portion of the output document.

- *

- *  4) An element is a mark-up tag in an XML document; an attribute is a

- *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *     "elem" is an element name, "attr" and "attr2" are attribute names with

- *     the values "val" and "val2", respectively.

- *

- *  5) A namespace declaration is a special attribute that is used to associate

- *     a prefix with a URI (the namespace).  The meanings of element names and

- *     attribute names that use that prefix are defined with respect to that

- *     namespace.

- *

- *  6) "Translet" is an invented term that describes the class file that

- *     results from compiling an XML stylesheet into a Java class.

- *

- *  7) XPath is a specification that describes a notation for identifying

- *     nodes in a tree-structured representation of an XML document.  An

- *     instance of that notation is referred to as an XPath expression.

- *

- */

-

-  /** Maximum error messages, this is needed to keep track of the number of messages.    */

-  public static final int MAX_CODE = 201;

-

-  /** Maximum warnings, this is needed to keep track of the number of warnings.          */

-  public static final int MAX_WARNING = 29;

-

-  /** Maximum misc strings.   */

-  public static final int MAX_OTHERS = 55;

-

-  /** Maximum total warnings and error messages.          */

-  public static final int MAX_MESSAGES = MAX_CODE + MAX_WARNING + 1;

-

-

-  /*

-   * Static variables

-   */

-  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX =

-        "ER_INVALID_SET_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX";

-

-  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT =

-        "ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT";

-

-  public static final String ER_NO_CURLYBRACE = "ER_NO_CURLYBRACE";

-  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";

-  public static final String ER_ILLEGAL_ATTRIBUTE = "ER_ILLEGAL_ATTRIBUTE";

-  public static final String ER_NULL_SOURCENODE_APPLYIMPORTS = "ER_NULL_SOURCENODE_APPLYIMPORTS";

-  public static final String ER_CANNOT_ADD = "ER_CANNOT_ADD";

-  public static final String ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES="ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES";

-  public static final String ER_NO_NAME_ATTRIB = "ER_NO_NAME_ATTRIB";

-  public static final String ER_TEMPLATE_NOT_FOUND = "ER_TEMPLATE_NOT_FOUND";

-  public static final String ER_CANT_RESOLVE_NAME_AVT = "ER_CANT_RESOLVE_NAME_AVT";

-  public static final String ER_REQUIRES_ATTRIB = "ER_REQUIRES_ATTRIB";

-  public static final String ER_MUST_HAVE_TEST_ATTRIB = "ER_MUST_HAVE_TEST_ATTRIB";

-  public static final String ER_BAD_VAL_ON_LEVEL_ATTRIB =

-         "ER_BAD_VAL_ON_LEVEL_ATTRIB";

-  public static final String ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =

-         "ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";

-  public static final String ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =

-         "ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";

-  public static final String ER_NEED_MATCH_ATTRIB = "ER_NEED_MATCH_ATTRIB";

-  public static final String ER_NEED_NAME_OR_MATCH_ATTRIB =

-         "ER_NEED_NAME_OR_MATCH_ATTRIB";

-  public static final String ER_CANT_RESOLVE_NSPREFIX =

-         "ER_CANT_RESOLVE_NSPREFIX";

-  public static final String ER_ILLEGAL_VALUE = "ER_ILLEGAL_VALUE";

-  public static final String ER_NO_OWNERDOC = "ER_NO_OWNERDOC";

-  public static final String ER_ELEMTEMPLATEELEM_ERR ="ER_ELEMTEMPLATEELEM_ERR";

-  public static final String ER_NULL_CHILD = "ER_NULL_CHILD";

-  public static final String ER_NEED_SELECT_ATTRIB = "ER_NEED_SELECT_ATTRIB";

-  public static final String ER_NEED_TEST_ATTRIB = "ER_NEED_TEST_ATTRIB";

-  public static final String ER_NEED_NAME_ATTRIB = "ER_NEED_NAME_ATTRIB";

-  public static final String ER_NO_CONTEXT_OWNERDOC = "ER_NO_CONTEXT_OWNERDOC";

-  public static final String ER_COULD_NOT_CREATE_XML_PROC_LIAISON =

-         "ER_COULD_NOT_CREATE_XML_PROC_LIAISON";

-  public static final String ER_PROCESS_NOT_SUCCESSFUL =

-         "ER_PROCESS_NOT_SUCCESSFUL";

-  public static final String ER_NOT_SUCCESSFUL = "ER_NOT_SUCCESSFUL";

-  public static final String ER_ENCODING_NOT_SUPPORTED =

-         "ER_ENCODING_NOT_SUPPORTED";

-  public static final String ER_COULD_NOT_CREATE_TRACELISTENER =

-         "ER_COULD_NOT_CREATE_TRACELISTENER";

-  public static final String ER_KEY_REQUIRES_NAME_ATTRIB =

-         "ER_KEY_REQUIRES_NAME_ATTRIB";

-  public static final String ER_KEY_REQUIRES_MATCH_ATTRIB =

-         "ER_KEY_REQUIRES_MATCH_ATTRIB";

-  public static final String ER_KEY_REQUIRES_USE_ATTRIB =

-         "ER_KEY_REQUIRES_USE_ATTRIB";

-  public static final String ER_REQUIRES_ELEMENTS_ATTRIB =

-         "ER_REQUIRES_ELEMENTS_ATTRIB";

-  public static final String ER_MISSING_PREFIX_ATTRIB =

-         "ER_MISSING_PREFIX_ATTRIB";

-  public static final String ER_BAD_STYLESHEET_URL = "ER_BAD_STYLESHEET_URL";

-  public static final String ER_FILE_NOT_FOUND = "ER_FILE_NOT_FOUND";

-  public static final String ER_IOEXCEPTION = "ER_IOEXCEPTION";

-  public static final String ER_NO_HREF_ATTRIB = "ER_NO_HREF_ATTRIB";

-  public static final String ER_STYLESHEET_INCLUDES_ITSELF =

-         "ER_STYLESHEET_INCLUDES_ITSELF";

-  public static final String ER_PROCESSINCLUDE_ERROR ="ER_PROCESSINCLUDE_ERROR";

-  public static final String ER_MISSING_LANG_ATTRIB = "ER_MISSING_LANG_ATTRIB";

-  public static final String ER_MISSING_CONTAINER_ELEMENT_COMPONENT =

-         "ER_MISSING_CONTAINER_ELEMENT_COMPONENT";

-  public static final String ER_CAN_ONLY_OUTPUT_TO_ELEMENT =

-         "ER_CAN_ONLY_OUTPUT_TO_ELEMENT";

-  public static final String ER_PROCESS_ERROR = "ER_PROCESS_ERROR";

-  public static final String ER_UNIMPLNODE_ERROR = "ER_UNIMPLNODE_ERROR";

-  public static final String ER_NO_SELECT_EXPRESSION ="ER_NO_SELECT_EXPRESSION";

-  public static final String ER_CANNOT_SERIALIZE_XSLPROCESSOR =

-         "ER_CANNOT_SERIALIZE_XSLPROCESSOR";

-  public static final String ER_NO_INPUT_STYLESHEET = "ER_NO_INPUT_STYLESHEET";

-  public static final String ER_FAILED_PROCESS_STYLESHEET =

-         "ER_FAILED_PROCESS_STYLESHEET";

-  public static final String ER_COULDNT_PARSE_DOC = "ER_COULDNT_PARSE_DOC";

-  public static final String ER_COULDNT_FIND_FRAGMENT =

-         "ER_COULDNT_FIND_FRAGMENT";

-  public static final String ER_NODE_NOT_ELEMENT = "ER_NODE_NOT_ELEMENT";

-  public static final String ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB =

-         "ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB";

-  public static final String ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB =

-         "ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB";

-  public static final String ER_NO_CLONE_OF_DOCUMENT_FRAG =

-         "ER_NO_CLONE_OF_DOCUMENT_FRAG";

-  public static final String ER_CANT_CREATE_ITEM = "ER_CANT_CREATE_ITEM";

-  public static final String ER_XMLSPACE_ILLEGAL_VALUE =

-         "ER_XMLSPACE_ILLEGAL_VALUE";

-  public static final String ER_NO_XSLKEY_DECLARATION =

-         "ER_NO_XSLKEY_DECLARATION";

-  public static final String ER_CANT_CREATE_URL = "ER_CANT_CREATE_URL";

-  public static final String ER_XSLFUNCTIONS_UNSUPPORTED =

-         "ER_XSLFUNCTIONS_UNSUPPORTED";

-  public static final String ER_PROCESSOR_ERROR = "ER_PROCESSOR_ERROR";

-  public static final String ER_NOT_ALLOWED_INSIDE_STYLESHEET =

-         "ER_NOT_ALLOWED_INSIDE_STYLESHEET";

-  public static final String ER_RESULTNS_NOT_SUPPORTED =

-         "ER_RESULTNS_NOT_SUPPORTED";

-  public static final String ER_DEFAULTSPACE_NOT_SUPPORTED =

-         "ER_DEFAULTSPACE_NOT_SUPPORTED";

-  public static final String ER_INDENTRESULT_NOT_SUPPORTED =

-         "ER_INDENTRESULT_NOT_SUPPORTED";

-  public static final String ER_ILLEGAL_ATTRIB = "ER_ILLEGAL_ATTRIB";

-  public static final String ER_UNKNOWN_XSL_ELEM = "ER_UNKNOWN_XSL_ELEM";

-  public static final String ER_BAD_XSLSORT_USE = "ER_BAD_XSLSORT_USE";

-  public static final String ER_MISPLACED_XSLWHEN = "ER_MISPLACED_XSLWHEN";

-  public static final String ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE =

-         "ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE";

-  public static final String ER_MISPLACED_XSLOTHERWISE =

-         "ER_MISPLACED_XSLOTHERWISE";

-  public static final String ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE =

-         "ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE";

-  public static final String ER_NOT_ALLOWED_INSIDE_TEMPLATE =

-         "ER_NOT_ALLOWED_INSIDE_TEMPLATE";

-  public static final String ER_UNKNOWN_EXT_NS_PREFIX =

-         "ER_UNKNOWN_EXT_NS_PREFIX";

-  public static final String ER_IMPORTS_AS_FIRST_ELEM =

-         "ER_IMPORTS_AS_FIRST_ELEM";

-  public static final String ER_IMPORTING_ITSELF = "ER_IMPORTING_ITSELF";

-  public static final String ER_XMLSPACE_ILLEGAL_VAL ="ER_XMLSPACE_ILLEGAL_VAL";

-  public static final String ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL =

-         "ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL";

-  public static final String ER_SAX_EXCEPTION = "ER_SAX_EXCEPTION";

-  public static final String ER_XSLT_ERROR = "ER_XSLT_ERROR";

-  public static final String ER_CURRENCY_SIGN_ILLEGAL=

-         "ER_CURRENCY_SIGN_ILLEGAL";

-  public static final String ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM =

-         "ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM";

-  public static final String ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER =

-         "ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER";

-  public static final String ER_REDIRECT_COULDNT_GET_FILENAME =

-         "ER_REDIRECT_COULDNT_GET_FILENAME";

-  public static final String ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT =

-         "ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT";

-  public static final String ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX =

-         "ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX";

-  public static final String ER_MISSING_NS_URI = "ER_MISSING_NS_URI";

-  public static final String ER_MISSING_ARG_FOR_OPTION =

-         "ER_MISSING_ARG_FOR_OPTION";

-  public static final String ER_INVALID_OPTION = "ER_INVALID_OPTION";

-  public static final String ER_MALFORMED_FORMAT_STRING =

-         "ER_MALFORMED_FORMAT_STRING";

-  public static final String ER_STYLESHEET_REQUIRES_VERSION_ATTRIB =

-         "ER_STYLESHEET_REQUIRES_VERSION_ATTRIB";

-  public static final String ER_ILLEGAL_ATTRIBUTE_VALUE =

-         "ER_ILLEGAL_ATTRIBUTE_VALUE";

-  public static final String ER_CHOOSE_REQUIRES_WHEN ="ER_CHOOSE_REQUIRES_WHEN";

-  public static final String ER_NO_APPLY_IMPORT_IN_FOR_EACH =

-         "ER_NO_APPLY_IMPORT_IN_FOR_EACH";

-  public static final String ER_CANT_USE_DTM_FOR_OUTPUT =

-         "ER_CANT_USE_DTM_FOR_OUTPUT";

-  public static final String ER_CANT_USE_DTM_FOR_INPUT =

-         "ER_CANT_USE_DTM_FOR_INPUT";

-  public static final String ER_CALL_TO_EXT_FAILED = "ER_CALL_TO_EXT_FAILED";

-  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";

-  public static final String ER_INVALID_UTF16_SURROGATE =

-         "ER_INVALID_UTF16_SURROGATE";

-  public static final String ER_XSLATTRSET_USED_ITSELF =

-         "ER_XSLATTRSET_USED_ITSELF";

-  public static final String ER_CANNOT_MIX_XERCESDOM ="ER_CANNOT_MIX_XERCESDOM";

-  public static final String ER_TOO_MANY_LISTENERS = "ER_TOO_MANY_LISTENERS";

-  public static final String ER_IN_ELEMTEMPLATEELEM_READOBJECT =

-         "ER_IN_ELEMTEMPLATEELEM_READOBJECT";

-  public static final String ER_DUPLICATE_NAMED_TEMPLATE =

-         "ER_DUPLICATE_NAMED_TEMPLATE";

-  public static final String ER_INVALID_KEY_CALL = "ER_INVALID_KEY_CALL";

-  public static final String ER_REFERENCING_ITSELF = "ER_REFERENCING_ITSELF";

-  public static final String ER_ILLEGAL_DOMSOURCE_INPUT =

-         "ER_ILLEGAL_DOMSOURCE_INPUT";

-  public static final String ER_CLASS_NOT_FOUND_FOR_OPTION =

-         "ER_CLASS_NOT_FOUND_FOR_OPTION";

-  public static final String ER_REQUIRED_ELEM_NOT_FOUND =

-         "ER_REQUIRED_ELEM_NOT_FOUND";

-  public static final String ER_INPUT_CANNOT_BE_NULL ="ER_INPUT_CANNOT_BE_NULL";

-  public static final String ER_URI_CANNOT_BE_NULL = "ER_URI_CANNOT_BE_NULL";

-  public static final String ER_FILE_CANNOT_BE_NULL = "ER_FILE_CANNOT_BE_NULL";

-  public static final String ER_SOURCE_CANNOT_BE_NULL =

-         "ER_SOURCE_CANNOT_BE_NULL";

-  public static final String ER_CANNOT_INIT_BSFMGR = "ER_CANNOT_INIT_BSFMGR";

-  public static final String ER_CANNOT_CMPL_EXTENSN = "ER_CANNOT_CMPL_EXTENSN";

-  public static final String ER_CANNOT_CREATE_EXTENSN =

-         "ER_CANNOT_CREATE_EXTENSN";

-  public static final String ER_INSTANCE_MTHD_CALL_REQUIRES =

-         "ER_INSTANCE_MTHD_CALL_REQUIRES";

-  public static final String ER_INVALID_ELEMENT_NAME ="ER_INVALID_ELEMENT_NAME";

-  public static final String ER_ELEMENT_NAME_METHOD_STATIC =

-         "ER_ELEMENT_NAME_METHOD_STATIC";

-  public static final String ER_EXTENSION_FUNC_UNKNOWN =

-         "ER_EXTENSION_FUNC_UNKNOWN";

-  public static final String ER_MORE_MATCH_CONSTRUCTOR =

-         "ER_MORE_MATCH_CONSTRUCTOR";

-  public static final String ER_MORE_MATCH_METHOD = "ER_MORE_MATCH_METHOD";

-  public static final String ER_MORE_MATCH_ELEMENT = "ER_MORE_MATCH_ELEMENT";

-  public static final String ER_INVALID_CONTEXT_PASSED =

-         "ER_INVALID_CONTEXT_PASSED";

-  public static final String ER_POOL_EXISTS = "ER_POOL_EXISTS";

-  public static final String ER_NO_DRIVER_NAME = "ER_NO_DRIVER_NAME";

-  public static final String ER_NO_URL = "ER_NO_URL";

-  public static final String ER_POOL_SIZE_LESSTHAN_ONE =

-         "ER_POOL_SIZE_LESSTHAN_ONE";

-  public static final String ER_INVALID_DRIVER = "ER_INVALID_DRIVER";

-  public static final String ER_NO_STYLESHEETROOT = "ER_NO_STYLESHEETROOT";

-  public static final String ER_ILLEGAL_XMLSPACE_VALUE =

-         "ER_ILLEGAL_XMLSPACE_VALUE";

-  public static final String ER_PROCESSFROMNODE_FAILED =

-         "ER_PROCESSFROMNODE_FAILED";

-  public static final String ER_RESOURCE_COULD_NOT_LOAD =

-         "ER_RESOURCE_COULD_NOT_LOAD";

-  public static final String ER_BUFFER_SIZE_LESSTHAN_ZERO =

-         "ER_BUFFER_SIZE_LESSTHAN_ZERO";

-  public static final String ER_UNKNOWN_ERROR_CALLING_EXTENSION =

-         "ER_UNKNOWN_ERROR_CALLING_EXTENSION";

-  public static final String ER_NO_NAMESPACE_DECL = "ER_NO_NAMESPACE_DECL";

-  public static final String ER_ELEM_CONTENT_NOT_ALLOWED =

-         "ER_ELEM_CONTENT_NOT_ALLOWED";

-  public static final String ER_STYLESHEET_DIRECTED_TERMINATION =

-         "ER_STYLESHEET_DIRECTED_TERMINATION";

-  public static final String ER_ONE_OR_TWO = "ER_ONE_OR_TWO";

-  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";

-  public static final String ER_COULD_NOT_LOAD_RESOURCE =

-         "ER_COULD_NOT_LOAD_RESOURCE";

-  public static final String ER_CANNOT_INIT_DEFAULT_TEMPLATES =

-         "ER_CANNOT_INIT_DEFAULT_TEMPLATES";

-  public static final String ER_RESULT_NULL = "ER_RESULT_NULL";

-  public static final String ER_RESULT_COULD_NOT_BE_SET =

-         "ER_RESULT_COULD_NOT_BE_SET";

-  public static final String ER_NO_OUTPUT_SPECIFIED = "ER_NO_OUTPUT_SPECIFIED";

-  public static final String ER_CANNOT_TRANSFORM_TO_RESULT_TYPE =

-         "ER_CANNOT_TRANSFORM_TO_RESULT_TYPE";

-  public static final String ER_CANNOT_TRANSFORM_SOURCE_TYPE =

-         "ER_CANNOT_TRANSFORM_SOURCE_TYPE";

-  public static final String ER_NULL_CONTENT_HANDLER ="ER_NULL_CONTENT_HANDLER";

-  public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";

-  public static final String ER_CANNOT_CALL_PARSE = "ER_CANNOT_CALL_PARSE";

-  public static final String ER_NO_PARENT_FOR_FILTER ="ER_NO_PARENT_FOR_FILTER";

-  public static final String ER_NO_STYLESHEET_IN_MEDIA =

-         "ER_NO_STYLESHEET_IN_MEDIA";

-  public static final String ER_NO_STYLESHEET_PI = "ER_NO_STYLESHEET_PI";

-  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";

-  public static final String ER_PROPERTY_VALUE_BOOLEAN =

-         "ER_PROPERTY_VALUE_BOOLEAN";

-  public static final String ER_COULD_NOT_FIND_EXTERN_SCRIPT =

-         "ER_COULD_NOT_FIND_EXTERN_SCRIPT";

-  public static final String ER_RESOURCE_COULD_NOT_FIND =

-         "ER_RESOURCE_COULD_NOT_FIND";

-  public static final String ER_OUTPUT_PROPERTY_NOT_RECOGNIZED =

-         "ER_OUTPUT_PROPERTY_NOT_RECOGNIZED";

-  public static final String ER_FAILED_CREATING_ELEMLITRSLT =

-         "ER_FAILED_CREATING_ELEMLITRSLT";

-  public static final String ER_VALUE_SHOULD_BE_NUMBER =

-         "ER_VALUE_SHOULD_BE_NUMBER";

-  public static final String ER_VALUE_SHOULD_EQUAL = "ER_VALUE_SHOULD_EQUAL";

-  public static final String ER_FAILED_CALLING_METHOD =

-         "ER_FAILED_CALLING_METHOD";

-  public static final String ER_FAILED_CREATING_ELEMTMPL =

-         "ER_FAILED_CREATING_ELEMTMPL";

-  public static final String ER_CHARS_NOT_ALLOWED = "ER_CHARS_NOT_ALLOWED";

-  public static final String ER_ATTR_NOT_ALLOWED = "ER_ATTR_NOT_ALLOWED";

-  public static final String ER_BAD_VALUE = "ER_BAD_VALUE";

-  public static final String ER_ATTRIB_VALUE_NOT_FOUND =

-         "ER_ATTRIB_VALUE_NOT_FOUND";

-  public static final String ER_ATTRIB_VALUE_NOT_RECOGNIZED =

-         "ER_ATTRIB_VALUE_NOT_RECOGNIZED";

-  public static final String ER_NULL_URI_NAMESPACE = "ER_NULL_URI_NAMESPACE";

-  public static final String ER_NUMBER_TOO_BIG = "ER_NUMBER_TOO_BIG";

-  public static final String  ER_CANNOT_FIND_SAX1_DRIVER =

-         "ER_CANNOT_FIND_SAX1_DRIVER";

-  public static final String  ER_SAX1_DRIVER_NOT_LOADED =

-         "ER_SAX1_DRIVER_NOT_LOADED";

-  public static final String  ER_SAX1_DRIVER_NOT_INSTANTIATED =

-         "ER_SAX1_DRIVER_NOT_INSTANTIATED" ;

-  public static final String ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER =

-         "ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER";

-  public static final String  ER_PARSER_PROPERTY_NOT_SPECIFIED =

-         "ER_PARSER_PROPERTY_NOT_SPECIFIED";

-  public static final String  ER_PARSER_ARG_CANNOT_BE_NULL =

-         "ER_PARSER_ARG_CANNOT_BE_NULL" ;

-  public static final String  ER_FEATURE = "ER_FEATURE";

-  public static final String ER_PROPERTY = "ER_PROPERTY" ;

-  public static final String ER_NULL_ENTITY_RESOLVER ="ER_NULL_ENTITY_RESOLVER";

-  public static final String  ER_NULL_DTD_HANDLER = "ER_NULL_DTD_HANDLER" ;

-  public static final String ER_NO_DRIVER_NAME_SPECIFIED =

-         "ER_NO_DRIVER_NAME_SPECIFIED";

-  public static final String ER_NO_URL_SPECIFIED = "ER_NO_URL_SPECIFIED";

-  public static final String ER_POOLSIZE_LESS_THAN_ONE =

-         "ER_POOLSIZE_LESS_THAN_ONE";

-  public static final String ER_INVALID_DRIVER_NAME = "ER_INVALID_DRIVER_NAME";

-  public static final String ER_ERRORLISTENER = "ER_ERRORLISTENER";

-  public static final String ER_ASSERT_NO_TEMPLATE_PARENT =

-         "ER_ASSERT_NO_TEMPLATE_PARENT";

-  public static final String ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR =

-         "ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR";

-  public static final String ER_NOT_ALLOWED_IN_POSITION =

-         "ER_NOT_ALLOWED_IN_POSITION";

-  public static final String ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION =

-         "ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION";

-  public static final String ER_NAMESPACE_CONTEXT_NULL_NAMESPACE =

-         "ER_NAMESPACE_CONTEXT_NULL_NAMESPACE";

-  public static final String ER_NAMESPACE_CONTEXT_NULL_PREFIX =

-         "ER_NAMESPACE_CONTEXT_NULL_PREFIX";

-  public static final String ER_XPATH_RESOLVER_NULL_QNAME =

-         "ER_XPATH_RESOLVER_NULL_QNAME";

-  public static final String ER_XPATH_RESOLVER_NEGATIVE_ARITY =

-         "ER_XPATH_RESOLVER_NEGATIVE_ARITY";

-  public static final String INVALID_TCHAR = "INVALID_TCHAR";

-  public static final String INVALID_QNAME = "INVALID_QNAME";

-  public static final String INVALID_ENUM = "INVALID_ENUM";

-  public static final String INVALID_NMTOKEN = "INVALID_NMTOKEN";

-  public static final String INVALID_NCNAME = "INVALID_NCNAME";

-  public static final String INVALID_BOOLEAN = "INVALID_BOOLEAN";

-  public static final String INVALID_NUMBER = "INVALID_NUMBER";

-  public static final String ER_ARG_LITERAL = "ER_ARG_LITERAL";

-  public static final String ER_DUPLICATE_GLOBAL_VAR ="ER_DUPLICATE_GLOBAL_VAR";

-  public static final String ER_DUPLICATE_VAR = "ER_DUPLICATE_VAR";

-  public static final String ER_TEMPLATE_NAME_MATCH = "ER_TEMPLATE_NAME_MATCH";

-  public static final String ER_INVALID_PREFIX = "ER_INVALID_PREFIX";

-  public static final String ER_NO_ATTRIB_SET = "ER_NO_ATTRIB_SET";

-  public static final String ER_FUNCTION_NOT_FOUND =

-         "ER_FUNCTION_NOT_FOUND";

-  public static final String ER_CANT_HAVE_CONTENT_AND_SELECT =

-     "ER_CANT_HAVE_CONTENT_AND_SELECT";

-  public static final String ER_INVALID_SET_PARAM_VALUE = "ER_INVALID_SET_PARAM_VALUE";

-  public static final String ER_SET_FEATURE_NULL_NAME =

-        "ER_SET_FEATURE_NULL_NAME";

-  public static final String ER_GET_FEATURE_NULL_NAME =

-        "ER_GET_FEATURE_NULL_NAME";

-  public static final String ER_UNSUPPORTED_FEATURE =

-        "ER_UNSUPPORTED_FEATURE";

-  public static final String ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING =

-        "ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING";

-

-  public static final String WG_FOUND_CURLYBRACE = "WG_FOUND_CURLYBRACE";

-  public static final String WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR =

-         "WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR";

-  public static final String WG_EXPR_ATTRIB_CHANGED_TO_SELECT =

-         "WG_EXPR_ATTRIB_CHANGED_TO_SELECT";

-  public static final String WG_NO_LOCALE_IN_FORMATNUMBER =

-         "WG_NO_LOCALE_IN_FORMATNUMBER";

-  public static final String WG_LOCALE_NOT_FOUND = "WG_LOCALE_NOT_FOUND";

-  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";

-  public static final String WG_CANNOT_LOAD_REQUESTED_DOC =

-         "WG_CANNOT_LOAD_REQUESTED_DOC";

-  public static final String WG_CANNOT_FIND_COLLATOR ="WG_CANNOT_FIND_COLLATOR";

-  public static final String WG_FUNCTIONS_SHOULD_USE_URL =

-         "WG_FUNCTIONS_SHOULD_USE_URL";

-  public static final String WG_ENCODING_NOT_SUPPORTED_USING_UTF8 =

-         "WG_ENCODING_NOT_SUPPORTED_USING_UTF8";

-  public static final String WG_ENCODING_NOT_SUPPORTED_USING_JAVA =

-         "WG_ENCODING_NOT_SUPPORTED_USING_JAVA";

-  public static final String WG_SPECIFICITY_CONFLICTS =

-         "WG_SPECIFICITY_CONFLICTS";

-  public static final String WG_PARSING_AND_PREPARING =

-         "WG_PARSING_AND_PREPARING";

-  public static final String WG_ATTR_TEMPLATE = "WG_ATTR_TEMPLATE";

-  public static final String WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE = "WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESP";

-  public static final String WG_ATTRIB_NOT_HANDLED = "WG_ATTRIB_NOT_HANDLED";

-  public static final String WG_NO_DECIMALFORMAT_DECLARATION =

-         "WG_NO_DECIMALFORMAT_DECLARATION";

-  public static final String WG_OLD_XSLT_NS = "WG_OLD_XSLT_NS";

-  public static final String WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED =

-         "WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED";

-  public static final String WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE =

-         "WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE";

-  public static final String WG_ILLEGAL_ATTRIBUTE = "WG_ILLEGAL_ATTRIBUTE";

-  public static final String WG_COULD_NOT_RESOLVE_PREFIX =

-         "WG_COULD_NOT_RESOLVE_PREFIX";

-  public static final String WG_STYLESHEET_REQUIRES_VERSION_ATTRIB =

-         "WG_STYLESHEET_REQUIRES_VERSION_ATTRIB";

-  public static final String WG_ILLEGAL_ATTRIBUTE_NAME =

-         "WG_ILLEGAL_ATTRIBUTE_NAME";

-  public static final String WG_ILLEGAL_ATTRIBUTE_VALUE =

-         "WG_ILLEGAL_ATTRIBUTE_VALUE";

-  public static final String WG_EMPTY_SECOND_ARG = "WG_EMPTY_SECOND_ARG";

-  public static final String WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =

-         "WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";

-  public static final String WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =

-         "WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";

-  public static final String WG_ILLEGAL_ATTRIBUTE_POSITION =

-         "WG_ILLEGAL_ATTRIBUTE_POSITION";

-  public static final String NO_MODIFICATION_ALLOWED_ERR =

-         "NO_MODIFICATION_ALLOWED_ERR";

-

-  /*

-   * Now fill in the message text.

-   * Then fill in the message text for that message code in the

-   * array. Use the new error code as the index into the array.

-   */

-

-  // Error messages...

-

-  /** Get the lookup table for error messages.

-   *

-   * @return The message lookup table.

-   */

-  public Object[][] getContents()

-  {

-    return new Object[][] {

-

-  /** Error message ID that has a null message, but takes in a single object.    */

-  {"ER0000" , "{0}" },

-

-

-    { ER_NO_CURLYBRACE,

-      "\u9519\u8bef\uff1a\u8868\u8fbe\u5f0f\u4e2d\u4e0d\u80fd\u6709\u201c{\u201d"},

-

-    { ER_ILLEGAL_ATTRIBUTE ,

-     "{0} \u6709\u4e00\u4e2a\u975e\u6cd5\u5c5e\u6027\uff1a{1}"},

-

-  {ER_NULL_SOURCENODE_APPLYIMPORTS ,

-      "sourceNode \u5728 xsl:apply-imports \u4e2d\u4e3a\u7a7a\uff01"},

-

-  {ER_CANNOT_ADD,

-      "\u65e0\u6cd5\u5c06\u201c{0}\u201d\u6dfb\u52a0\u5230\u201c{1}\u201d"},

-

-    { ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES,

-      "sourceNode \u5728 handleApplyTemplatesInstruction \u4e2d\u4e3a\u7a7a\uff01"},

-

-    { ER_NO_NAME_ATTRIB,

-     "\u201c{0}\u201d\u5fc5\u987b\u6709 name \u5c5e\u6027\u3002"},

-

-    {ER_TEMPLATE_NOT_FOUND,

-     "\u627e\u4e0d\u5230\u4ee5\u4e0b\u540d\u79f0\u7684\u6a21\u677f\uff1a{0}"},

-

-    {ER_CANT_RESOLVE_NAME_AVT,

-      "\u65e0\u6cd5\u89e3\u6790 xsl:call-template \u4e2d\u7684\u540d\u79f0 AVT\u3002"},

-

-    {ER_REQUIRES_ATTRIB,

-     "\u201c{0}\u201d\u9700\u8981\u5c5e\u6027\uff1a{1}"},

-

-    { ER_MUST_HAVE_TEST_ATTRIB,

-      "\u201c{0}\u201d\u5fc5\u987b\u6709\u201ctest\u201d\u5c5e\u6027\u3002"},

-

-    {ER_BAD_VAL_ON_LEVEL_ATTRIB,

-      "\u7ea7\u522b\u5c5e\u6027\u4e0a\u51fa\u73b0\u9519\u8bef\u503c\uff1a{0}"},

-

-    {ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,

-      "processing-instruction \u540d\u79f0\u4e0d\u80fd\u662f\u201cxml\u201d"},

-

-    { ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,

-      "processing-instruction \u540d\u79f0\u5fc5\u987b\u662f\u6709\u6548\u7684 NCName\uff1a{0}"},

-

-    { ER_NEED_MATCH_ATTRIB,

-      "\u201c{0}\u201d\u5982\u679c\u6709\u67d0\u79cd\u65b9\u5f0f\uff0c\u5c31\u5fc5\u987b\u6709 match \u5c5e\u6027\u3002"},

-

-    { ER_NEED_NAME_OR_MATCH_ATTRIB,

-      "\u201c{0}\u201d\u9700\u8981 name \u5c5e\u6027\u6216 match \u5c5e\u6027\u3002"},

-

-    {ER_CANT_RESOLVE_NSPREFIX,

-      "\u65e0\u6cd5\u89e3\u6790\u540d\u79f0\u7a7a\u95f4\u524d\u7f00\uff1a{0}"},

-

-    { ER_ILLEGAL_VALUE,

-     "xml:space \u6709\u975e\u6cd5\u7684\u503c\uff1a{0}"},

-

-    { ER_NO_OWNERDOC,

-      "\u5b50\u8282\u70b9\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},

-

-    { ER_ELEMTEMPLATEELEM_ERR,

-     "ElemTemplateElement \u9519\u8bef\uff1a{0}"},

-

-    { ER_NULL_CHILD,

-     "\u6b63\u5728\u5c1d\u8bd5\u6dfb\u52a0\u7a7a\u7684\u5b50\u4ee3\uff01"},

-

-    { ER_NEED_SELECT_ATTRIB,

-     "{0} \u9700\u8981 select \u5c5e\u6027\u3002"},

-

-    { ER_NEED_TEST_ATTRIB ,

-      "xsl:when \u5fc5\u987b\u6709\u201ctest\u201d\u5c5e\u6027\u3002"},

-

-    { ER_NEED_NAME_ATTRIB,

-      "xsl:with-param \u5fc5\u987b\u6709\u201cname\u201d\u5c5e\u6027\u3002"},

-

-    { ER_NO_CONTEXT_OWNERDOC,

-      "\u4e0a\u4e0b\u6587\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},

-

-    {ER_COULD_NOT_CREATE_XML_PROC_LIAISON,

-      "\u65e0\u6cd5\u521b\u5efa XML TransformerFactory \u8054\u7cfb\uff1a{0}"},

-

-    {ER_PROCESS_NOT_SUCCESSFUL,

-      "Xalan: Process \u4e0d\u6210\u529f\u3002"},

-

-    { ER_NOT_SUCCESSFUL,

-     "Xalan: \u4e0d\u6210\u529f\u3002"},

-

-    { ER_ENCODING_NOT_SUPPORTED,

-     "\u4e0d\u652f\u6301\u7f16\u7801\uff1a{0}"},

-

-    {ER_COULD_NOT_CREATE_TRACELISTENER,

-      "\u65e0\u6cd5\u521b\u5efa TraceListener\uff1a{0}"},

-

-    {ER_KEY_REQUIRES_NAME_ATTRIB,

-      "xsl:key \u9700\u8981\u201cname\u201d\u5c5e\u6027\uff01"},

-

-    { ER_KEY_REQUIRES_MATCH_ATTRIB,

-      "xsl:key \u9700\u8981\u201cmatch\u201d\u5c5e\u6027\uff01"},

-

-    { ER_KEY_REQUIRES_USE_ATTRIB,

-      "xsl:key \u9700\u8981\u201cuse\u201d\u5c5e\u6027\uff01"},

-

-    { ER_REQUIRES_ELEMENTS_ATTRIB,

-      "(StylesheetHandler) {0} \u9700\u8981\u201celements\u201d\u5c5e\u6027\uff01"},

-

-    { ER_MISSING_PREFIX_ATTRIB,

-      "(StylesheetHandler) {0} \u5c5e\u6027\u201cprefix\u201d\u4e22\u5931"},

-

-    { ER_BAD_STYLESHEET_URL,

-     "\u6837\u5f0f\u8868 URL \u9519\u8bef\uff1a{0}"},

-

-    { ER_FILE_NOT_FOUND,

-     "\u627e\u4e0d\u5230\u6837\u5f0f\u8868\u6587\u4ef6\uff1a{0}"},

-

-    { ER_IOEXCEPTION,

-      "\u6837\u5f0f\u8868\u6587\u4ef6\u53d1\u751f IO \u5f02\u5e38\uff1a{0}"},

-

-    { ER_NO_HREF_ATTRIB,

-      "\uff08StylesheetHandler\uff09\u65e0\u6cd5\u4e3a {0} \u627e\u5230 href \u5c5e\u6027"},

-

-    { ER_STYLESHEET_INCLUDES_ITSELF,

-      "\uff08StylesheetHandler\uff09{0} \u6b63\u5728\u76f4\u63a5\u6216\u95f4\u63a5\u5730\u5305\u542b\u5b83\u81ea\u8eab\uff01"},

-

-    { ER_PROCESSINCLUDE_ERROR,

-      "StylesheetHandler.processInclude \u9519\u8bef\uff0c{0}"},

-

-    { ER_MISSING_LANG_ATTRIB,

-      "(StylesheetHandler) {0} \u5c5e\u6027\u201clang\u201d\u4e22\u5931"},

-

-    { ER_MISSING_CONTAINER_ELEMENT_COMPONENT,

-      "\uff08StylesheetHandler\uff09\u662f\u5426\u9519\u653e\u4e86 {0} \u5143\u7d20\uff1f\uff1f\u7f3a\u5c11\u5bb9\u5668\u5143\u7d20\u201ccomponent\u201d"},

-

-    { ER_CAN_ONLY_OUTPUT_TO_ELEMENT,

-      "\u53ea\u80fd\u8f93\u51fa\u5230 Element\u3001DocumentFragment\u3001Document \u6216 PrintWriter\u3002"},

-

-    { ER_PROCESS_ERROR,

-     "StylesheetRoot.process \u9519\u8bef"},

-

-    { ER_UNIMPLNODE_ERROR,

-     "UnImplNode \u9519\u8bef\uff1a{0}"},

-

-    { ER_NO_SELECT_EXPRESSION,

-      "\u9519\u8bef\uff01\u627e\u4e0d\u5230 xpath \u9009\u62e9\u8868\u8fbe\u5f0f\uff08-select\uff09\u3002"},

-

-    { ER_CANNOT_SERIALIZE_XSLPROCESSOR,

-      "\u65e0\u6cd5\u5e8f\u5217\u5316 XSLProcessor\uff01"},

-

-    { ER_NO_INPUT_STYLESHEET,

-      "\u6ca1\u6709\u6307\u5b9a\u6837\u5f0f\u8868\u8f93\u5165\uff01"},

-

-    { ER_FAILED_PROCESS_STYLESHEET,

-      "\u65e0\u6cd5\u5904\u7406\u6837\u5f0f\u8868\uff01"},

-

-    { ER_COULDNT_PARSE_DOC,

-     "\u65e0\u6cd5\u89e3\u6790 {0} \u6587\u6863\uff01"},

-

-    { ER_COULDNT_FIND_FRAGMENT,

-     "\u627e\u4e0d\u5230\u7247\u6bb5\uff1a{0}"},

-

-    { ER_NODE_NOT_ELEMENT,

-      "\u7247\u6bb5\u6807\u8bc6\u6307\u5411\u7684\u8282\u70b9\u4e0d\u662f\u5143\u7d20\uff1a{0}"},

-

-    { ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB,

-      "for-each \u5fc5\u987b\u6709 match \u6216 name \u5c5e\u6027"},

-

-    { ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB,

-      "templates \u5fc5\u987b\u6709 match \u6216 name \u5c5e\u6027"},

-

-    { ER_NO_CLONE_OF_DOCUMENT_FRAG,

-      "\u65e0\u6587\u6863\u7247\u6bb5\u7684\u514b\u9686\uff01"},

-

-    { ER_CANT_CREATE_ITEM,

-      "\u65e0\u6cd5\u5728\u7ed3\u679c\u6811\u4e2d\u521b\u5efa\u9879\uff1a{0}"},

-

-    { ER_XMLSPACE_ILLEGAL_VALUE,

-      "\u6e90 XML \u4e2d\u7684 xml:space \u6709\u975e\u6cd5\u503c\uff1a{0}"},

-

-    { ER_NO_XSLKEY_DECLARATION,

-      "{0} \u6ca1\u6709 xsl:key \u58f0\u660e\uff01"},

-

-    { ER_CANT_CREATE_URL,

-     "\u9519\u8bef\uff01\u65e0\u6cd5\u4e3a {0} \u521b\u5efa URL"},

-

-    { ER_XSLFUNCTIONS_UNSUPPORTED,

-     "\u4e0d\u652f\u6301 xsl:functions"},

-

-    { ER_PROCESSOR_ERROR,

-     "XSLT TransformerFactory \u9519\u8bef"},

-

-    { ER_NOT_ALLOWED_INSIDE_STYLESHEET,

-      "\uff08StylesheetHandler\uff09\u6837\u5f0f\u8868\u5185\u4e0d\u5141\u8bb8 {0}\uff01"},

-

-    { ER_RESULTNS_NOT_SUPPORTED,

-      "\u4e0d\u518d\u652f\u6301 result-ns\uff01\u8bf7\u6539\u4e3a\u4f7f\u7528 xsl:output\u3002"},

-

-    { ER_DEFAULTSPACE_NOT_SUPPORTED,

-      "\u4e0d\u518d\u652f\u6301 default-space\uff01\u8bf7\u6539\u4e3a\u4f7f\u7528 xsl:strip-space \u6216 xsl:preserve-space\u3002"},

-

-    { ER_INDENTRESULT_NOT_SUPPORTED,

-      "\u4e0d\u518d\u652f\u6301 indent-result\uff01\u8bf7\u6539\u4e3a\u4f7f\u7528 xsl:output\u3002"},

-

-    { ER_ILLEGAL_ATTRIB,

-      "\uff08StylesheetHandler\uff09{0} \u6709\u975e\u6cd5\u5c5e\u6027\uff1a{1}"},

-

-    { ER_UNKNOWN_XSL_ELEM,

-     "\u672a\u77e5 XSL \u5143\u7d20\uff1a{0}"},

-

-    { ER_BAD_XSLSORT_USE,

-      "\uff08StylesheetHandler\uff09xsl:sort \u53ea\u80fd\u4e0e xsl:apply-templates \u6216 xsl:for-each \u4e00\u8d77\u4f7f\u7528\u3002"},

-

-    { ER_MISPLACED_XSLWHEN,

-      "\uff08StylesheetHandler\uff09\u9519\u653e\u4e86 xsl:when\uff01"},

-

-    { ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE,

-      "\uff08StylesheetHandler\uff09xsl:choose \u4e0d\u662f xsl:when \u7684\u7236\u4ee3\uff01"},

-

-    { ER_MISPLACED_XSLOTHERWISE,

-      "\uff08StylesheetHandler\uff09\u9519\u653e\u4e86 xsl:otherwise\uff01"},

-

-    { ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE,

-      "\uff08StylesheetHandler\uff09xsl:choose \u4e0d\u662f xsl:otherwise \u7684\u7236\u4ee3\uff01"},

-

-    { ER_NOT_ALLOWED_INSIDE_TEMPLATE,

-      "\uff08StylesheetHandler\uff09\u6a21\u677f\u5185\u4e0d\u5141\u8bb8\u51fa\u73b0 {0}\uff01"},

-

-    { ER_UNKNOWN_EXT_NS_PREFIX,

-      "\uff08StylesheetHandler\uff09{0} \u6269\u5c55\u540d\u79f0\u7a7a\u95f4\u524d\u7f00 {1} \u672a\u77e5"},

-

-    { ER_IMPORTS_AS_FIRST_ELEM,

-      "\uff08StylesheetHandler\uff09\u5bfc\u5165\u53ea\u80fd\u4f5c\u4e3a\u6837\u5f0f\u8868\u4e2d\u6700\u524d\u9762\u7684\u5143\u7d20\u53d1\u751f\uff01"},

-

-    { ER_IMPORTING_ITSELF,

-      "\uff08StylesheetHandler\uff09{0} \u6b63\u5728\u76f4\u63a5\u6216\u95f4\u63a5\u5730\u5bfc\u5165\u5b83\u81ea\u8eab\uff01"},

-

-    { ER_XMLSPACE_ILLEGAL_VAL,

-      "\uff08StylesheetHandler\uff09xml:space \u6709\u975e\u6cd5\u503c\uff1a{0}"},

-

-    { ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL,

-      "processStylesheet \u4e0d\u6210\u529f\uff01"},

-

-    { ER_SAX_EXCEPTION,

-     "SAX \u5f02\u5e38"},

-

-//  add this message to fix bug 21478

-    { ER_FUNCTION_NOT_SUPPORTED,

-     "\u51fd\u6570\u4e0d\u53d7\u652f\u6301\uff01"},

-

-

-    { ER_XSLT_ERROR,

-     "XSLT \u9519\u8bef"},

-

-    { ER_CURRENCY_SIGN_ILLEGAL,

-      "\u683c\u5f0f\u6a21\u5f0f\u5b57\u7b26\u4e32\u4e2d\u4e0d\u5141\u8bb8\u5b58\u5728\u8d27\u5e01\u7b26\u53f7"},

-

-    { ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM,

-      "\u6837\u5f0f\u8868 DOM \u4e2d\u4e0d\u652f\u6301\u6587\u6863\u51fd\u6570\uff01"},

-

-    { ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER,

-      "\u65e0\u6cd5\u89e3\u6790\u975e\u524d\u7f00\u89e3\u6790\u5668\u7684\u524d\u7f00\uff01"},

-

-    { ER_REDIRECT_COULDNT_GET_FILENAME,

-      "\u91cd\u5b9a\u5411\u6269\u5c55\uff1a\u65e0\u6cd5\u83b7\u53d6\u6587\u4ef6\u540d \uff0d file \u6216 select \u5c5e\u6027\u5fc5\u987b\u8fd4\u56de\u6709\u6548\u5b57\u7b26\u4e32\u3002"},

-

-    { ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT,

-      "\u65e0\u6cd5\u5728\u91cd\u5b9a\u5411\u6269\u5c55\u4e2d\u6784\u5efa FormatterListener\uff01"},

-

-    { ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX,

-      "exclude-result-prefixes \u4e2d\u7684\u524d\u7f00\u65e0\u6548\uff1a{0}"},

-

-    { ER_MISSING_NS_URI,

-      "\u6307\u5b9a\u7684\u524d\u7f00\u7f3a\u5c11\u540d\u79f0\u7a7a\u95f4 URI"},

-

-    { ER_MISSING_ARG_FOR_OPTION,

-      "\u9009\u9879 {0} \u7f3a\u5c11\u81ea\u53d8\u91cf"},

-

-    { ER_INVALID_OPTION,

-     "\u9009\u9879 {0} \u65e0\u6548"},

-

-    { ER_MALFORMED_FORMAT_STRING,

-     "\u683c\u5f0f\u5b57\u7b26\u4e32 {0} \u7684\u683c\u5f0f\u9519\u8bef"},

-

-    { ER_STYLESHEET_REQUIRES_VERSION_ATTRIB,

-      "xsl:stylesheet \u9700\u8981\u201cversion\u201d\u5c5e\u6027\uff01"},

-

-    { ER_ILLEGAL_ATTRIBUTE_VALUE,

-      "\u5c5e\u6027\uff1a{0} \u6709\u975e\u6cd5\u7684\u503c\uff1a{1}"},

-

-    { ER_CHOOSE_REQUIRES_WHEN,

-     "xsl:choose \u9700\u8981 xsl:when"},

-

-    { ER_NO_APPLY_IMPORT_IN_FOR_EACH,

-      "xsl:for-each \u4e2d\u4e0d\u5141\u8bb8\u6709 xsl:apply-imports"},

-

-    { ER_CANT_USE_DTM_FOR_OUTPUT,

-      "\u65e0\u6cd5\u5c06 DTMLiaison \u7528\u4e8e\u8f93\u51fa DOM \u8282\u70b9... \u6539\u4e3a\u4f20\u9012 org.apache.xpath.DOM2Helper\uff01"},

-

-    { ER_CANT_USE_DTM_FOR_INPUT,

-      "\u65e0\u6cd5\u5c06 DTMLiaison \u7528\u4e8e\u8f93\u5165 DOM \u8282\u70b9... \u6539\u4e3a\u4f20\u9012 org.apache.xpath.DOM2Helper\uff01"},

-

-    { ER_CALL_TO_EXT_FAILED,

-      "\u8c03\u7528\u6269\u5c55\u5143\u7d20\u5931\u8d25\uff1a{0}"},

-

-    { ER_PREFIX_MUST_RESOLVE,

-      "\u524d\u7f00\u5fc5\u987b\u89e3\u6790\u4e3a\u540d\u79f0\u7a7a\u95f4\uff1a{0}"},

-

-    { ER_INVALID_UTF16_SURROGATE,

-      "\u68c0\u6d4b\u5230\u65e0\u6548\u7684 UTF-16 \u8d85\u5927\u5b57\u7b26\u96c6\uff1a{0}\uff1f"},

-

-    { ER_XSLATTRSET_USED_ITSELF,

-      "xsl:attribute-set {0} \u4f7f\u7528\u4e86\u81ea\u8eab\uff0c\u8fd9\u5c06\u5bfc\u81f4\u65e0\u9650\u5faa\u73af\u3002"},

-

-    { ER_CANNOT_MIX_XERCESDOM,

-      "\u65e0\u6cd5\u5c06\u975e Xerces-DOM \u8f93\u5165\u4e0e Xerces-DOM \u8f93\u51fa\u6df7\u5408\uff01"},

-

-    { ER_TOO_MANY_LISTENERS,

-      "addTraceListenersToStylesheet \u2015 TooManyListenersException"},

-

-    { ER_IN_ELEMTEMPLATEELEM_READOBJECT,

-      "\u5728 ElemTemplateElement.readObject \u4e2d\uff1a{0}"},

-

-    { ER_DUPLICATE_NAMED_TEMPLATE,

-      "\u627e\u5230\u591a\u4e2a\u540d\u4e3a {0} \u7684\u6a21\u677f"},

-

-    { ER_INVALID_KEY_CALL,

-      "\u65e0\u6548\u7684\u51fd\u6570\u8c03\u7528\uff1a\u4e0d\u5141\u8bb8\u9012\u5f52 key() \u8c03\u7528"},

-

-    { ER_REFERENCING_ITSELF,

-      "\u53d8\u91cf {0} \u6b63\u5728\u76f4\u63a5\u6216\u95f4\u63a5\u5730\u5f15\u7528\u5b83\u81ea\u8eab\uff01"},

-

-    { ER_ILLEGAL_DOMSOURCE_INPUT,

-      "\u8f93\u5165\u8282\u70b9\u5bf9\u4e8e newTemplates \u7684 DOMSource \u4e0d\u80fd\u4e3a\u7a7a\uff01"},

-

-    { ER_CLASS_NOT_FOUND_FOR_OPTION,

-        "\u627e\u4e0d\u5230\u9009\u9879 {0} \u7684\u7c7b\u6587\u4ef6"},

-

-    { ER_REQUIRED_ELEM_NOT_FOUND,

-        "\u627e\u4e0d\u5230\u5fc5\u9700\u7684\u5143\u7d20\uff1a{0}"},

-

-    { ER_INPUT_CANNOT_BE_NULL,

-        "InputStream \u4e0d\u80fd\u4e3a\u7a7a"},

-

-    { ER_URI_CANNOT_BE_NULL,

-        "URI \u4e0d\u80fd\u4e3a\u7a7a"},

-

-    { ER_FILE_CANNOT_BE_NULL,

-        "File \u4e0d\u80fd\u4e3a\u7a7a"},

-

-    { ER_SOURCE_CANNOT_BE_NULL,

-                "InputSource \u4e0d\u80fd\u4e3a\u7a7a"},

-

-    { ER_CANNOT_INIT_BSFMGR,

-                "\u65e0\u6cd5\u521d\u59cb\u5316 BSF \u7ba1\u7406\u5668"},

-

-    { ER_CANNOT_CMPL_EXTENSN,

-                "\u65e0\u6cd5\u7f16\u8bd1\u6269\u5c55"},

-

-    { ER_CANNOT_CREATE_EXTENSN,

-      "\u7531\u4e8e {1}\uff0c\u65e0\u6cd5\u521b\u5efa\u6269\u5c55 {0}"},

-

-    { ER_INSTANCE_MTHD_CALL_REQUIRES,

-      "\u5bf9\u65b9\u6cd5 {0} \u7684\u5b9e\u4f8b\u65b9\u6cd5\u8c03\u7528\u8981\u6c42\u4ee5\u5bf9\u8c61\u5b9e\u4f8b\u4f5c\u4e3a\u7b2c\u4e00\u53c2\u6570"},

-

-    { ER_INVALID_ELEMENT_NAME,

-      "\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u5143\u7d20\u540d\u79f0 {0}"},

-

-    { ER_ELEMENT_NAME_METHOD_STATIC,

-      "\u5143\u7d20\u540d\u79f0\u65b9\u6cd5\u5fc5\u987b\u662f static {0}"},

-

-    { ER_EXTENSION_FUNC_UNKNOWN,

-             "\u6269\u5c55\u51fd\u6570 {0} : {1} \u672a\u77e5"},

-

-    { ER_MORE_MATCH_CONSTRUCTOR,

-             "\u5bf9\u4e8e {0}\uff0c\u6784\u9020\u51fd\u6570\u6709\u591a\u4e2a\u6700\u4f73\u5339\u914d"},

-

-    { ER_MORE_MATCH_METHOD,

-             "\u65b9\u6cd5 {0} \u6709\u591a\u4e2a\u6700\u4f73\u5339\u914d"},

-

-    { ER_MORE_MATCH_ELEMENT,

-             "element \u65b9\u6cd5 {0} \u6709\u591a\u4e2a\u6700\u4f73\u5339\u914d"},

-

-    { ER_INVALID_CONTEXT_PASSED,

-             "\u8bc4\u4f30 {0} \u65f6\u4f20\u9012\u4e86\u65e0\u6548\u7684\u4e0a\u4e0b\u6587"},

-

-    { ER_POOL_EXISTS,

-             "\u6c60\u5df2\u7ecf\u5b58\u5728"},

-

-    { ER_NO_DRIVER_NAME,

-             "\u672a\u6307\u5b9a\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0"},

-

-    { ER_NO_URL,

-             "\u672a\u6307\u5b9a URL"},

-

-    { ER_POOL_SIZE_LESSTHAN_ONE,

-             "\u6c60\u5927\u5c0f\u5c0f\u4e8e 1\uff01"},

-

-    { ER_INVALID_DRIVER,

-             "\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0\uff01"},

-

-    { ER_NO_STYLESHEETROOT,

-             "\u627e\u4e0d\u5230\u6837\u5f0f\u8868\u6839\u76ee\u5f55\uff01"},

-

-    { ER_ILLEGAL_XMLSPACE_VALUE,

-         "xml:space \u7684\u503c\u975e\u6cd5"},

-

-    { ER_PROCESSFROMNODE_FAILED,

-         "processFromNode \u5931\u8d25"},

-

-    { ER_RESOURCE_COULD_NOT_LOAD,

-        "\u8d44\u6e90 [ {0} ] \u65e0\u6cd5\u88c5\u5165\uff1a{1} \n {2} \t {3}"},

-

-    { ER_BUFFER_SIZE_LESSTHAN_ZERO,

-        "\u7f13\u51b2\u533a\u5927\u5c0f <=0"},

-

-    { ER_UNKNOWN_ERROR_CALLING_EXTENSION,

-        "\u8c03\u7528\u6269\u5c55\u65f6\u53d1\u751f\u672a\u77e5\u9519\u8bef"},

-

-    { ER_NO_NAMESPACE_DECL,

-        "\u524d\u7f00 {0} \u6ca1\u6709\u76f8\u5e94\u7684\u540d\u79f0\u7a7a\u95f4\u58f0\u660e"},

-

-    { ER_ELEM_CONTENT_NOT_ALLOWED,

-        "lang=javaclass {0} \u4e0d\u5141\u8bb8\u51fa\u73b0\u5143\u7d20\u5185\u5bb9"},

-

-    { ER_STYLESHEET_DIRECTED_TERMINATION,

-        "\u6837\u5f0f\u8868\u5b9a\u5411\u7684\u7ec8\u6b62"},

-

-    { ER_ONE_OR_TWO,

-        "1 \u6216 2"},

-

-    { ER_TWO_OR_THREE,

-        "2 \u6216 3"},

-

-    { ER_COULD_NOT_LOAD_RESOURCE,

-        "\u65e0\u6cd5\u88c5\u5165 {0}\uff08\u68c0\u67e5 CLASSPATH\uff09\uff0c\u73b0\u5728\u53ea\u4f7f\u7528\u7f3a\u7701\u503c"},

-

-    { ER_CANNOT_INIT_DEFAULT_TEMPLATES,

-        "\u65e0\u6cd5\u521d\u59cb\u5316\u7f3a\u7701\u6a21\u677f"},

-

-    { ER_RESULT_NULL,

-        "\u7ed3\u679c\u4e0d\u5e94\u4e3a\u7a7a"},

-

-    { ER_RESULT_COULD_NOT_BE_SET,

-        "\u65e0\u6cd5\u8bbe\u7f6e\u7ed3\u679c"},

-

-    { ER_NO_OUTPUT_SPECIFIED,

-        "\u672a\u6307\u5b9a\u8f93\u51fa"},

-

-    { ER_CANNOT_TRANSFORM_TO_RESULT_TYPE,

-        "\u65e0\u6cd5\u8f6c\u6362\u6210\u7c7b\u578b\u4e3a {0} \u7684\u7ed3\u679c"},

-

-    { ER_CANNOT_TRANSFORM_SOURCE_TYPE,

-        "\u65e0\u6cd5\u8f6c\u6362\u7c7b\u578b\u4e3a {0} \u7684\u6e90"},

-

-    { ER_NULL_CONTENT_HANDLER,

-        "\u5185\u5bb9\u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},

-

-    { ER_NULL_ERROR_HANDLER,

-        "\u9519\u8bef\u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},

-

-    { ER_CANNOT_CALL_PARSE,

-        "\u5982\u679c\u6ca1\u6709\u8bbe\u7f6e ContentHandler\uff0c\u5219\u65e0\u6cd5\u8c03\u7528\u89e3\u6790"},

-

-    { ER_NO_PARENT_FOR_FILTER,

-        "\u8fc7\u6ee4\u5668\u65e0\u7236\u4ee3"},

-

-    { ER_NO_STYLESHEET_IN_MEDIA,

-         "\u5728 {0} \u4e2d\u627e\u4e0d\u5230\u6837\u5f0f\u8868\uff0c\u4ecb\u8d28 = {1}"},

-

-    { ER_NO_STYLESHEET_PI,

-         "\u5728 {0} \u4e2d\u627e\u4e0d\u5230 xml-stylesheet PI"},

-

-    { ER_NOT_SUPPORTED,

-       "\u4e0d\u652f\u6301\uff1a{0}"},

-

-    { ER_PROPERTY_VALUE_BOOLEAN,

-       "\u7279\u6027 {0} \u7684\u503c\u5e94\u5f53\u662f\u5e03\u5c14\u5b9e\u4f8b"},

-

-    { ER_COULD_NOT_FIND_EXTERN_SCRIPT,

-         "\u627e\u4e0d\u5230 {0} \u4e0a\u7684\u5916\u90e8\u811a\u672c"},

-

-    { ER_RESOURCE_COULD_NOT_FIND,

-        "\u627e\u4e0d\u5230\u8d44\u6e90 [ {0} ]\u3002\n {1}"},

-

-    { ER_OUTPUT_PROPERTY_NOT_RECOGNIZED,

-        "\u672a\u8bc6\u522b\u51fa\u8f93\u51fa\u5c5e\u6027\uff1a{0}"},

-

-    { ER_FAILED_CREATING_ELEMLITRSLT,

-        "\u521b\u5efa ElemLiteralResult \u5b9e\u4f8b\u5931\u8d25"},

-

-  //Earlier (JDK 1.4 XALAN 2.2-D11) at key code '204' the key name was ER_PRIORITY_NOT_PARSABLE

-  // In latest Xalan code base key name is  ER_VALUE_SHOULD_BE_NUMBER. This should also be taken care

-  //in locale specific files like XSLTErrorResources_de.java, XSLTErrorResources_fr.java etc.

-  //NOTE: Not only the key name but message has also been changed.

-

-    { ER_VALUE_SHOULD_BE_NUMBER,

-        "{0} \u7684\u503c\u5e94\u5f53\u5305\u542b\u53ef\u8fdb\u884c\u89e3\u6790\u7684\u6570\u5b57"},

-

-    { ER_VALUE_SHOULD_EQUAL,

-        "{0} \u7684\u503c\u5e94\u5f53\u7b49\u4e8e yes \u6216 no"},

-

-    { ER_FAILED_CALLING_METHOD,

-        "\u8c03\u7528 {0} \u65b9\u6cd5\u5931\u8d25"},

-

-    { ER_FAILED_CREATING_ELEMTMPL,

-        "\u521b\u5efa ElemTemplateElement \u5b9e\u4f8b\u5931\u8d25"},

-

-    { ER_CHARS_NOT_ALLOWED,

-        "\u6b64\u65f6\u6587\u6863\u4e2d\u4e0d\u5141\u8bb8\u6709\u5b57\u7b26"},

-

-    { ER_ATTR_NOT_ALLOWED,

-        "{1} \u5143\u7d20\u4e0a\u4e0d\u5141\u8bb8\u4f7f\u7528\u201c{0}\u201d\u5c5e\u6027\uff01"},

-

-    { ER_BAD_VALUE,

-     "{0} \u9519\u8bef\u503c {1}"},

-

-    { ER_ATTRIB_VALUE_NOT_FOUND,

-     "\u627e\u4e0d\u5230 {0} \u5c5e\u6027\u503c"},

-

-    { ER_ATTRIB_VALUE_NOT_RECOGNIZED,

-     "\u672a\u8bc6\u522b\u51fa {0} \u5c5e\u6027\u503c"},

-

-    { ER_NULL_URI_NAMESPACE,

-     "\u6b63\u5728\u8bd5\u56fe\u4ee5\u7a7a\u7684 URI \u751f\u6210\u540d\u79f0\u7a7a\u95f4\u524d\u7f00"},

-

-  //New ERROR keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)

-

-    { ER_NUMBER_TOO_BIG,

-     "\u6b63\u5728\u8bd5\u56fe\u683c\u5f0f\u5316\u5927\u4e8e\u6700\u5927\u957f\u6574\u6570\u7684\u6570\u5b57"},

-

-    { ER_CANNOT_FIND_SAX1_DRIVER,

-     "\u627e\u4e0d\u5230 SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0}"},

-

-    { ER_SAX1_DRIVER_NOT_LOADED,

-     "\u627e\u5230\u4e86 SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0}\uff0c\u4f46\u65e0\u6cd5\u88c5\u5165\u5b83"},

-

-    { ER_SAX1_DRIVER_NOT_INSTANTIATED,

-     "\u88c5\u5165\u4e86 SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0}\uff0c\u4f46\u65e0\u6cd5\u5c06\u5b83\u5b9e\u4f8b\u5316"},

-

-    { ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER,

-     "SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0} \u4e0d\u5b9e\u73b0 org.xml.sax.Parser"},

-

-    { ER_PARSER_PROPERTY_NOT_SPECIFIED,

-     "\u6ca1\u6709\u6307\u5b9a\u7cfb\u7edf\u5c5e\u6027 org.xml.sax.parser"},

-

-    { ER_PARSER_ARG_CANNOT_BE_NULL,

-     "\u89e3\u6790\u5668\u53c2\u6570\u4e0d\u5f97\u4e3a\u7a7a"},

-

-    { ER_FEATURE,

-     "\u7279\u5f81\uff1a{0}"},

-

-    { ER_PROPERTY,

-     "\u5c5e\u6027\uff1a{0}"},

-

-    { ER_NULL_ENTITY_RESOLVER,

-     "\u5b9e\u4f53\u89e3\u6790\u5668\u4e3a\u7a7a"},

-

-    { ER_NULL_DTD_HANDLER,

-     "DTD \u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},

-

-    { ER_NO_DRIVER_NAME_SPECIFIED,

-     "\u672a\u6307\u5b9a\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0\uff01"},

-

-    { ER_NO_URL_SPECIFIED,

-     "\u672a\u6307\u5b9a URL\uff01"},

-

-    { ER_POOLSIZE_LESS_THAN_ONE,

-     "\u6c60\u5927\u5c0f\u5c0f\u4e8e 1\uff01"},

-

-    { ER_INVALID_DRIVER_NAME,

-     "\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0\uff01"},

-

-    { ER_ERRORLISTENER,

-     "ErrorListener"},

-

-

-// Note to translators:  The following message should not normally be displayed

-//   to users.  It describes a situation in which the processor has detected

-//   an internal consistency problem in itself, and it provides this message

-//   for the developer to help diagnose the problem.  The name

-//   'ElemTemplateElement' is the name of a class, and should not be

-//   translated.

-    { ER_ASSERT_NO_TEMPLATE_PARENT,

-     "\u7a0b\u5e8f\u5458\u7684\u9519\u8bef\uff01\u8868\u8fbe\u5f0f\u6ca1\u6709 ElemTemplateElement \u7236\u4ee3\uff01"},

-

-

-// Note to translators:  The following message should not normally be displayed

-//   to users.  It describes a situation in which the processor has detected

-//   an internal consistency problem in itself, and it provides this message

-//   for the developer to help diagnose the problem.  The substitution text

-//   provides further information in order to diagnose the problem.  The name

-//   'RedundentExprEliminator' is the name of a class, and should not be

-//   translated.

-    { ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR,

-     "\u7a0b\u5e8f\u5458\u5728 RedundentExprEliminator \u4e2d\u7684\u65ad\u8a00\uff1a{0}"},

-

-    { ER_NOT_ALLOWED_IN_POSITION,

-     "\u6837\u5f0f\u8868\u7684\u6b64\u4f4d\u7f6e\u4e2d\u4e0d\u5141\u8bb8\u6709 {0}\uff01"},

-

-    { ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION,

-     "\u6837\u5f0f\u8868\u7684\u6b64\u4f4d\u7f6e\u4e2d\u4e0d\u5141\u8bb8\u6709\u975e\u7a7a\u683c\u7684\u6587\u672c\uff01"},

-

-  // This code is shared with warning codes.

-  // SystemId Unknown

-    { INVALID_TCHAR,

-     "\u7528\u4e8e CHAR \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5\u3002\u7c7b\u578b CHAR \u7684\u5c5e\u6027\u5fc5\u987b\u53ea\u6709 1 \u4e2a\u5b57\u7b26\uff01"},

-

-    // Note to translators:  The following message is used if the value of

-    // an attribute in a stylesheet is invalid.  "QNAME" is the XML data-type of

-    // the attribute, and should not be translated.  The substitution text {1} is

-    // the attribute value and {0} is the attribute name.

-    //The following codes are shared with the warning codes...

-    { INVALID_QNAME,

-     "\u7528\u4e8e QNAME \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},

-

-    // Note to translators:  The following message is used if the value of

-    // an attribute in a stylesheet is invalid.  "ENUM" is the XML data-type of

-    // the attribute, and should not be translated.  The substitution text {1} is

-    // the attribute value, {0} is the attribute name, and {2} is a list of valid

-    // values.

-    { INVALID_ENUM,

-     "\u7528\u4e8e ENUM \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5\u3002\u6709\u6548\u7684\u503c\u662f\uff1a{2}\u3002"},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "NMTOKEN" is the XML data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-    { INVALID_NMTOKEN,

-     "\u7528\u4e8e NMTOKEN \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "NCNAME" is the XML data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-    { INVALID_NCNAME,

-     "\u7528\u4e8e NCNAME \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "boolean" is the XSLT data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-    { INVALID_BOOLEAN,

-     "\u7528\u4e8e boolean \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},

-

-// Note to translators:  The following message is used if the value of

-// an attribute in a stylesheet is invalid.  "number" is the XSLT data-type

-// of the attribute, and should not be translated.  The substitution text {1} is

-// the attribute value and {0} is the attribute name.

-     { INVALID_NUMBER,

-     "\u7528\u4e8e number \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},

-

-

-  // End of shared codes...

-

-// Note to translators:  A "match pattern" is a special form of XPath expression

-// that is used for matching patterns.  The substitution text is the name of

-// a function.  The message indicates that when this function is referenced in

-// a match pattern, its argument must be a string literal (or constant.)

-// ER_ARG_LITERAL - new error message for bugzilla //5202

-    { ER_ARG_LITERAL,

-     "\u5339\u914d\u6a21\u5f0f\u4e2d {0} \u7684\u81ea\u53d8\u91cf\u5fc5\u987b\u662f\u6587\u5b57\u3002"},

-

-// Note to translators:  The following message indicates that two definitions of

-// a variable.  A "global variable" is a variable that is accessible everywher

-// in the stylesheet.

-// ER_DUPLICATE_GLOBAL_VAR - new error message for bugzilla #790

-    { ER_DUPLICATE_GLOBAL_VAR,

-     "\u5168\u5c40\u53d8\u91cf\u7684\u58f0\u660e\u91cd\u590d\u3002"},

-

-

-// Note to translators:  The following message indicates that two definitions of

-// a variable were encountered.

-// ER_DUPLICATE_VAR - new error message for bugzilla #790

-    { ER_DUPLICATE_VAR,

-     "\u53d8\u91cf\u58f0\u660e\u91cd\u590d\u3002"},

-

-    // Note to translators:  "xsl:template, "name" and "match" are XSLT keywords

-    // which must not be translated.

-    // ER_TEMPLATE_NAME_MATCH - new error message for bugzilla #789

-    { ER_TEMPLATE_NAME_MATCH,

-     "xsl:template \u5fc5\u987b\u6709\u4e00\u4e2a name \u6216 match \u5c5e\u6027\uff08\u6216\u4e24\u8005\u517c\u6709\uff09"},

-

-    // Note to translators:  "exclude-result-prefixes" is an XSLT keyword which

-    // should not be translated.  The message indicates that a namespace prefix

-    // encountered as part of the value of the exclude-result-prefixes attribute

-    // was in error.

-    // ER_INVALID_PREFIX - new error message for bugzilla #788

-    { ER_INVALID_PREFIX,

-     "exclude-result-prefixes \u4e2d\u7684\u524d\u7f00\u65e0\u6548\uff1a{0}"},

-

-    // Note to translators:  An "attribute set" is a set of attributes that can

-    // be added to an element in the output document as a group.  The message

-    // indicates that there was a reference to an attribute set named {0} that

-    // was never defined.

-    // ER_NO_ATTRIB_SET - new error message for bugzilla #782

-    { ER_NO_ATTRIB_SET,

-     "\u540d\u4e3a {0} \u7684\u5c5e\u6027\u96c6\u4e0d\u5b58\u5728"},

-

-    // Note to translators:  This message indicates that there was a reference

-    // to a function named {0} for which no function definition could be found.

-    { ER_FUNCTION_NOT_FOUND,

-     "\u540d\u4e3a {0} \u7684\u51fd\u6570\u4e0d\u5b58\u5728"},

-

-    // Note to translators:  This message indicates that the XSLT instruction

-    // that is named by the substitution text {0} must not contain other XSLT

-    // instructions (content) or a "select" attribute.  The word "select" is

-    // an XSLT keyword in this case and must not be translated.

-    { ER_CANT_HAVE_CONTENT_AND_SELECT,

-     "{0} \u5143\u7d20\u4e0d\u5f97\u540c\u65f6\u5177\u6709\u5185\u5bb9\u548c select \u5c5e\u6027\u3002"},

-

-    // Note to translators:  This message indicates that the value argument

-    // of setParameter must be a valid Java Object.

-    { ER_INVALID_SET_PARAM_VALUE,

-     "\u53c2\u6570 {0} \u7684\u503c\u5fc5\u987b\u4e3a\u6709\u6548\u7684 Java \u5bf9\u8c61"},

-

-        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT,

-         "xsl:namespace-alias \u5143\u7d20\u7684 result-prefix \u5c5e\u6027\u542b\u6709\u201c#default\u201d\u503c\uff0c\u4f46\u5728\u8be5\u5143\u7d20\u7684\u4f5c\u7528\u57df\u4e2d\u6ca1\u6709\u7f3a\u7701\u540d\u79f0\u7a7a\u95f4\u7684\u58f0\u660e\u3002"},

-

-        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX,

-         "xsl:namespace-alias \u5143\u7d20\u7684 result-prefix \u5c5e\u6027\u542b\u6709\u201c{0}\u201d\u503c\uff0c\u4f46\u662f\u5728\u8be5\u5143\u7d20\u7684\u4f5c\u7528\u57df\u4e2d\u6ca1\u6709\u524d\u7f00\u201c{0}\u201d\u7684\u540d\u79f0\u7a7a\u95f4\u58f0\u660e\u3002"},

-

-    { ER_SET_FEATURE_NULL_NAME,

-      "\u5728 TransformerFactory.setFeature(String name, boolean value) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},

-

-    { ER_GET_FEATURE_NULL_NAME,

-      "\u5728 TransformerFactory.getFeature(String name) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},

-

-    { ER_UNSUPPORTED_FEATURE,

-      "\u65e0\u6cd5\u5bf9\u6b64 TransformerFactory \u8bbe\u7f6e\u7279\u5f81\u201c{0}\u201d\u3002"},

-

-    { ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING,

-        "\u5f53\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u6269\u5c55\u5143\u7d20\u201c{0}\u201d\u3002"},

-

-        { ER_NAMESPACE_CONTEXT_NULL_NAMESPACE,

-          "\u65e0\u6cd5\u4e3a\u7a7a\u540d\u79f0\u7a7a\u95f4 uri \u83b7\u53d6\u524d\u7f00\u3002"},

-

-        { ER_NAMESPACE_CONTEXT_NULL_PREFIX,

-          "\u65e0\u6cd5\u4e3a\u7a7a\u524d\u7f00\u83b7\u53d6\u540d\u79f0\u7a7a\u95f4 uri\u3002"},

-

-        { ER_XPATH_RESOLVER_NULL_QNAME,

-          "\u51fd\u6570\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},

-

-        { ER_XPATH_RESOLVER_NEGATIVE_ARITY,

-          "\u6570\u91cf\u4e0d\u80fd\u4e3a\u8d1f\u3002"},

-

-  // Warnings...

-

-    { WG_FOUND_CURLYBRACE,

-      "\u627e\u5230\u201c}\u201d\uff0c\u4f46\u6ca1\u6709\u6253\u5f00\u5c5e\u6027\u6a21\u677f\uff01"},

-

-    { WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR,

-      "\u8b66\u544a\uff1acount \u5c5e\u6027\u4e0e xsl:number \u4e2d\u7684\u4e0a\u7ea7\u4e0d\u5339\u914d\uff01\u76ee\u6807 = {0}"},

-

-    { WG_EXPR_ATTRIB_CHANGED_TO_SELECT,

-      "\u65e7\u8bed\u6cd5\uff1a\u201cexpr\u201d\u5c5e\u6027\u7684\u540d\u79f0\u5df2\u7ecf\u66f4\u6539\u4e3a\u201cselect\u201d\u3002"},

-

-    { WG_NO_LOCALE_IN_FORMATNUMBER,

-      "Xalan \u5728 format-number \u51fd\u6570\u4e2d\u5c1a\u672a\u5904\u7406\u8bed\u8a00\u73af\u5883\u540d\u3002"},

-

-    { WG_LOCALE_NOT_FOUND,

-      "\u8b66\u544a\uff1a\u627e\u4e0d\u5230 xml:lang={0} \u7684\u8bed\u8a00\u73af\u5883"},

-

-    { WG_CANNOT_MAKE_URL_FROM,

-      "\u65e0\u6cd5\u4ece {0} \u751f\u6210 URL"},

-

-    { WG_CANNOT_LOAD_REQUESTED_DOC,

-      "\u65e0\u6cd5\u88c5\u5165\u8bf7\u6c42\u7684\u6587\u6863\uff1a{0}"},

-

-    { WG_CANNOT_FIND_COLLATOR,

-      "\u627e\u4e0d\u5230 <sort xml:lang={0} \u7684\u6574\u7406\u5668"},

-

-    { WG_FUNCTIONS_SHOULD_USE_URL,

-      "\u65e7\u8bed\u6cd5\uff1a\u51fd\u6570\u6307\u4ee4\u5e94\u5f53\u4f7f\u7528 {0} \u7684 URL"},

-

-    { WG_ENCODING_NOT_SUPPORTED_USING_UTF8,

-      "\u4e0d\u652f\u6301\u7f16\u7801\uff1a{0}\uff0c\u6b63\u5728\u4f7f\u7528 UTF-8"},

-

-    { WG_ENCODING_NOT_SUPPORTED_USING_JAVA,

-      "\u4e0d\u652f\u6301\u7f16\u7801\uff1a{0}\uff0c\u6b63\u5728\u4f7f\u7528 Java {1}"},

-

-    { WG_SPECIFICITY_CONFLICTS,

-      "\u53d1\u73b0\u7279\u6027\u51b2\u7a81\uff1a\u5c06\u4f7f\u7528\u6837\u5f0f\u8868\u4e2d\u6700\u540e\u627e\u5230\u7684 {0}\u3002"},

-

-    { WG_PARSING_AND_PREPARING,

-      "========= \u89e3\u6790\u548c\u51c6\u5907 {0} =========="},

-

-    { WG_ATTR_TEMPLATE,

-     "\u5c5e\u6027\u6a21\u677f\uff0c{0}"},

-

-    { WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE,

-      "xsl:strip-space \u548c xsl:preserve-space \u4e4b\u95f4\u7684\u5339\u914d\u51b2\u7a81"},

-

-    { WG_ATTRIB_NOT_HANDLED,

-      "Xalan \u5c1a\u672a\u5904\u7406 {0} \u5c5e\u6027\uff01"},

-

-    { WG_NO_DECIMALFORMAT_DECLARATION,

-      "\u627e\u4e0d\u5230\u5341\u8fdb\u5236\u683c\u5f0f\u7684\u58f0\u660e\uff1a{0}"},

-

-    { WG_OLD_XSLT_NS,

-     "XSLT \u540d\u79f0\u7a7a\u95f4\u4e22\u5931\u6216\u4e0d\u6b63\u786e\u3002"},

-

-    { WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED,

-      "\u53ea\u5141\u8bb8\u4e00\u4e2a\u7f3a\u7701\u7684 xsl:decimal-format \u58f0\u660e\u3002"},

-

-    { WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE,

-      "xsl:decimal-format \u540d\u79f0\u5fc5\u987b\u662f\u552f\u4e00\u7684\u3002\u540d\u79f0\u201c{0}\u201d\u6709\u91cd\u590d\u3002"},

-

-    { WG_ILLEGAL_ATTRIBUTE,

-      "{0} \u6709\u4e00\u4e2a\u975e\u6cd5\u5c5e\u6027\uff1a{1}"},

-

-    { WG_COULD_NOT_RESOLVE_PREFIX,

-      "\u65e0\u6cd5\u89e3\u6790\u540d\u79f0\u7a7a\u95f4\u524d\u7f00\uff1a{0}\u3002\u5c06\u5ffd\u7565\u8be5\u8282\u70b9\u3002"},

-

-    { WG_STYLESHEET_REQUIRES_VERSION_ATTRIB,

-      "xsl:stylesheet \u9700\u8981\u201cversion\u201d\u5c5e\u6027\uff01"},

-

-    { WG_ILLEGAL_ATTRIBUTE_NAME,

-      "\u975e\u6cd5\u5c5e\u6027\u540d\u79f0\uff1a{0}"},

-

-    { WG_ILLEGAL_ATTRIBUTE_VALUE,

-      "\u7528\u4e8e\u5c5e\u6027 {0} \u7684\u503c\u975e\u6cd5\uff1a{1}"},

-

-    { WG_EMPTY_SECOND_ARG,

-      "\u4ece\u6587\u6863\u51fd\u6570\u7684\u7b2c\u4e8c\u53c2\u6570\u4ea7\u751f\u7684\u8282\u70b9\u96c6\u662f\u7a7a\u7684\u3002\u8fd4\u56de\u4e00\u4e2a\u7a7a\u8282\u70b9\u96c6\u3002"},

-

-  //Following are the new WARNING keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)

-

-    // Note to translators:  "name" and "xsl:processing-instruction" are keywords

-    // and must not be translated.

-    { WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,

-      "xsl:processing-instruction \u540d\u79f0\u7684\u201cname\u201d\u5c5e\u6027\u7684\u503c\u4e0d\u5f97\u4e3a\u201cxml\u201d"},

-

-    // Note to translators:  "name" and "xsl:processing-instruction" are keywords

-    // and must not be translated.  "NCName" is an XML data-type and must not be

-    // translated.

-    { WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,

-      "xsl:processing-instruction \u7684\u201cname\u201d\u5c5e\u6027\u7684\u503c\u5fc5\u987b\u662f\u6709\u6548\u7684 NCName\uff1a{0}"},

-

-    // Note to translators:  This message is reported if the stylesheet that is

-    // being processed attempted to construct an XML document with an attribute in a

-    // place other than on an element.  The substitution text specifies the name of

-    // the attribute.

-    { WG_ILLEGAL_ATTRIBUTE_POSITION,

-      "\u5728\u751f\u6210\u5b50\u8282\u70b9\u4e4b\u540e\u6216\u5728\u751f\u6210\u5143\u7d20\u4e4b\u524d\u65e0\u6cd5\u6dfb\u52a0\u5c5e\u6027 {0}\u3002\u5c06\u5ffd\u7565\u5c5e\u6027\u3002"},

-

-    { NO_MODIFICATION_ALLOWED_ERR,

-      "\u8bd5\u56fe\u4fee\u6539\u4e0d\u5141\u8bb8\u4fee\u6539\u7684\u5bf9\u8c61\u3002"

-    },

-

-    //Check: WHY THERE IS A GAP B/W NUMBERS in the XSLTErrorResources properties file?

-

-  // Other miscellaneous text used inside the code...

-  { "ui_language", "zh"},

-  {  "help_language",  "zh" },

-  {  "language",  "zh" },

-  { "BAD_CODE", "createMessage \u7684\u53c2\u6570\u8d85\u51fa\u8303\u56f4"},

-  {  "FORMAT_FAILED", "\u5728 messageFormat \u8c03\u7528\u8fc7\u7a0b\u4e2d\u629b\u51fa\u4e86\u5f02\u5e38"},

-  {  "version", ">>>>>>> Xalan \u7248\u672c"},

-  {  "version2",  "<<<<<<<"},

-  {  "yes", "\u662f"},

-  { "line", "\u884c\u53f7"},

-  { "column","\u5217\u53f7"},

-  { "xsldone", "XSLProcessor\uff1a\u5b8c\u6210"},

-

-

-  // Note to translators:  The following messages provide usage information

-  // for the Xalan Process command line.  "Process" is the name of a Java class,

-  // and should not be translated.

-  { "xslProc_option", "Xalan-J \u547d\u4ee4\u884c Process \u7c7b\u9009\u9879\uff1a"},

-  { "xslProc_option", "Xalan-J \u547d\u4ee4\u884c Process \u7c7b\u9009\u9879\uff1a"},

-  { "xslProc_invalid_xsltc_option", "\u5728 XSLTC \u65b9\u5f0f\u4e2d\uff0c\u4e0d\u652f\u6301\u9009\u9879 {0}\u3002"},

-  { "xslProc_invalid_xalan_option", "\u9009\u9879 {0} \u53ea\u80fd\u4e0e -XSLTC \u4e00\u8d77\u4f7f\u7528\u3002"},

-  { "xslProc_no_input", "\u9519\u8bef\uff1a\u6ca1\u6709\u6307\u5b9a\u6837\u5f0f\u8868\u6216\u8f93\u5165 xml\u3002\u4e0d\u5e26\u4efb\u4f55\u9009\u9879\u8fd0\u884c\u6b64\u547d\u4ee4\uff0c\u4ee5\u4e86\u89e3\u4f7f\u7528\u8bf4\u660e\u3002"},

-  { "xslProc_common_options", "\uff0d \u5e38\u7528\u9009\u9879 \uff0d"},

-  { "xslProc_xalan_options", "\u2015 Xalan \u9009\u9879 \u2015"},

-  { "xslProc_xsltc_options", "\u2015 XSLTC \u9009\u9879 \u2015"},

-  { "xslProc_return_to_continue", "\uff08\u8bf7\u6309 <return> \u952e\u7ee7\u7eed\uff09"},

-

-   // Note to translators: The option name and the parameter name do not need to

-   // be translated. Only translate the messages in parentheses.  Note also that

-   // leading whitespace in the messages is used to indent the usage information

-   // for each option in the English messages.

-   // Do not translate the keywords: XSLTC, SAX, DOM and DTM.

-  { "optionXSLTC", "   [-XSLTC \uff08\u4f7f\u7528 XSLTC \u8f6c\u6362\uff09]"},

-  { "optionIN", "   [-IN inputXMLURL]"},

-  { "optionXSL", "[-XSL XSLTransformationURL]"},

-  { "optionOUT",  "[-OUT outputFileName]"},

-  { "optionLXCIN", "[-LXCIN compiledStylesheetFileNameIn]"},

-  { "optionLXCOUT", "[-LXCOUT compiledStylesheetFileNameOutOut]"},

-  { "optionPARSER", "   [-PARSER fully qualified class name of parser liaison]"},

-  {  "optionE", "[-E \uff08\u4e0d\u8981\u5c55\u5f00\u5b9e\u4f53\u5f15\u7528\uff09]"},

-  {  "optionV",  "[-E \uff08\u4e0d\u8981\u5c55\u5f00\u5b9e\u4f53\u5f15\u7528\uff09]"},

-  {  "optionQC", "[-QC \uff08\u9759\u9ed8\u6a21\u5f0f\u51b2\u7a81\u8b66\u544a\uff09]"},

-  {  "optionQ", "[-Q \uff08\u9759\u9ed8\u65b9\u5f0f\uff09]"},

-  {  "optionLF", "[-LF \uff08\u4ec5\u5728\u8f93\u51fa\u65f6\u4f7f\u7528\u6362\u884c {\u7f3a\u7701\u503c\u662f CR/LF}\uff09]"},

-  {  "optionCR", "[-CR \uff08\u4ec5\u5728\u8f93\u51fa\u65f6\u4f7f\u7528\u56de\u8f66\u7b26 {\u7f3a\u7701\u503c\u662f CR/LF}\uff09]"},

-  { "optionESCAPE", "[-ESCAPE \uff08\u8bbe\u7f6e\u8f6c\u4e49\u5b57\u7b26 {\u7f3a\u7701\u503c\u662f <>&\"\'\\r\\n}\uff09]"},

-  { "optionINDENT", "[-INDENT \uff08\u63a7\u5236\u7f29\u8fdb\u591a\u5c11\u7a7a\u683c {\u7f3a\u7701\u503c\u662f 0}\uff09]"},

-  { "optionTT", "[-TT \uff08\u5728\u6a21\u677f\u88ab\u8c03\u7528\u65f6\u8ddf\u8e2a\u6a21\u677f\u3002\uff09]"},

-  { "optionTG", "[-TG \uff08\u8ddf\u8e2a\u6bcf\u4e00\u4e2a\u751f\u6210\u4e8b\u4ef6\u3002\uff09]"},

-  { "optionTS", "[-TS \uff08\u8ddf\u8e2a\u6bcf\u4e00\u4e2a\u9009\u62e9\u4e8b\u4ef6\u3002\uff09]"},

-  {  "optionTTC", "[-TTC \uff08\u5728\u5b50\u6a21\u677f\u88ab\u5904\u7406\u65f6\u5bf9\u5176\u8fdb\u884c\u8ddf\u8e2a\u3002\uff09]"},

-  { "optionTCLASS", "[-TCLASS \uff08\u8ddf\u8e2a\u6269\u5c55\u7684 TraceListener \u7c7b\u3002\uff09]"},

-  { "optionVALIDATE", "[-VALIDATE \uff08\u8bbe\u7f6e\u662f\u5426\u8fdb\u884c\u9a8c\u8bc1\u3002\u7f3a\u7701\u65f6\u9a8c\u8bc1\u662f\u5173\u95ed\u7684\u3002\uff09]"},

-  { "optionEDUMP", "[-EDUMP {\u53ef\u9009\u6587\u4ef6\u540d} \uff08\u53d1\u751f\u9519\u8bef\u65f6\u5806\u6808\u8f6c\u50a8\u3002\uff09]"},

-  {  "optionXML", "[-XML \uff08\u4f7f\u7528 XML \u683c\u5f0f\u5316\u7a0b\u5e8f\u5e76\u6dfb\u52a0 XML \u5934\u3002\uff09]"},

-  {  "optionTEXT", "[-TEXT \uff08\u4f7f\u7528\u7b80\u5355\u6587\u672c\u683c\u5f0f\u5316\u7a0b\u5e8f\u3002\uff09]"},

-  {  "optionHTML", "[-HTML \uff08\u4f7f\u7528 HTML \u683c\u5f0f\u5316\u7a0b\u5e8f\uff09]"},

-  {  "optionPARAM", "[-PARAM name expression \uff08\u8bbe\u7f6e\u6837\u8bc6\u8868\u53c2\u6570\uff09]"},

-  {  "noParsermsg1", "XSL \u5904\u7406\u4e0d\u6210\u529f\u3002"},

-  {  "noParsermsg2", "** \u627e\u4e0d\u5230\u89e3\u6790\u5668 **"},

-  { "noParsermsg3",  "\u8bf7\u68c0\u67e5\u60a8\u7684\u7c7b\u8def\u5f84\u3002"},

-  { "noParsermsg4", "\u5982\u679c\u6ca1\u6709 IBM \u7684 XML Parser for Java\uff0c\u60a8\u53ef\u4ee5\u4ece\u4ee5\u4e0b\u4f4d\u7f6e\u4e0b\u8f7d\u5b83\uff1a"},

-  { "noParsermsg5", "IBM \u7684 AlphaWorks\uff1ahttp://www.alphaworks.ibm.com/formula/xml"},

-  { "optionURIRESOLVER", "[-URIRESOLVER full class name \uff08\u4f7f\u7528 URIResolver \u89e3\u6790 URI\uff09]"},

-  { "optionENTITYRESOLVER",  "[-ENTITYRESOLVER full class name \uff08\u4f7f\u7528 EntityResolver \u89e3\u6790\u5b9e\u4f53\uff09]"},

-  { "optionCONTENTHANDLER",  "[-CONTENTHANDLER full class name \uff08\u4f7f\u7528 ContentHandler \u4e32\u884c\u5316\u8f93\u51fa\uff09]"},

-  {  "optionLINENUMBERS",  "[-L use line numbers for source document]"},

-  { "optionSECUREPROCESSING", "   [-SECURE \uff08\u5c06\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true\u3002\uff09]"},

-

-    // Following are the new options added in XSLTErrorResources.properties files after Jdk 1.4 (Xalan 2.2-D11)

-

-

-  {  "optionMEDIA",  "   [-MEDIA mediaType \uff08\u4f7f\u7528 media \u5c5e\u6027\u67e5\u627e\u4e0e\u6587\u6863\u5173\u8054\u7684\u6837\u5f0f\u8868\u3002\uff09]"},

-  {  "optionFLAVOR",  "   [-FLAVOR flavorName \uff08\u663e\u5f0f\u4f7f\u7528 s2s=SAX \u6216 d2d=DOM \u8fdb\u884c\u8f6c\u6362\u3002\uff09]"}, // Added by sboag/scurcuru; experimental

-  { "optionDIAG", "[-DIAG \uff08\u6253\u5370\u5168\u90e8\u6beb\u79d2\u8f6c\u6362\u6807\u8bb0\u3002\uff09]"},

-  { "optionINCREMENTAL",  "   [-INCREMENTAL \uff08\u901a\u8fc7\u5c06 http://xml.apache.org/xalan/features/incremental \u8bbe\u7f6e\u4e3a true \u8bf7\u6c42\u589e\u91cf DTM \u6784\u9020\u3002\uff09]"},

-  {  "optionNOOPTIMIMIZE",  "   [-NOOPTIMIMIZE \uff08\u901a\u8fc7\u5c06 http://xml.apache.org/xalan/features/optimize \u8bbe\u7f6e\u4e3a false \u8bf7\u6c42\u65e0\u6837\u5f0f\u8868\u7684\u4f18\u5316\u5904\u7406\u3002\uff09]"},

-  { "optionRL",  "   [-RL recursionlimit \uff08\u65ad\u8a00\u6837\u5f0f\u8868\u9012\u5f52\u6df1\u5ea6\u7684\u6570\u5b57\u6781\u9650\u3002\uff09]"},

-  {   "optionXO",  "[-XO [transletName] \uff08\u65ad\u8a00\u751f\u6210\u7684 translet \u7684\u540d\u79f0\uff09]"},

-  {  "optionXD", "[-XD destinationDirectory \uff08\u6307\u5b9a translet \u7684\u76ee\u6807\u76ee\u5f55\uff09]"},

-  {  "optionXJ",  "[-XJ jarfile \uff08\u5c06 translet \u7c7b\u6253\u5305\u6210\u540d\u79f0\u4e3a <jarfile> \u7684 jar \u6587\u4ef6\uff09]"},

-  {   "optionXP",  "[-XP package \uff08\u6307\u51fa\u6240\u6709\u751f\u6210\u7684 translet \u7c7b\u7684\u8f6f\u4ef6\u5305\u540d\u79f0\u524d\u7f00\uff09]"},

-

-  //AddITIONAL  STRINGS that need L10n

-  // Note to translators:  The following message describes usage of a particular

-  // command-line option that is used to enable the "template inlining"

-  // optimization.  The optimization involves making a copy of the code

-  // generated for a template in another template that refers to it.

-  { "optionXN",  "[-XN \uff08\u542f\u7528\u6a21\u677f\u4ee3\u7801\u5d4c\u5165\uff09]" },

-  { "optionXX",  "[-XX \uff08\u6253\u5f00\u9644\u52a0\u8c03\u8bd5\u6d88\u606f\u8f93\u51fa\uff09]"},

-  { "optionXT" , "[-XT \uff08\u53ef\u80fd\u7684\u8bdd\u4f7f\u7528 translet \u8fdb\u884c\u8f6c\u6362\uff09]"},

-  { "diagTiming","--------- {0} \u901a\u8fc7 {1} \u7684\u8f6c\u6362\u8017\u65f6 {2} \u6beb\u79d2" },

-  { "recursionTooDeep","\u6a21\u677f\u5d4c\u5957\u592a\u6df1\u3002\u5d4c\u5957 = {0}\uff0c\u6a21\u677f {1} {2}" },

-  { "nameIs", "\u540d\u79f0\u4e3a" },

-  { "matchPatternIs", "\u5339\u914d\u6a21\u5f0f\u4e3a" }

-

-  };

-  }

-  // ================= INFRASTRUCTURE ======================

-

-  /** String for use when a bad error code was encountered.    */

-  public static final String BAD_CODE = "BAD_CODE";

-

-  /** String for use when formatting of the error string failed.   */

-  public static final String FORMAT_FAILED = "FORMAT_FAILED";

-

-  /** General error string.   */

-  public static final String ERROR_STRING = "#\u9519\u8bef";

-

-  /** String to prepend to error messages.  */

-  public static final String ERROR_HEADER = "\u9519\u8bef\uff1a";

-

-  /** String to prepend to warning messages.    */

-  public static final String WARNING_HEADER = "\u8b66\u544a\uff1a";

-

-  /** String to specify the XSLT module.  */

-  public static final String XSL_HEADER = "XSLT ";

-

-  /** String to specify the XML parser module.  */

-  public static final String XML_HEADER = "XML ";

-

-  /** I don't think this is used any more.

-   * @deprecated  */

-  public static final String QUERY_HEADER = "PATTERN ";

-

-

-  /**

-   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior

-   *   of ResourceBundle.getBundle().

-   *

-   *   @param className the name of the class that implements the resource bundle.

-   *   @return the ResourceBundle

-   *   @throws MissingResourceException

-   */

-  public static final XSLTErrorResources loadResourceBundle(String className)

-          throws MissingResourceException

-  {

-

-    Locale locale = Locale.getDefault();

-    String suffix = getResourceSuffix(locale);

-

-    try

-    {

-

-      // first try with the given locale

-      return (XSLTErrorResources) ResourceBundle.getBundle(className

-              + suffix, locale);

-    }

-    catch (MissingResourceException e)

-    {

-      try  // try to fall back to en_US if we can't load

-      {

-

-        // Since we can't find the localized property file,

-        // fall back to en_US.

-        return (XSLTErrorResources) ResourceBundle.getBundle(className,

-                new Locale("zh", "CN"));

-      }

-      catch (MissingResourceException e2)

-      {

-

-        // Now we are really in trouble.

-        // very bad, definitely very bad...not going to get very far

-        throw new MissingResourceException(

-          "Could not load any resource bundles.", className, "");

-      }

-    }

-  }

-

-  /**

-   * Return the resource file suffic for the indicated locale

-   * For most locales, this will be based the language code.  However

-   * for Chinese, we do distinguish between Taiwan and PRC

-   *

-   * @param locale the locale

-   * @return an String suffix which canbe appended to a resource name

-   */

-  private static final String getResourceSuffix(Locale locale)

-  {

-

-    String suffix = "_" + locale.getLanguage();

-    String country = locale.getCountry();

-

-    if (country.equals("TW"))

-      suffix += "_" + country;

-

-    return suffix;

-  }

-

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.res;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Set up error messages.
+ * We build a two dimensional array of message keys and
+ * message strings. In order to add a new message here,
+ * you need to first add a String constant. And
+ *  you need to enter key , value pair as part of contents
+ * Array. You also need to update MAX_CODE for error strings
+ * and MAX_WARNING for warnings ( Needed for only information
+ * purpose )
+ */
+public class XSLTErrorResources_zh extends ListResourceBundle
+{
+
+/*
+ * This file contains error and warning messages related to Xalan Error
+ * Handling.
+ *
+ *  General notes to translators:
+ *
+ *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
+ *     components.
+ *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *     XSLTC is an acronym for XSLT Compiler.
+ *
+ *  2) A stylesheet is a description of how to transform an input XML document
+ *     into a resultant XML document (or HTML document or text).  The
+ *     stylesheet itself is described in the form of an XML document.
+ *
+ *  3) A template is a component of a stylesheet that is used to match a
+ *     particular portion of an input document and specifies the form of the
+ *     corresponding portion of the output document.
+ *
+ *  4) An element is a mark-up tag in an XML document; an attribute is a
+ *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *     "elem" is an element name, "attr" and "attr2" are attribute names with
+ *     the values "val" and "val2", respectively.
+ *
+ *  5) A namespace declaration is a special attribute that is used to associate
+ *     a prefix with a URI (the namespace).  The meanings of element names and
+ *     attribute names that use that prefix are defined with respect to that
+ *     namespace.
+ *
+ *  6) "Translet" is an invented term that describes the class file that
+ *     results from compiling an XML stylesheet into a Java class.
+ *
+ *  7) XPath is a specification that describes a notation for identifying
+ *     nodes in a tree-structured representation of an XML document.  An
+ *     instance of that notation is referred to as an XPath expression.
+ *
+ */
+
+  /** Maximum error messages, this is needed to keep track of the number of messages.    */
+  public static final int MAX_CODE = 201;
+
+  /** Maximum warnings, this is needed to keep track of the number of warnings.          */
+  public static final int MAX_WARNING = 29;
+
+  /** Maximum misc strings.   */
+  public static final int MAX_OTHERS = 55;
+
+  /** Maximum total warnings and error messages.          */
+  public static final int MAX_MESSAGES = MAX_CODE + MAX_WARNING + 1;
+
+
+  /*
+   * Static variables
+   */
+  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX =
+        "ER_INVALID_SET_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX";
+
+  public static final String ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT =
+        "ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT";
+
+  public static final String ER_NO_CURLYBRACE = "ER_NO_CURLYBRACE";
+  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";
+  public static final String ER_ILLEGAL_ATTRIBUTE = "ER_ILLEGAL_ATTRIBUTE";
+  public static final String ER_NULL_SOURCENODE_APPLYIMPORTS = "ER_NULL_SOURCENODE_APPLYIMPORTS";
+  public static final String ER_CANNOT_ADD = "ER_CANNOT_ADD";
+  public static final String ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES="ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES";
+  public static final String ER_NO_NAME_ATTRIB = "ER_NO_NAME_ATTRIB";
+  public static final String ER_TEMPLATE_NOT_FOUND = "ER_TEMPLATE_NOT_FOUND";
+  public static final String ER_CANT_RESOLVE_NAME_AVT = "ER_CANT_RESOLVE_NAME_AVT";
+  public static final String ER_REQUIRES_ATTRIB = "ER_REQUIRES_ATTRIB";
+  public static final String ER_MUST_HAVE_TEST_ATTRIB = "ER_MUST_HAVE_TEST_ATTRIB";
+  public static final String ER_BAD_VAL_ON_LEVEL_ATTRIB =
+         "ER_BAD_VAL_ON_LEVEL_ATTRIB";
+  public static final String ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =
+         "ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";
+  public static final String ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =
+         "ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";
+  public static final String ER_NEED_MATCH_ATTRIB = "ER_NEED_MATCH_ATTRIB";
+  public static final String ER_NEED_NAME_OR_MATCH_ATTRIB =
+         "ER_NEED_NAME_OR_MATCH_ATTRIB";
+  public static final String ER_CANT_RESOLVE_NSPREFIX =
+         "ER_CANT_RESOLVE_NSPREFIX";
+  public static final String ER_ILLEGAL_VALUE = "ER_ILLEGAL_VALUE";
+  public static final String ER_NO_OWNERDOC = "ER_NO_OWNERDOC";
+  public static final String ER_ELEMTEMPLATEELEM_ERR ="ER_ELEMTEMPLATEELEM_ERR";
+  public static final String ER_NULL_CHILD = "ER_NULL_CHILD";
+  public static final String ER_NEED_SELECT_ATTRIB = "ER_NEED_SELECT_ATTRIB";
+  public static final String ER_NEED_TEST_ATTRIB = "ER_NEED_TEST_ATTRIB";
+  public static final String ER_NEED_NAME_ATTRIB = "ER_NEED_NAME_ATTRIB";
+  public static final String ER_NO_CONTEXT_OWNERDOC = "ER_NO_CONTEXT_OWNERDOC";
+  public static final String ER_COULD_NOT_CREATE_XML_PROC_LIAISON =
+         "ER_COULD_NOT_CREATE_XML_PROC_LIAISON";
+  public static final String ER_PROCESS_NOT_SUCCESSFUL =
+         "ER_PROCESS_NOT_SUCCESSFUL";
+  public static final String ER_NOT_SUCCESSFUL = "ER_NOT_SUCCESSFUL";
+  public static final String ER_ENCODING_NOT_SUPPORTED =
+         "ER_ENCODING_NOT_SUPPORTED";
+  public static final String ER_COULD_NOT_CREATE_TRACELISTENER =
+         "ER_COULD_NOT_CREATE_TRACELISTENER";
+  public static final String ER_KEY_REQUIRES_NAME_ATTRIB =
+         "ER_KEY_REQUIRES_NAME_ATTRIB";
+  public static final String ER_KEY_REQUIRES_MATCH_ATTRIB =
+         "ER_KEY_REQUIRES_MATCH_ATTRIB";
+  public static final String ER_KEY_REQUIRES_USE_ATTRIB =
+         "ER_KEY_REQUIRES_USE_ATTRIB";
+  public static final String ER_REQUIRES_ELEMENTS_ATTRIB =
+         "ER_REQUIRES_ELEMENTS_ATTRIB";
+  public static final String ER_MISSING_PREFIX_ATTRIB =
+         "ER_MISSING_PREFIX_ATTRIB";
+  public static final String ER_BAD_STYLESHEET_URL = "ER_BAD_STYLESHEET_URL";
+  public static final String ER_FILE_NOT_FOUND = "ER_FILE_NOT_FOUND";
+  public static final String ER_IOEXCEPTION = "ER_IOEXCEPTION";
+  public static final String ER_NO_HREF_ATTRIB = "ER_NO_HREF_ATTRIB";
+  public static final String ER_STYLESHEET_INCLUDES_ITSELF =
+         "ER_STYLESHEET_INCLUDES_ITSELF";
+  public static final String ER_PROCESSINCLUDE_ERROR ="ER_PROCESSINCLUDE_ERROR";
+  public static final String ER_MISSING_LANG_ATTRIB = "ER_MISSING_LANG_ATTRIB";
+  public static final String ER_MISSING_CONTAINER_ELEMENT_COMPONENT =
+         "ER_MISSING_CONTAINER_ELEMENT_COMPONENT";
+  public static final String ER_CAN_ONLY_OUTPUT_TO_ELEMENT =
+         "ER_CAN_ONLY_OUTPUT_TO_ELEMENT";
+  public static final String ER_PROCESS_ERROR = "ER_PROCESS_ERROR";
+  public static final String ER_UNIMPLNODE_ERROR = "ER_UNIMPLNODE_ERROR";
+  public static final String ER_NO_SELECT_EXPRESSION ="ER_NO_SELECT_EXPRESSION";
+  public static final String ER_CANNOT_SERIALIZE_XSLPROCESSOR =
+         "ER_CANNOT_SERIALIZE_XSLPROCESSOR";
+  public static final String ER_NO_INPUT_STYLESHEET = "ER_NO_INPUT_STYLESHEET";
+  public static final String ER_FAILED_PROCESS_STYLESHEET =
+         "ER_FAILED_PROCESS_STYLESHEET";
+  public static final String ER_COULDNT_PARSE_DOC = "ER_COULDNT_PARSE_DOC";
+  public static final String ER_COULDNT_FIND_FRAGMENT =
+         "ER_COULDNT_FIND_FRAGMENT";
+  public static final String ER_NODE_NOT_ELEMENT = "ER_NODE_NOT_ELEMENT";
+  public static final String ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB =
+         "ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB";
+  public static final String ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB =
+         "ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB";
+  public static final String ER_NO_CLONE_OF_DOCUMENT_FRAG =
+         "ER_NO_CLONE_OF_DOCUMENT_FRAG";
+  public static final String ER_CANT_CREATE_ITEM = "ER_CANT_CREATE_ITEM";
+  public static final String ER_XMLSPACE_ILLEGAL_VALUE =
+         "ER_XMLSPACE_ILLEGAL_VALUE";
+  public static final String ER_NO_XSLKEY_DECLARATION =
+         "ER_NO_XSLKEY_DECLARATION";
+  public static final String ER_CANT_CREATE_URL = "ER_CANT_CREATE_URL";
+  public static final String ER_XSLFUNCTIONS_UNSUPPORTED =
+         "ER_XSLFUNCTIONS_UNSUPPORTED";
+  public static final String ER_PROCESSOR_ERROR = "ER_PROCESSOR_ERROR";
+  public static final String ER_NOT_ALLOWED_INSIDE_STYLESHEET =
+         "ER_NOT_ALLOWED_INSIDE_STYLESHEET";
+  public static final String ER_RESULTNS_NOT_SUPPORTED =
+         "ER_RESULTNS_NOT_SUPPORTED";
+  public static final String ER_DEFAULTSPACE_NOT_SUPPORTED =
+         "ER_DEFAULTSPACE_NOT_SUPPORTED";
+  public static final String ER_INDENTRESULT_NOT_SUPPORTED =
+         "ER_INDENTRESULT_NOT_SUPPORTED";
+  public static final String ER_ILLEGAL_ATTRIB = "ER_ILLEGAL_ATTRIB";
+  public static final String ER_UNKNOWN_XSL_ELEM = "ER_UNKNOWN_XSL_ELEM";
+  public static final String ER_BAD_XSLSORT_USE = "ER_BAD_XSLSORT_USE";
+  public static final String ER_MISPLACED_XSLWHEN = "ER_MISPLACED_XSLWHEN";
+  public static final String ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE =
+         "ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE";
+  public static final String ER_MISPLACED_XSLOTHERWISE =
+         "ER_MISPLACED_XSLOTHERWISE";
+  public static final String ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE =
+         "ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE";
+  public static final String ER_NOT_ALLOWED_INSIDE_TEMPLATE =
+         "ER_NOT_ALLOWED_INSIDE_TEMPLATE";
+  public static final String ER_UNKNOWN_EXT_NS_PREFIX =
+         "ER_UNKNOWN_EXT_NS_PREFIX";
+  public static final String ER_IMPORTS_AS_FIRST_ELEM =
+         "ER_IMPORTS_AS_FIRST_ELEM";
+  public static final String ER_IMPORTING_ITSELF = "ER_IMPORTING_ITSELF";
+  public static final String ER_XMLSPACE_ILLEGAL_VAL ="ER_XMLSPACE_ILLEGAL_VAL";
+  public static final String ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL =
+         "ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL";
+  public static final String ER_SAX_EXCEPTION = "ER_SAX_EXCEPTION";
+  public static final String ER_XSLT_ERROR = "ER_XSLT_ERROR";
+  public static final String ER_CURRENCY_SIGN_ILLEGAL=
+         "ER_CURRENCY_SIGN_ILLEGAL";
+  public static final String ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM =
+         "ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM";
+  public static final String ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER =
+         "ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER";
+  public static final String ER_REDIRECT_COULDNT_GET_FILENAME =
+         "ER_REDIRECT_COULDNT_GET_FILENAME";
+  public static final String ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT =
+         "ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT";
+  public static final String ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX =
+         "ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX";
+  public static final String ER_MISSING_NS_URI = "ER_MISSING_NS_URI";
+  public static final String ER_MISSING_ARG_FOR_OPTION =
+         "ER_MISSING_ARG_FOR_OPTION";
+  public static final String ER_INVALID_OPTION = "ER_INVALID_OPTION";
+  public static final String ER_MALFORMED_FORMAT_STRING =
+         "ER_MALFORMED_FORMAT_STRING";
+  public static final String ER_STYLESHEET_REQUIRES_VERSION_ATTRIB =
+         "ER_STYLESHEET_REQUIRES_VERSION_ATTRIB";
+  public static final String ER_ILLEGAL_ATTRIBUTE_VALUE =
+         "ER_ILLEGAL_ATTRIBUTE_VALUE";
+  public static final String ER_CHOOSE_REQUIRES_WHEN ="ER_CHOOSE_REQUIRES_WHEN";
+  public static final String ER_NO_APPLY_IMPORT_IN_FOR_EACH =
+         "ER_NO_APPLY_IMPORT_IN_FOR_EACH";
+  public static final String ER_CANT_USE_DTM_FOR_OUTPUT =
+         "ER_CANT_USE_DTM_FOR_OUTPUT";
+  public static final String ER_CANT_USE_DTM_FOR_INPUT =
+         "ER_CANT_USE_DTM_FOR_INPUT";
+  public static final String ER_CALL_TO_EXT_FAILED = "ER_CALL_TO_EXT_FAILED";
+  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
+  public static final String ER_INVALID_UTF16_SURROGATE =
+         "ER_INVALID_UTF16_SURROGATE";
+  public static final String ER_XSLATTRSET_USED_ITSELF =
+         "ER_XSLATTRSET_USED_ITSELF";
+  public static final String ER_CANNOT_MIX_XERCESDOM ="ER_CANNOT_MIX_XERCESDOM";
+  public static final String ER_TOO_MANY_LISTENERS = "ER_TOO_MANY_LISTENERS";
+  public static final String ER_IN_ELEMTEMPLATEELEM_READOBJECT =
+         "ER_IN_ELEMTEMPLATEELEM_READOBJECT";
+  public static final String ER_DUPLICATE_NAMED_TEMPLATE =
+         "ER_DUPLICATE_NAMED_TEMPLATE";
+  public static final String ER_INVALID_KEY_CALL = "ER_INVALID_KEY_CALL";
+  public static final String ER_REFERENCING_ITSELF = "ER_REFERENCING_ITSELF";
+  public static final String ER_ILLEGAL_DOMSOURCE_INPUT =
+         "ER_ILLEGAL_DOMSOURCE_INPUT";
+  public static final String ER_CLASS_NOT_FOUND_FOR_OPTION =
+         "ER_CLASS_NOT_FOUND_FOR_OPTION";
+  public static final String ER_REQUIRED_ELEM_NOT_FOUND =
+         "ER_REQUIRED_ELEM_NOT_FOUND";
+  public static final String ER_INPUT_CANNOT_BE_NULL ="ER_INPUT_CANNOT_BE_NULL";
+  public static final String ER_URI_CANNOT_BE_NULL = "ER_URI_CANNOT_BE_NULL";
+  public static final String ER_FILE_CANNOT_BE_NULL = "ER_FILE_CANNOT_BE_NULL";
+  public static final String ER_SOURCE_CANNOT_BE_NULL =
+         "ER_SOURCE_CANNOT_BE_NULL";
+  public static final String ER_CANNOT_INIT_BSFMGR = "ER_CANNOT_INIT_BSFMGR";
+  public static final String ER_CANNOT_CMPL_EXTENSN = "ER_CANNOT_CMPL_EXTENSN";
+  public static final String ER_CANNOT_CREATE_EXTENSN =
+         "ER_CANNOT_CREATE_EXTENSN";
+  public static final String ER_INSTANCE_MTHD_CALL_REQUIRES =
+         "ER_INSTANCE_MTHD_CALL_REQUIRES";
+  public static final String ER_INVALID_ELEMENT_NAME ="ER_INVALID_ELEMENT_NAME";
+  public static final String ER_ELEMENT_NAME_METHOD_STATIC =
+         "ER_ELEMENT_NAME_METHOD_STATIC";
+  public static final String ER_EXTENSION_FUNC_UNKNOWN =
+         "ER_EXTENSION_FUNC_UNKNOWN";
+  public static final String ER_MORE_MATCH_CONSTRUCTOR =
+         "ER_MORE_MATCH_CONSTRUCTOR";
+  public static final String ER_MORE_MATCH_METHOD = "ER_MORE_MATCH_METHOD";
+  public static final String ER_MORE_MATCH_ELEMENT = "ER_MORE_MATCH_ELEMENT";
+  public static final String ER_INVALID_CONTEXT_PASSED =
+         "ER_INVALID_CONTEXT_PASSED";
+  public static final String ER_POOL_EXISTS = "ER_POOL_EXISTS";
+  public static final String ER_NO_DRIVER_NAME = "ER_NO_DRIVER_NAME";
+  public static final String ER_NO_URL = "ER_NO_URL";
+  public static final String ER_POOL_SIZE_LESSTHAN_ONE =
+         "ER_POOL_SIZE_LESSTHAN_ONE";
+  public static final String ER_INVALID_DRIVER = "ER_INVALID_DRIVER";
+  public static final String ER_NO_STYLESHEETROOT = "ER_NO_STYLESHEETROOT";
+  public static final String ER_ILLEGAL_XMLSPACE_VALUE =
+         "ER_ILLEGAL_XMLSPACE_VALUE";
+  public static final String ER_PROCESSFROMNODE_FAILED =
+         "ER_PROCESSFROMNODE_FAILED";
+  public static final String ER_RESOURCE_COULD_NOT_LOAD =
+         "ER_RESOURCE_COULD_NOT_LOAD";
+  public static final String ER_BUFFER_SIZE_LESSTHAN_ZERO =
+         "ER_BUFFER_SIZE_LESSTHAN_ZERO";
+  public static final String ER_UNKNOWN_ERROR_CALLING_EXTENSION =
+         "ER_UNKNOWN_ERROR_CALLING_EXTENSION";
+  public static final String ER_NO_NAMESPACE_DECL = "ER_NO_NAMESPACE_DECL";
+  public static final String ER_ELEM_CONTENT_NOT_ALLOWED =
+         "ER_ELEM_CONTENT_NOT_ALLOWED";
+  public static final String ER_STYLESHEET_DIRECTED_TERMINATION =
+         "ER_STYLESHEET_DIRECTED_TERMINATION";
+  public static final String ER_ONE_OR_TWO = "ER_ONE_OR_TWO";
+  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";
+  public static final String ER_COULD_NOT_LOAD_RESOURCE =
+         "ER_COULD_NOT_LOAD_RESOURCE";
+  public static final String ER_CANNOT_INIT_DEFAULT_TEMPLATES =
+         "ER_CANNOT_INIT_DEFAULT_TEMPLATES";
+  public static final String ER_RESULT_NULL = "ER_RESULT_NULL";
+  public static final String ER_RESULT_COULD_NOT_BE_SET =
+         "ER_RESULT_COULD_NOT_BE_SET";
+  public static final String ER_NO_OUTPUT_SPECIFIED = "ER_NO_OUTPUT_SPECIFIED";
+  public static final String ER_CANNOT_TRANSFORM_TO_RESULT_TYPE =
+         "ER_CANNOT_TRANSFORM_TO_RESULT_TYPE";
+  public static final String ER_CANNOT_TRANSFORM_SOURCE_TYPE =
+         "ER_CANNOT_TRANSFORM_SOURCE_TYPE";
+  public static final String ER_NULL_CONTENT_HANDLER ="ER_NULL_CONTENT_HANDLER";
+  public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";
+  public static final String ER_CANNOT_CALL_PARSE = "ER_CANNOT_CALL_PARSE";
+  public static final String ER_NO_PARENT_FOR_FILTER ="ER_NO_PARENT_FOR_FILTER";
+  public static final String ER_NO_STYLESHEET_IN_MEDIA =
+         "ER_NO_STYLESHEET_IN_MEDIA";
+  public static final String ER_NO_STYLESHEET_PI = "ER_NO_STYLESHEET_PI";
+  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";
+  public static final String ER_PROPERTY_VALUE_BOOLEAN =
+         "ER_PROPERTY_VALUE_BOOLEAN";
+  public static final String ER_COULD_NOT_FIND_EXTERN_SCRIPT =
+         "ER_COULD_NOT_FIND_EXTERN_SCRIPT";
+  public static final String ER_RESOURCE_COULD_NOT_FIND =
+         "ER_RESOURCE_COULD_NOT_FIND";
+  public static final String ER_OUTPUT_PROPERTY_NOT_RECOGNIZED =
+         "ER_OUTPUT_PROPERTY_NOT_RECOGNIZED";
+  public static final String ER_FAILED_CREATING_ELEMLITRSLT =
+         "ER_FAILED_CREATING_ELEMLITRSLT";
+  public static final String ER_VALUE_SHOULD_BE_NUMBER =
+         "ER_VALUE_SHOULD_BE_NUMBER";
+  public static final String ER_VALUE_SHOULD_EQUAL = "ER_VALUE_SHOULD_EQUAL";
+  public static final String ER_FAILED_CALLING_METHOD =
+         "ER_FAILED_CALLING_METHOD";
+  public static final String ER_FAILED_CREATING_ELEMTMPL =
+         "ER_FAILED_CREATING_ELEMTMPL";
+  public static final String ER_CHARS_NOT_ALLOWED = "ER_CHARS_NOT_ALLOWED";
+  public static final String ER_ATTR_NOT_ALLOWED = "ER_ATTR_NOT_ALLOWED";
+  public static final String ER_BAD_VALUE = "ER_BAD_VALUE";
+  public static final String ER_ATTRIB_VALUE_NOT_FOUND =
+         "ER_ATTRIB_VALUE_NOT_FOUND";
+  public static final String ER_ATTRIB_VALUE_NOT_RECOGNIZED =
+         "ER_ATTRIB_VALUE_NOT_RECOGNIZED";
+  public static final String ER_NULL_URI_NAMESPACE = "ER_NULL_URI_NAMESPACE";
+  public static final String ER_NUMBER_TOO_BIG = "ER_NUMBER_TOO_BIG";
+  public static final String  ER_CANNOT_FIND_SAX1_DRIVER =
+         "ER_CANNOT_FIND_SAX1_DRIVER";
+  public static final String  ER_SAX1_DRIVER_NOT_LOADED =
+         "ER_SAX1_DRIVER_NOT_LOADED";
+  public static final String  ER_SAX1_DRIVER_NOT_INSTANTIATED =
+         "ER_SAX1_DRIVER_NOT_INSTANTIATED" ;
+  public static final String ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER =
+         "ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER";
+  public static final String  ER_PARSER_PROPERTY_NOT_SPECIFIED =
+         "ER_PARSER_PROPERTY_NOT_SPECIFIED";
+  public static final String  ER_PARSER_ARG_CANNOT_BE_NULL =
+         "ER_PARSER_ARG_CANNOT_BE_NULL" ;
+  public static final String  ER_FEATURE = "ER_FEATURE";
+  public static final String ER_PROPERTY = "ER_PROPERTY" ;
+  public static final String ER_NULL_ENTITY_RESOLVER ="ER_NULL_ENTITY_RESOLVER";
+  public static final String  ER_NULL_DTD_HANDLER = "ER_NULL_DTD_HANDLER" ;
+  public static final String ER_NO_DRIVER_NAME_SPECIFIED =
+         "ER_NO_DRIVER_NAME_SPECIFIED";
+  public static final String ER_NO_URL_SPECIFIED = "ER_NO_URL_SPECIFIED";
+  public static final String ER_POOLSIZE_LESS_THAN_ONE =
+         "ER_POOLSIZE_LESS_THAN_ONE";
+  public static final String ER_INVALID_DRIVER_NAME = "ER_INVALID_DRIVER_NAME";
+  public static final String ER_ERRORLISTENER = "ER_ERRORLISTENER";
+  public static final String ER_ASSERT_NO_TEMPLATE_PARENT =
+         "ER_ASSERT_NO_TEMPLATE_PARENT";
+  public static final String ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR =
+         "ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR";
+  public static final String ER_NOT_ALLOWED_IN_POSITION =
+         "ER_NOT_ALLOWED_IN_POSITION";
+  public static final String ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION =
+         "ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION";
+  public static final String ER_NAMESPACE_CONTEXT_NULL_NAMESPACE =
+         "ER_NAMESPACE_CONTEXT_NULL_NAMESPACE";
+  public static final String ER_NAMESPACE_CONTEXT_NULL_PREFIX =
+         "ER_NAMESPACE_CONTEXT_NULL_PREFIX";
+  public static final String ER_XPATH_RESOLVER_NULL_QNAME =
+         "ER_XPATH_RESOLVER_NULL_QNAME";
+  public static final String ER_XPATH_RESOLVER_NEGATIVE_ARITY =
+         "ER_XPATH_RESOLVER_NEGATIVE_ARITY";
+  public static final String INVALID_TCHAR = "INVALID_TCHAR";
+  public static final String INVALID_QNAME = "INVALID_QNAME";
+  public static final String INVALID_ENUM = "INVALID_ENUM";
+  public static final String INVALID_NMTOKEN = "INVALID_NMTOKEN";
+  public static final String INVALID_NCNAME = "INVALID_NCNAME";
+  public static final String INVALID_BOOLEAN = "INVALID_BOOLEAN";
+  public static final String INVALID_NUMBER = "INVALID_NUMBER";
+  public static final String ER_ARG_LITERAL = "ER_ARG_LITERAL";
+  public static final String ER_DUPLICATE_GLOBAL_VAR ="ER_DUPLICATE_GLOBAL_VAR";
+  public static final String ER_DUPLICATE_VAR = "ER_DUPLICATE_VAR";
+  public static final String ER_TEMPLATE_NAME_MATCH = "ER_TEMPLATE_NAME_MATCH";
+  public static final String ER_INVALID_PREFIX = "ER_INVALID_PREFIX";
+  public static final String ER_NO_ATTRIB_SET = "ER_NO_ATTRIB_SET";
+  public static final String ER_FUNCTION_NOT_FOUND =
+         "ER_FUNCTION_NOT_FOUND";
+  public static final String ER_CANT_HAVE_CONTENT_AND_SELECT =
+     "ER_CANT_HAVE_CONTENT_AND_SELECT";
+  public static final String ER_INVALID_SET_PARAM_VALUE = "ER_INVALID_SET_PARAM_VALUE";
+  public static final String ER_SET_FEATURE_NULL_NAME =
+        "ER_SET_FEATURE_NULL_NAME";
+  public static final String ER_GET_FEATURE_NULL_NAME =
+        "ER_GET_FEATURE_NULL_NAME";
+  public static final String ER_UNSUPPORTED_FEATURE =
+        "ER_UNSUPPORTED_FEATURE";
+  public static final String ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING =
+        "ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING";
+
+  public static final String WG_FOUND_CURLYBRACE = "WG_FOUND_CURLYBRACE";
+  public static final String WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR =
+         "WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR";
+  public static final String WG_EXPR_ATTRIB_CHANGED_TO_SELECT =
+         "WG_EXPR_ATTRIB_CHANGED_TO_SELECT";
+  public static final String WG_NO_LOCALE_IN_FORMATNUMBER =
+         "WG_NO_LOCALE_IN_FORMATNUMBER";
+  public static final String WG_LOCALE_NOT_FOUND = "WG_LOCALE_NOT_FOUND";
+  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";
+  public static final String WG_CANNOT_LOAD_REQUESTED_DOC =
+         "WG_CANNOT_LOAD_REQUESTED_DOC";
+  public static final String WG_CANNOT_FIND_COLLATOR ="WG_CANNOT_FIND_COLLATOR";
+  public static final String WG_FUNCTIONS_SHOULD_USE_URL =
+         "WG_FUNCTIONS_SHOULD_USE_URL";
+  public static final String WG_ENCODING_NOT_SUPPORTED_USING_UTF8 =
+         "WG_ENCODING_NOT_SUPPORTED_USING_UTF8";
+  public static final String WG_ENCODING_NOT_SUPPORTED_USING_JAVA =
+         "WG_ENCODING_NOT_SUPPORTED_USING_JAVA";
+  public static final String WG_SPECIFICITY_CONFLICTS =
+         "WG_SPECIFICITY_CONFLICTS";
+  public static final String WG_PARSING_AND_PREPARING =
+         "WG_PARSING_AND_PREPARING";
+  public static final String WG_ATTR_TEMPLATE = "WG_ATTR_TEMPLATE";
+  public static final String WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE = "WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESP";
+  public static final String WG_ATTRIB_NOT_HANDLED = "WG_ATTRIB_NOT_HANDLED";
+  public static final String WG_NO_DECIMALFORMAT_DECLARATION =
+         "WG_NO_DECIMALFORMAT_DECLARATION";
+  public static final String WG_OLD_XSLT_NS = "WG_OLD_XSLT_NS";
+  public static final String WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED =
+         "WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED";
+  public static final String WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE =
+         "WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE";
+  public static final String WG_ILLEGAL_ATTRIBUTE = "WG_ILLEGAL_ATTRIBUTE";
+  public static final String WG_COULD_NOT_RESOLVE_PREFIX =
+         "WG_COULD_NOT_RESOLVE_PREFIX";
+  public static final String WG_STYLESHEET_REQUIRES_VERSION_ATTRIB =
+         "WG_STYLESHEET_REQUIRES_VERSION_ATTRIB";
+  public static final String WG_ILLEGAL_ATTRIBUTE_NAME =
+         "WG_ILLEGAL_ATTRIBUTE_NAME";
+  public static final String WG_ILLEGAL_ATTRIBUTE_VALUE =
+         "WG_ILLEGAL_ATTRIBUTE_VALUE";
+  public static final String WG_EMPTY_SECOND_ARG = "WG_EMPTY_SECOND_ARG";
+  public static final String WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML =
+         "WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML";
+  public static final String WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME =
+         "WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME";
+  public static final String WG_ILLEGAL_ATTRIBUTE_POSITION =
+         "WG_ILLEGAL_ATTRIBUTE_POSITION";
+  public static final String NO_MODIFICATION_ALLOWED_ERR =
+         "NO_MODIFICATION_ALLOWED_ERR";
+
+  /*
+   * Now fill in the message text.
+   * Then fill in the message text for that message code in the
+   * array. Use the new error code as the index into the array.
+   */
+
+  // Error messages...
+
+  /** Get the lookup table for error messages.
+   *
+   * @return The message lookup table.
+   */
+  public Object[][] getContents()
+  {
+    return new Object[][] {
+
+  /** Error message ID that has a null message, but takes in a single object.    */
+  {"ER0000" , "{0}" },
+
+
+    { ER_NO_CURLYBRACE,
+      "\u9519\u8bef\uff1a\u8868\u8fbe\u5f0f\u4e2d\u4e0d\u80fd\u6709\u201c{\u201d"},
+
+    { ER_ILLEGAL_ATTRIBUTE ,
+     "{0} \u6709\u4e00\u4e2a\u975e\u6cd5\u5c5e\u6027\uff1a{1}"},
+
+  {ER_NULL_SOURCENODE_APPLYIMPORTS ,
+      "sourceNode \u5728 xsl:apply-imports \u4e2d\u4e3a\u7a7a\uff01"},
+
+  {ER_CANNOT_ADD,
+      "\u65e0\u6cd5\u5c06\u201c{0}\u201d\u6dfb\u52a0\u5230\u201c{1}\u201d"},
+
+    { ER_NULL_SOURCENODE_HANDLEAPPLYTEMPLATES,
+      "sourceNode \u5728 handleApplyTemplatesInstruction \u4e2d\u4e3a\u7a7a\uff01"},
+
+    { ER_NO_NAME_ATTRIB,
+     "\u201c{0}\u201d\u5fc5\u987b\u6709 name \u5c5e\u6027\u3002"},
+
+    {ER_TEMPLATE_NOT_FOUND,
+     "\u627e\u4e0d\u5230\u4ee5\u4e0b\u540d\u79f0\u7684\u6a21\u677f\uff1a{0}"},
+
+    {ER_CANT_RESOLVE_NAME_AVT,
+      "\u65e0\u6cd5\u89e3\u6790 xsl:call-template \u4e2d\u7684\u540d\u79f0 AVT\u3002"},
+
+    {ER_REQUIRES_ATTRIB,
+     "\u201c{0}\u201d\u9700\u8981\u5c5e\u6027\uff1a{1}"},
+
+    { ER_MUST_HAVE_TEST_ATTRIB,
+      "\u201c{0}\u201d\u5fc5\u987b\u6709\u201ctest\u201d\u5c5e\u6027\u3002"},
+
+    {ER_BAD_VAL_ON_LEVEL_ATTRIB,
+      "\u7ea7\u522b\u5c5e\u6027\u4e0a\u51fa\u73b0\u9519\u8bef\u503c\uff1a{0}"},
+
+    {ER_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,
+      "processing-instruction \u540d\u79f0\u4e0d\u80fd\u662f\u201cxml\u201d"},
+
+    { ER_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,
+      "processing-instruction \u540d\u79f0\u5fc5\u987b\u662f\u6709\u6548\u7684 NCName\uff1a{0}"},
+
+    { ER_NEED_MATCH_ATTRIB,
+      "\u201c{0}\u201d\u5982\u679c\u6709\u67d0\u79cd\u65b9\u5f0f\uff0c\u5c31\u5fc5\u987b\u6709 match \u5c5e\u6027\u3002"},
+
+    { ER_NEED_NAME_OR_MATCH_ATTRIB,
+      "\u201c{0}\u201d\u9700\u8981 name \u5c5e\u6027\u6216 match \u5c5e\u6027\u3002"},
+
+    {ER_CANT_RESOLVE_NSPREFIX,
+      "\u65e0\u6cd5\u89e3\u6790\u540d\u79f0\u7a7a\u95f4\u524d\u7f00\uff1a{0}"},
+
+    { ER_ILLEGAL_VALUE,
+     "xml:space \u6709\u975e\u6cd5\u7684\u503c\uff1a{0}"},
+
+    { ER_NO_OWNERDOC,
+      "\u5b50\u8282\u70b9\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},
+
+    { ER_ELEMTEMPLATEELEM_ERR,
+     "ElemTemplateElement \u9519\u8bef\uff1a{0}"},
+
+    { ER_NULL_CHILD,
+     "\u6b63\u5728\u5c1d\u8bd5\u6dfb\u52a0\u7a7a\u7684\u5b50\u4ee3\uff01"},
+
+    { ER_NEED_SELECT_ATTRIB,
+     "{0} \u9700\u8981 select \u5c5e\u6027\u3002"},
+
+    { ER_NEED_TEST_ATTRIB ,
+      "xsl:when \u5fc5\u987b\u6709\u201ctest\u201d\u5c5e\u6027\u3002"},
+
+    { ER_NEED_NAME_ATTRIB,
+      "xsl:with-param \u5fc5\u987b\u6709\u201cname\u201d\u5c5e\u6027\u3002"},
+
+    { ER_NO_CONTEXT_OWNERDOC,
+      "\u4e0a\u4e0b\u6587\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},
+
+    {ER_COULD_NOT_CREATE_XML_PROC_LIAISON,
+      "\u65e0\u6cd5\u521b\u5efa XML TransformerFactory \u8054\u7cfb\uff1a{0}"},
+
+    {ER_PROCESS_NOT_SUCCESSFUL,
+      "Xalan: Process \u4e0d\u6210\u529f\u3002"},
+
+    { ER_NOT_SUCCESSFUL,
+     "Xalan: \u4e0d\u6210\u529f\u3002"},
+
+    { ER_ENCODING_NOT_SUPPORTED,
+     "\u4e0d\u652f\u6301\u7f16\u7801\uff1a{0}"},
+
+    {ER_COULD_NOT_CREATE_TRACELISTENER,
+      "\u65e0\u6cd5\u521b\u5efa TraceListener\uff1a{0}"},
+
+    {ER_KEY_REQUIRES_NAME_ATTRIB,
+      "xsl:key \u9700\u8981\u201cname\u201d\u5c5e\u6027\uff01"},
+
+    { ER_KEY_REQUIRES_MATCH_ATTRIB,
+      "xsl:key \u9700\u8981\u201cmatch\u201d\u5c5e\u6027\uff01"},
+
+    { ER_KEY_REQUIRES_USE_ATTRIB,
+      "xsl:key \u9700\u8981\u201cuse\u201d\u5c5e\u6027\uff01"},
+
+    { ER_REQUIRES_ELEMENTS_ATTRIB,
+      "(StylesheetHandler) {0} \u9700\u8981\u201celements\u201d\u5c5e\u6027\uff01"},
+
+    { ER_MISSING_PREFIX_ATTRIB,
+      "(StylesheetHandler) {0} \u5c5e\u6027\u201cprefix\u201d\u4e22\u5931"},
+
+    { ER_BAD_STYLESHEET_URL,
+     "\u6837\u5f0f\u8868 URL \u9519\u8bef\uff1a{0}"},
+
+    { ER_FILE_NOT_FOUND,
+     "\u627e\u4e0d\u5230\u6837\u5f0f\u8868\u6587\u4ef6\uff1a{0}"},
+
+    { ER_IOEXCEPTION,
+      "\u6837\u5f0f\u8868\u6587\u4ef6\u53d1\u751f IO \u5f02\u5e38\uff1a{0}"},
+
+    { ER_NO_HREF_ATTRIB,
+      "\uff08StylesheetHandler\uff09\u65e0\u6cd5\u4e3a {0} \u627e\u5230 href \u5c5e\u6027"},
+
+    { ER_STYLESHEET_INCLUDES_ITSELF,
+      "\uff08StylesheetHandler\uff09{0} \u6b63\u5728\u76f4\u63a5\u6216\u95f4\u63a5\u5730\u5305\u542b\u5b83\u81ea\u8eab\uff01"},
+
+    { ER_PROCESSINCLUDE_ERROR,
+      "StylesheetHandler.processInclude \u9519\u8bef\uff0c{0}"},
+
+    { ER_MISSING_LANG_ATTRIB,
+      "(StylesheetHandler) {0} \u5c5e\u6027\u201clang\u201d\u4e22\u5931"},
+
+    { ER_MISSING_CONTAINER_ELEMENT_COMPONENT,
+      "\uff08StylesheetHandler\uff09\u662f\u5426\u9519\u653e\u4e86 {0} \u5143\u7d20\uff1f\uff1f\u7f3a\u5c11\u5bb9\u5668\u5143\u7d20\u201ccomponent\u201d"},
+
+    { ER_CAN_ONLY_OUTPUT_TO_ELEMENT,
+      "\u53ea\u80fd\u8f93\u51fa\u5230 Element\u3001DocumentFragment\u3001Document \u6216 PrintWriter\u3002"},
+
+    { ER_PROCESS_ERROR,
+     "StylesheetRoot.process \u9519\u8bef"},
+
+    { ER_UNIMPLNODE_ERROR,
+     "UnImplNode \u9519\u8bef\uff1a{0}"},
+
+    { ER_NO_SELECT_EXPRESSION,
+      "\u9519\u8bef\uff01\u627e\u4e0d\u5230 xpath \u9009\u62e9\u8868\u8fbe\u5f0f\uff08-select\uff09\u3002"},
+
+    { ER_CANNOT_SERIALIZE_XSLPROCESSOR,
+      "\u65e0\u6cd5\u5e8f\u5217\u5316 XSLProcessor\uff01"},
+
+    { ER_NO_INPUT_STYLESHEET,
+      "\u6ca1\u6709\u6307\u5b9a\u6837\u5f0f\u8868\u8f93\u5165\uff01"},
+
+    { ER_FAILED_PROCESS_STYLESHEET,
+      "\u65e0\u6cd5\u5904\u7406\u6837\u5f0f\u8868\uff01"},
+
+    { ER_COULDNT_PARSE_DOC,
+     "\u65e0\u6cd5\u89e3\u6790 {0} \u6587\u6863\uff01"},
+
+    { ER_COULDNT_FIND_FRAGMENT,
+     "\u627e\u4e0d\u5230\u7247\u6bb5\uff1a{0}"},
+
+    { ER_NODE_NOT_ELEMENT,
+      "\u7247\u6bb5\u6807\u8bc6\u6307\u5411\u7684\u8282\u70b9\u4e0d\u662f\u5143\u7d20\uff1a{0}"},
+
+    { ER_FOREACH_NEED_MATCH_OR_NAME_ATTRIB,
+      "for-each \u5fc5\u987b\u6709 match \u6216 name \u5c5e\u6027"},
+
+    { ER_TEMPLATES_NEED_MATCH_OR_NAME_ATTRIB,
+      "templates \u5fc5\u987b\u6709 match \u6216 name \u5c5e\u6027"},
+
+    { ER_NO_CLONE_OF_DOCUMENT_FRAG,
+      "\u65e0\u6587\u6863\u7247\u6bb5\u7684\u514b\u9686\uff01"},
+
+    { ER_CANT_CREATE_ITEM,
+      "\u65e0\u6cd5\u5728\u7ed3\u679c\u6811\u4e2d\u521b\u5efa\u9879\uff1a{0}"},
+
+    { ER_XMLSPACE_ILLEGAL_VALUE,
+      "\u6e90 XML \u4e2d\u7684 xml:space \u6709\u975e\u6cd5\u503c\uff1a{0}"},
+
+    { ER_NO_XSLKEY_DECLARATION,
+      "{0} \u6ca1\u6709 xsl:key \u58f0\u660e\uff01"},
+
+    { ER_CANT_CREATE_URL,
+     "\u9519\u8bef\uff01\u65e0\u6cd5\u4e3a {0} \u521b\u5efa URL"},
+
+    { ER_XSLFUNCTIONS_UNSUPPORTED,
+     "\u4e0d\u652f\u6301 xsl:functions"},
+
+    { ER_PROCESSOR_ERROR,
+     "XSLT TransformerFactory \u9519\u8bef"},
+
+    { ER_NOT_ALLOWED_INSIDE_STYLESHEET,
+      "\uff08StylesheetHandler\uff09\u6837\u5f0f\u8868\u5185\u4e0d\u5141\u8bb8 {0}\uff01"},
+
+    { ER_RESULTNS_NOT_SUPPORTED,
+      "\u4e0d\u518d\u652f\u6301 result-ns\uff01\u8bf7\u6539\u4e3a\u4f7f\u7528 xsl:output\u3002"},
+
+    { ER_DEFAULTSPACE_NOT_SUPPORTED,
+      "\u4e0d\u518d\u652f\u6301 default-space\uff01\u8bf7\u6539\u4e3a\u4f7f\u7528 xsl:strip-space \u6216 xsl:preserve-space\u3002"},
+
+    { ER_INDENTRESULT_NOT_SUPPORTED,
+      "\u4e0d\u518d\u652f\u6301 indent-result\uff01\u8bf7\u6539\u4e3a\u4f7f\u7528 xsl:output\u3002"},
+
+    { ER_ILLEGAL_ATTRIB,
+      "\uff08StylesheetHandler\uff09{0} \u6709\u975e\u6cd5\u5c5e\u6027\uff1a{1}"},
+
+    { ER_UNKNOWN_XSL_ELEM,
+     "\u672a\u77e5 XSL \u5143\u7d20\uff1a{0}"},
+
+    { ER_BAD_XSLSORT_USE,
+      "\uff08StylesheetHandler\uff09xsl:sort \u53ea\u80fd\u4e0e xsl:apply-templates \u6216 xsl:for-each \u4e00\u8d77\u4f7f\u7528\u3002"},
+
+    { ER_MISPLACED_XSLWHEN,
+      "\uff08StylesheetHandler\uff09\u9519\u653e\u4e86 xsl:when\uff01"},
+
+    { ER_XSLWHEN_NOT_PARENTED_BY_XSLCHOOSE,
+      "\uff08StylesheetHandler\uff09xsl:choose \u4e0d\u662f xsl:when \u7684\u7236\u4ee3\uff01"},
+
+    { ER_MISPLACED_XSLOTHERWISE,
+      "\uff08StylesheetHandler\uff09\u9519\u653e\u4e86 xsl:otherwise\uff01"},
+
+    { ER_XSLOTHERWISE_NOT_PARENTED_BY_XSLCHOOSE,
+      "\uff08StylesheetHandler\uff09xsl:choose \u4e0d\u662f xsl:otherwise \u7684\u7236\u4ee3\uff01"},
+
+    { ER_NOT_ALLOWED_INSIDE_TEMPLATE,
+      "\uff08StylesheetHandler\uff09\u6a21\u677f\u5185\u4e0d\u5141\u8bb8\u51fa\u73b0 {0}\uff01"},
+
+    { ER_UNKNOWN_EXT_NS_PREFIX,
+      "\uff08StylesheetHandler\uff09{0} \u6269\u5c55\u540d\u79f0\u7a7a\u95f4\u524d\u7f00 {1} \u672a\u77e5"},
+
+    { ER_IMPORTS_AS_FIRST_ELEM,
+      "\uff08StylesheetHandler\uff09\u5bfc\u5165\u53ea\u80fd\u4f5c\u4e3a\u6837\u5f0f\u8868\u4e2d\u6700\u524d\u9762\u7684\u5143\u7d20\u53d1\u751f\uff01"},
+
+    { ER_IMPORTING_ITSELF,
+      "\uff08StylesheetHandler\uff09{0} \u6b63\u5728\u76f4\u63a5\u6216\u95f4\u63a5\u5730\u5bfc\u5165\u5b83\u81ea\u8eab\uff01"},
+
+    { ER_XMLSPACE_ILLEGAL_VAL,
+      "\uff08StylesheetHandler\uff09xml:space \u6709\u975e\u6cd5\u503c\uff1a{0}"},
+
+    { ER_PROCESSSTYLESHEET_NOT_SUCCESSFUL,
+      "processStylesheet \u4e0d\u6210\u529f\uff01"},
+
+    { ER_SAX_EXCEPTION,
+     "SAX \u5f02\u5e38"},
+
+//  add this message to fix bug 21478
+    { ER_FUNCTION_NOT_SUPPORTED,
+     "\u51fd\u6570\u4e0d\u53d7\u652f\u6301\uff01"},
+
+
+    { ER_XSLT_ERROR,
+     "XSLT \u9519\u8bef"},
+
+    { ER_CURRENCY_SIGN_ILLEGAL,
+      "\u683c\u5f0f\u6a21\u5f0f\u5b57\u7b26\u4e32\u4e2d\u4e0d\u5141\u8bb8\u5b58\u5728\u8d27\u5e01\u7b26\u53f7"},
+
+    { ER_DOCUMENT_FUNCTION_INVALID_IN_STYLESHEET_DOM,
+      "\u6837\u5f0f\u8868 DOM \u4e2d\u4e0d\u652f\u6301\u6587\u6863\u51fd\u6570\uff01"},
+
+    { ER_CANT_RESOLVE_PREFIX_OF_NON_PREFIX_RESOLVER,
+      "\u65e0\u6cd5\u89e3\u6790\u975e\u524d\u7f00\u89e3\u6790\u5668\u7684\u524d\u7f00\uff01"},
+
+    { ER_REDIRECT_COULDNT_GET_FILENAME,
+      "\u91cd\u5b9a\u5411\u6269\u5c55\uff1a\u65e0\u6cd5\u83b7\u53d6\u6587\u4ef6\u540d \uff0d file \u6216 select \u5c5e\u6027\u5fc5\u987b\u8fd4\u56de\u6709\u6548\u5b57\u7b26\u4e32\u3002"},
+
+    { ER_CANNOT_BUILD_FORMATTERLISTENER_IN_REDIRECT,
+      "\u65e0\u6cd5\u5728\u91cd\u5b9a\u5411\u6269\u5c55\u4e2d\u6784\u5efa FormatterListener\uff01"},
+
+    { ER_INVALID_PREFIX_IN_EXCLUDERESULTPREFIX,
+      "exclude-result-prefixes \u4e2d\u7684\u524d\u7f00\u65e0\u6548\uff1a{0}"},
+
+    { ER_MISSING_NS_URI,
+      "\u6307\u5b9a\u7684\u524d\u7f00\u7f3a\u5c11\u540d\u79f0\u7a7a\u95f4 URI"},
+
+    { ER_MISSING_ARG_FOR_OPTION,
+      "\u9009\u9879 {0} \u7f3a\u5c11\u81ea\u53d8\u91cf"},
+
+    { ER_INVALID_OPTION,
+     "\u9009\u9879 {0} \u65e0\u6548"},
+
+    { ER_MALFORMED_FORMAT_STRING,
+     "\u683c\u5f0f\u5b57\u7b26\u4e32 {0} \u7684\u683c\u5f0f\u9519\u8bef"},
+
+    { ER_STYLESHEET_REQUIRES_VERSION_ATTRIB,
+      "xsl:stylesheet \u9700\u8981\u201cversion\u201d\u5c5e\u6027\uff01"},
+
+    { ER_ILLEGAL_ATTRIBUTE_VALUE,
+      "\u5c5e\u6027\uff1a{0} \u6709\u975e\u6cd5\u7684\u503c\uff1a{1}"},
+
+    { ER_CHOOSE_REQUIRES_WHEN,
+     "xsl:choose \u9700\u8981 xsl:when"},
+
+    { ER_NO_APPLY_IMPORT_IN_FOR_EACH,
+      "xsl:for-each \u4e2d\u4e0d\u5141\u8bb8\u6709 xsl:apply-imports"},
+
+    { ER_CANT_USE_DTM_FOR_OUTPUT,
+      "\u65e0\u6cd5\u5c06 DTMLiaison \u7528\u4e8e\u8f93\u51fa DOM \u8282\u70b9... \u6539\u4e3a\u4f20\u9012 org.apache.xpath.DOM2Helper\uff01"},
+
+    { ER_CANT_USE_DTM_FOR_INPUT,
+      "\u65e0\u6cd5\u5c06 DTMLiaison \u7528\u4e8e\u8f93\u5165 DOM \u8282\u70b9... \u6539\u4e3a\u4f20\u9012 org.apache.xpath.DOM2Helper\uff01"},
+
+    { ER_CALL_TO_EXT_FAILED,
+      "\u8c03\u7528\u6269\u5c55\u5143\u7d20\u5931\u8d25\uff1a{0}"},
+
+    { ER_PREFIX_MUST_RESOLVE,
+      "\u524d\u7f00\u5fc5\u987b\u89e3\u6790\u4e3a\u540d\u79f0\u7a7a\u95f4\uff1a{0}"},
+
+    { ER_INVALID_UTF16_SURROGATE,
+      "\u68c0\u6d4b\u5230\u65e0\u6548\u7684 UTF-16 \u8d85\u5927\u5b57\u7b26\u96c6\uff1a{0}\uff1f"},
+
+    { ER_XSLATTRSET_USED_ITSELF,
+      "xsl:attribute-set {0} \u4f7f\u7528\u4e86\u81ea\u8eab\uff0c\u8fd9\u5c06\u5bfc\u81f4\u65e0\u9650\u5faa\u73af\u3002"},
+
+    { ER_CANNOT_MIX_XERCESDOM,
+      "\u65e0\u6cd5\u5c06\u975e Xerces-DOM \u8f93\u5165\u4e0e Xerces-DOM \u8f93\u51fa\u6df7\u5408\uff01"},
+
+    { ER_TOO_MANY_LISTENERS,
+      "addTraceListenersToStylesheet \u2015 TooManyListenersException"},
+
+    { ER_IN_ELEMTEMPLATEELEM_READOBJECT,
+      "\u5728 ElemTemplateElement.readObject \u4e2d\uff1a{0}"},
+
+    { ER_DUPLICATE_NAMED_TEMPLATE,
+      "\u627e\u5230\u591a\u4e2a\u540d\u4e3a {0} \u7684\u6a21\u677f"},
+
+    { ER_INVALID_KEY_CALL,
+      "\u65e0\u6548\u7684\u51fd\u6570\u8c03\u7528\uff1a\u4e0d\u5141\u8bb8\u9012\u5f52 key() \u8c03\u7528"},
+
+    { ER_REFERENCING_ITSELF,
+      "\u53d8\u91cf {0} \u6b63\u5728\u76f4\u63a5\u6216\u95f4\u63a5\u5730\u5f15\u7528\u5b83\u81ea\u8eab\uff01"},
+
+    { ER_ILLEGAL_DOMSOURCE_INPUT,
+      "\u8f93\u5165\u8282\u70b9\u5bf9\u4e8e newTemplates \u7684 DOMSource \u4e0d\u80fd\u4e3a\u7a7a\uff01"},
+
+    { ER_CLASS_NOT_FOUND_FOR_OPTION,
+        "\u627e\u4e0d\u5230\u9009\u9879 {0} \u7684\u7c7b\u6587\u4ef6"},
+
+    { ER_REQUIRED_ELEM_NOT_FOUND,
+        "\u627e\u4e0d\u5230\u5fc5\u9700\u7684\u5143\u7d20\uff1a{0}"},
+
+    { ER_INPUT_CANNOT_BE_NULL,
+        "InputStream \u4e0d\u80fd\u4e3a\u7a7a"},
+
+    { ER_URI_CANNOT_BE_NULL,
+        "URI \u4e0d\u80fd\u4e3a\u7a7a"},
+
+    { ER_FILE_CANNOT_BE_NULL,
+        "File \u4e0d\u80fd\u4e3a\u7a7a"},
+
+    { ER_SOURCE_CANNOT_BE_NULL,
+                "InputSource \u4e0d\u80fd\u4e3a\u7a7a"},
+
+    { ER_CANNOT_INIT_BSFMGR,
+                "\u65e0\u6cd5\u521d\u59cb\u5316 BSF \u7ba1\u7406\u5668"},
+
+    { ER_CANNOT_CMPL_EXTENSN,
+                "\u65e0\u6cd5\u7f16\u8bd1\u6269\u5c55"},
+
+    { ER_CANNOT_CREATE_EXTENSN,
+      "\u7531\u4e8e {1}\uff0c\u65e0\u6cd5\u521b\u5efa\u6269\u5c55 {0}"},
+
+    { ER_INSTANCE_MTHD_CALL_REQUIRES,
+      "\u5bf9\u65b9\u6cd5 {0} \u7684\u5b9e\u4f8b\u65b9\u6cd5\u8c03\u7528\u8981\u6c42\u4ee5\u5bf9\u8c61\u5b9e\u4f8b\u4f5c\u4e3a\u7b2c\u4e00\u53c2\u6570"},
+
+    { ER_INVALID_ELEMENT_NAME,
+      "\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u5143\u7d20\u540d\u79f0 {0}"},
+
+    { ER_ELEMENT_NAME_METHOD_STATIC,
+      "\u5143\u7d20\u540d\u79f0\u65b9\u6cd5\u5fc5\u987b\u662f static {0}"},
+
+    { ER_EXTENSION_FUNC_UNKNOWN,
+             "\u6269\u5c55\u51fd\u6570 {0} : {1} \u672a\u77e5"},
+
+    { ER_MORE_MATCH_CONSTRUCTOR,
+             "\u5bf9\u4e8e {0}\uff0c\u6784\u9020\u51fd\u6570\u6709\u591a\u4e2a\u6700\u4f73\u5339\u914d"},
+
+    { ER_MORE_MATCH_METHOD,
+             "\u65b9\u6cd5 {0} \u6709\u591a\u4e2a\u6700\u4f73\u5339\u914d"},
+
+    { ER_MORE_MATCH_ELEMENT,
+             "element \u65b9\u6cd5 {0} \u6709\u591a\u4e2a\u6700\u4f73\u5339\u914d"},
+
+    { ER_INVALID_CONTEXT_PASSED,
+             "\u8bc4\u4f30 {0} \u65f6\u4f20\u9012\u4e86\u65e0\u6548\u7684\u4e0a\u4e0b\u6587"},
+
+    { ER_POOL_EXISTS,
+             "\u6c60\u5df2\u7ecf\u5b58\u5728"},
+
+    { ER_NO_DRIVER_NAME,
+             "\u672a\u6307\u5b9a\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0"},
+
+    { ER_NO_URL,
+             "\u672a\u6307\u5b9a URL"},
+
+    { ER_POOL_SIZE_LESSTHAN_ONE,
+             "\u6c60\u5927\u5c0f\u5c0f\u4e8e 1\uff01"},
+
+    { ER_INVALID_DRIVER,
+             "\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0\uff01"},
+
+    { ER_NO_STYLESHEETROOT,
+             "\u627e\u4e0d\u5230\u6837\u5f0f\u8868\u6839\u76ee\u5f55\uff01"},
+
+    { ER_ILLEGAL_XMLSPACE_VALUE,
+         "xml:space \u7684\u503c\u975e\u6cd5"},
+
+    { ER_PROCESSFROMNODE_FAILED,
+         "processFromNode \u5931\u8d25"},
+
+    { ER_RESOURCE_COULD_NOT_LOAD,
+        "\u8d44\u6e90 [ {0} ] \u65e0\u6cd5\u88c5\u5165\uff1a{1} \n {2} \t {3}"},
+
+    { ER_BUFFER_SIZE_LESSTHAN_ZERO,
+        "\u7f13\u51b2\u533a\u5927\u5c0f <=0"},
+
+    { ER_UNKNOWN_ERROR_CALLING_EXTENSION,
+        "\u8c03\u7528\u6269\u5c55\u65f6\u53d1\u751f\u672a\u77e5\u9519\u8bef"},
+
+    { ER_NO_NAMESPACE_DECL,
+        "\u524d\u7f00 {0} \u6ca1\u6709\u76f8\u5e94\u7684\u540d\u79f0\u7a7a\u95f4\u58f0\u660e"},
+
+    { ER_ELEM_CONTENT_NOT_ALLOWED,
+        "lang=javaclass {0} \u4e0d\u5141\u8bb8\u51fa\u73b0\u5143\u7d20\u5185\u5bb9"},
+
+    { ER_STYLESHEET_DIRECTED_TERMINATION,
+        "\u6837\u5f0f\u8868\u5b9a\u5411\u7684\u7ec8\u6b62"},
+
+    { ER_ONE_OR_TWO,
+        "1 \u6216 2"},
+
+    { ER_TWO_OR_THREE,
+        "2 \u6216 3"},
+
+    { ER_COULD_NOT_LOAD_RESOURCE,
+        "\u65e0\u6cd5\u88c5\u5165 {0}\uff08\u68c0\u67e5 CLASSPATH\uff09\uff0c\u73b0\u5728\u53ea\u4f7f\u7528\u7f3a\u7701\u503c"},
+
+    { ER_CANNOT_INIT_DEFAULT_TEMPLATES,
+        "\u65e0\u6cd5\u521d\u59cb\u5316\u7f3a\u7701\u6a21\u677f"},
+
+    { ER_RESULT_NULL,
+        "\u7ed3\u679c\u4e0d\u5e94\u4e3a\u7a7a"},
+
+    { ER_RESULT_COULD_NOT_BE_SET,
+        "\u65e0\u6cd5\u8bbe\u7f6e\u7ed3\u679c"},
+
+    { ER_NO_OUTPUT_SPECIFIED,
+        "\u672a\u6307\u5b9a\u8f93\u51fa"},
+
+    { ER_CANNOT_TRANSFORM_TO_RESULT_TYPE,
+        "\u65e0\u6cd5\u8f6c\u6362\u6210\u7c7b\u578b\u4e3a {0} \u7684\u7ed3\u679c"},
+
+    { ER_CANNOT_TRANSFORM_SOURCE_TYPE,
+        "\u65e0\u6cd5\u8f6c\u6362\u7c7b\u578b\u4e3a {0} \u7684\u6e90"},
+
+    { ER_NULL_CONTENT_HANDLER,
+        "\u5185\u5bb9\u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},
+
+    { ER_NULL_ERROR_HANDLER,
+        "\u9519\u8bef\u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},
+
+    { ER_CANNOT_CALL_PARSE,
+        "\u5982\u679c\u6ca1\u6709\u8bbe\u7f6e ContentHandler\uff0c\u5219\u65e0\u6cd5\u8c03\u7528\u89e3\u6790"},
+
+    { ER_NO_PARENT_FOR_FILTER,
+        "\u8fc7\u6ee4\u5668\u65e0\u7236\u4ee3"},
+
+    { ER_NO_STYLESHEET_IN_MEDIA,
+         "\u5728 {0} \u4e2d\u627e\u4e0d\u5230\u6837\u5f0f\u8868\uff0c\u4ecb\u8d28 = {1}"},
+
+    { ER_NO_STYLESHEET_PI,
+         "\u5728 {0} \u4e2d\u627e\u4e0d\u5230 xml-stylesheet PI"},
+
+    { ER_NOT_SUPPORTED,
+       "\u4e0d\u652f\u6301\uff1a{0}"},
+
+    { ER_PROPERTY_VALUE_BOOLEAN,
+       "\u7279\u6027 {0} \u7684\u503c\u5e94\u5f53\u662f\u5e03\u5c14\u5b9e\u4f8b"},
+
+    { ER_COULD_NOT_FIND_EXTERN_SCRIPT,
+         "\u627e\u4e0d\u5230 {0} \u4e0a\u7684\u5916\u90e8\u811a\u672c"},
+
+    { ER_RESOURCE_COULD_NOT_FIND,
+        "\u627e\u4e0d\u5230\u8d44\u6e90 [ {0} ]\u3002\n {1}"},
+
+    { ER_OUTPUT_PROPERTY_NOT_RECOGNIZED,
+        "\u672a\u8bc6\u522b\u51fa\u8f93\u51fa\u5c5e\u6027\uff1a{0}"},
+
+    { ER_FAILED_CREATING_ELEMLITRSLT,
+        "\u521b\u5efa ElemLiteralResult \u5b9e\u4f8b\u5931\u8d25"},
+
+  //Earlier (JDK 1.4 XALAN 2.2-D11) at key code '204' the key name was ER_PRIORITY_NOT_PARSABLE
+  // In latest Xalan code base key name is  ER_VALUE_SHOULD_BE_NUMBER. This should also be taken care
+  //in locale specific files like XSLTErrorResources_de.java, XSLTErrorResources_fr.java etc.
+  //NOTE: Not only the key name but message has also been changed.
+
+    { ER_VALUE_SHOULD_BE_NUMBER,
+        "{0} \u7684\u503c\u5e94\u5f53\u5305\u542b\u53ef\u8fdb\u884c\u89e3\u6790\u7684\u6570\u5b57"},
+
+    { ER_VALUE_SHOULD_EQUAL,
+        "{0} \u7684\u503c\u5e94\u5f53\u7b49\u4e8e yes \u6216 no"},
+
+    { ER_FAILED_CALLING_METHOD,
+        "\u8c03\u7528 {0} \u65b9\u6cd5\u5931\u8d25"},
+
+    { ER_FAILED_CREATING_ELEMTMPL,
+        "\u521b\u5efa ElemTemplateElement \u5b9e\u4f8b\u5931\u8d25"},
+
+    { ER_CHARS_NOT_ALLOWED,
+        "\u6b64\u65f6\u6587\u6863\u4e2d\u4e0d\u5141\u8bb8\u6709\u5b57\u7b26"},
+
+    { ER_ATTR_NOT_ALLOWED,
+        "{1} \u5143\u7d20\u4e0a\u4e0d\u5141\u8bb8\u4f7f\u7528\u201c{0}\u201d\u5c5e\u6027\uff01"},
+
+    { ER_BAD_VALUE,
+     "{0} \u9519\u8bef\u503c {1}"},
+
+    { ER_ATTRIB_VALUE_NOT_FOUND,
+     "\u627e\u4e0d\u5230 {0} \u5c5e\u6027\u503c"},
+
+    { ER_ATTRIB_VALUE_NOT_RECOGNIZED,
+     "\u672a\u8bc6\u522b\u51fa {0} \u5c5e\u6027\u503c"},
+
+    { ER_NULL_URI_NAMESPACE,
+     "\u6b63\u5728\u8bd5\u56fe\u4ee5\u7a7a\u7684 URI \u751f\u6210\u540d\u79f0\u7a7a\u95f4\u524d\u7f00"},
+
+  //New ERROR keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)
+
+    { ER_NUMBER_TOO_BIG,
+     "\u6b63\u5728\u8bd5\u56fe\u683c\u5f0f\u5316\u5927\u4e8e\u6700\u5927\u957f\u6574\u6570\u7684\u6570\u5b57"},
+
+    { ER_CANNOT_FIND_SAX1_DRIVER,
+     "\u627e\u4e0d\u5230 SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0}"},
+
+    { ER_SAX1_DRIVER_NOT_LOADED,
+     "\u627e\u5230\u4e86 SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0}\uff0c\u4f46\u65e0\u6cd5\u88c5\u5165\u5b83"},
+
+    { ER_SAX1_DRIVER_NOT_INSTANTIATED,
+     "\u88c5\u5165\u4e86 SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0}\uff0c\u4f46\u65e0\u6cd5\u5c06\u5b83\u5b9e\u4f8b\u5316"},
+
+    { ER_SAX1_DRIVER_NOT_IMPLEMENT_PARSER,
+     "SAX1 \u9a71\u52a8\u7a0b\u5e8f\u7c7b {0} \u4e0d\u5b9e\u73b0 org.xml.sax.Parser"},
+
+    { ER_PARSER_PROPERTY_NOT_SPECIFIED,
+     "\u6ca1\u6709\u6307\u5b9a\u7cfb\u7edf\u5c5e\u6027 org.xml.sax.parser"},
+
+    { ER_PARSER_ARG_CANNOT_BE_NULL,
+     "\u89e3\u6790\u5668\u53c2\u6570\u4e0d\u5f97\u4e3a\u7a7a"},
+
+    { ER_FEATURE,
+     "\u7279\u5f81\uff1a{0}"},
+
+    { ER_PROPERTY,
+     "\u5c5e\u6027\uff1a{0}"},
+
+    { ER_NULL_ENTITY_RESOLVER,
+     "\u5b9e\u4f53\u89e3\u6790\u5668\u4e3a\u7a7a"},
+
+    { ER_NULL_DTD_HANDLER,
+     "DTD \u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},
+
+    { ER_NO_DRIVER_NAME_SPECIFIED,
+     "\u672a\u6307\u5b9a\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0\uff01"},
+
+    { ER_NO_URL_SPECIFIED,
+     "\u672a\u6307\u5b9a URL\uff01"},
+
+    { ER_POOLSIZE_LESS_THAN_ONE,
+     "\u6c60\u5927\u5c0f\u5c0f\u4e8e 1\uff01"},
+
+    { ER_INVALID_DRIVER_NAME,
+     "\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u9a71\u52a8\u7a0b\u5e8f\u540d\u79f0\uff01"},
+
+    { ER_ERRORLISTENER,
+     "ErrorListener"},
+
+
+// Note to translators:  The following message should not normally be displayed
+//   to users.  It describes a situation in which the processor has detected
+//   an internal consistency problem in itself, and it provides this message
+//   for the developer to help diagnose the problem.  The name
+//   'ElemTemplateElement' is the name of a class, and should not be
+//   translated.
+    { ER_ASSERT_NO_TEMPLATE_PARENT,
+     "\u7a0b\u5e8f\u5458\u7684\u9519\u8bef\uff01\u8868\u8fbe\u5f0f\u6ca1\u6709 ElemTemplateElement \u7236\u4ee3\uff01"},
+
+
+// Note to translators:  The following message should not normally be displayed
+//   to users.  It describes a situation in which the processor has detected
+//   an internal consistency problem in itself, and it provides this message
+//   for the developer to help diagnose the problem.  The substitution text
+//   provides further information in order to diagnose the problem.  The name
+//   'RedundentExprEliminator' is the name of a class, and should not be
+//   translated.
+    { ER_ASSERT_REDUNDENT_EXPR_ELIMINATOR,
+     "\u7a0b\u5e8f\u5458\u5728 RedundentExprEliminator \u4e2d\u7684\u65ad\u8a00\uff1a{0}"},
+
+    { ER_NOT_ALLOWED_IN_POSITION,
+     "\u6837\u5f0f\u8868\u7684\u6b64\u4f4d\u7f6e\u4e2d\u4e0d\u5141\u8bb8\u6709 {0}\uff01"},
+
+    { ER_NONWHITESPACE_NOT_ALLOWED_IN_POSITION,
+     "\u6837\u5f0f\u8868\u7684\u6b64\u4f4d\u7f6e\u4e2d\u4e0d\u5141\u8bb8\u6709\u975e\u7a7a\u683c\u7684\u6587\u672c\uff01"},
+
+  // This code is shared with warning codes.
+  // SystemId Unknown
+    { INVALID_TCHAR,
+     "\u7528\u4e8e CHAR \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5\u3002\u7c7b\u578b CHAR \u7684\u5c5e\u6027\u5fc5\u987b\u53ea\u6709 1 \u4e2a\u5b57\u7b26\uff01"},
+
+    // Note to translators:  The following message is used if the value of
+    // an attribute in a stylesheet is invalid.  "QNAME" is the XML data-type of
+    // the attribute, and should not be translated.  The substitution text {1} is
+    // the attribute value and {0} is the attribute name.
+    //The following codes are shared with the warning codes...
+    { INVALID_QNAME,
+     "\u7528\u4e8e QNAME \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},
+
+    // Note to translators:  The following message is used if the value of
+    // an attribute in a stylesheet is invalid.  "ENUM" is the XML data-type of
+    // the attribute, and should not be translated.  The substitution text {1} is
+    // the attribute value, {0} is the attribute name, and {2} is a list of valid
+    // values.
+    { INVALID_ENUM,
+     "\u7528\u4e8e ENUM \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5\u3002\u6709\u6548\u7684\u503c\u662f\uff1a{2}\u3002"},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "NMTOKEN" is the XML data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+    { INVALID_NMTOKEN,
+     "\u7528\u4e8e NMTOKEN \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "NCNAME" is the XML data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+    { INVALID_NCNAME,
+     "\u7528\u4e8e NCNAME \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "boolean" is the XSLT data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+    { INVALID_BOOLEAN,
+     "\u7528\u4e8e boolean \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},
+
+// Note to translators:  The following message is used if the value of
+// an attribute in a stylesheet is invalid.  "number" is the XSLT data-type
+// of the attribute, and should not be translated.  The substitution text {1} is
+// the attribute value and {0} is the attribute name.
+     { INVALID_NUMBER,
+     "\u7528\u4e8e number \u5c5e\u6027 {0} \u7684\u503c {1} \u975e\u6cd5"},
+
+
+  // End of shared codes...
+
+// Note to translators:  A "match pattern" is a special form of XPath expression
+// that is used for matching patterns.  The substitution text is the name of
+// a function.  The message indicates that when this function is referenced in
+// a match pattern, its argument must be a string literal (or constant.)
+// ER_ARG_LITERAL - new error message for bugzilla //5202
+    { ER_ARG_LITERAL,
+     "\u5339\u914d\u6a21\u5f0f\u4e2d {0} \u7684\u81ea\u53d8\u91cf\u5fc5\u987b\u662f\u6587\u5b57\u3002"},
+
+// Note to translators:  The following message indicates that two definitions of
+// a variable.  A "global variable" is a variable that is accessible everywher
+// in the stylesheet.
+// ER_DUPLICATE_GLOBAL_VAR - new error message for bugzilla #790
+    { ER_DUPLICATE_GLOBAL_VAR,
+     "\u5168\u5c40\u53d8\u91cf\u7684\u58f0\u660e\u91cd\u590d\u3002"},
+
+
+// Note to translators:  The following message indicates that two definitions of
+// a variable were encountered.
+// ER_DUPLICATE_VAR - new error message for bugzilla #790
+    { ER_DUPLICATE_VAR,
+     "\u53d8\u91cf\u58f0\u660e\u91cd\u590d\u3002"},
+
+    // Note to translators:  "xsl:template, "name" and "match" are XSLT keywords
+    // which must not be translated.
+    // ER_TEMPLATE_NAME_MATCH - new error message for bugzilla #789
+    { ER_TEMPLATE_NAME_MATCH,
+     "xsl:template \u5fc5\u987b\u6709\u4e00\u4e2a name \u6216 match \u5c5e\u6027\uff08\u6216\u4e24\u8005\u517c\u6709\uff09"},
+
+    // Note to translators:  "exclude-result-prefixes" is an XSLT keyword which
+    // should not be translated.  The message indicates that a namespace prefix
+    // encountered as part of the value of the exclude-result-prefixes attribute
+    // was in error.
+    // ER_INVALID_PREFIX - new error message for bugzilla #788
+    { ER_INVALID_PREFIX,
+     "exclude-result-prefixes \u4e2d\u7684\u524d\u7f00\u65e0\u6548\uff1a{0}"},
+
+    // Note to translators:  An "attribute set" is a set of attributes that can
+    // be added to an element in the output document as a group.  The message
+    // indicates that there was a reference to an attribute set named {0} that
+    // was never defined.
+    // ER_NO_ATTRIB_SET - new error message for bugzilla #782
+    { ER_NO_ATTRIB_SET,
+     "\u540d\u4e3a {0} \u7684\u5c5e\u6027\u96c6\u4e0d\u5b58\u5728"},
+
+    // Note to translators:  This message indicates that there was a reference
+    // to a function named {0} for which no function definition could be found.
+    { ER_FUNCTION_NOT_FOUND,
+     "\u540d\u4e3a {0} \u7684\u51fd\u6570\u4e0d\u5b58\u5728"},
+
+    // Note to translators:  This message indicates that the XSLT instruction
+    // that is named by the substitution text {0} must not contain other XSLT
+    // instructions (content) or a "select" attribute.  The word "select" is
+    // an XSLT keyword in this case and must not be translated.
+    { ER_CANT_HAVE_CONTENT_AND_SELECT,
+     "{0} \u5143\u7d20\u4e0d\u5f97\u540c\u65f6\u5177\u6709\u5185\u5bb9\u548c select \u5c5e\u6027\u3002"},
+
+    // Note to translators:  This message indicates that the value argument
+    // of setParameter must be a valid Java Object.
+    { ER_INVALID_SET_PARAM_VALUE,
+     "\u53c2\u6570 {0} \u7684\u503c\u5fc5\u987b\u4e3a\u6709\u6548\u7684 Java \u5bf9\u8c61"},
+
+        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT,
+         "xsl:namespace-alias \u5143\u7d20\u7684 result-prefix \u5c5e\u6027\u542b\u6709\u201c#default\u201d\u503c\uff0c\u4f46\u5728\u8be5\u5143\u7d20\u7684\u4f5c\u7528\u57df\u4e2d\u6ca1\u6709\u7f3a\u7701\u540d\u79f0\u7a7a\u95f4\u7684\u58f0\u660e\u3002"},
+
+        { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX,
+         "xsl:namespace-alias \u5143\u7d20\u7684 result-prefix \u5c5e\u6027\u542b\u6709\u201c{0}\u201d\u503c\uff0c\u4f46\u662f\u5728\u8be5\u5143\u7d20\u7684\u4f5c\u7528\u57df\u4e2d\u6ca1\u6709\u524d\u7f00\u201c{0}\u201d\u7684\u540d\u79f0\u7a7a\u95f4\u58f0\u660e\u3002"},
+
+    { ER_SET_FEATURE_NULL_NAME,
+      "\u5728 TransformerFactory.setFeature(String name, boolean value) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},
+
+    { ER_GET_FEATURE_NULL_NAME,
+      "\u5728 TransformerFactory.getFeature(String name) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},
+
+    { ER_UNSUPPORTED_FEATURE,
+      "\u65e0\u6cd5\u5bf9\u6b64 TransformerFactory \u8bbe\u7f6e\u7279\u5f81\u201c{0}\u201d\u3002"},
+
+    { ER_EXTENSION_ELEMENT_NOT_ALLOWED_IN_SECURE_PROCESSING,
+        "\u5f53\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u6269\u5c55\u5143\u7d20\u201c{0}\u201d\u3002"},
+
+        { ER_NAMESPACE_CONTEXT_NULL_NAMESPACE,
+          "\u65e0\u6cd5\u4e3a\u7a7a\u540d\u79f0\u7a7a\u95f4 uri \u83b7\u53d6\u524d\u7f00\u3002"},
+
+        { ER_NAMESPACE_CONTEXT_NULL_PREFIX,
+          "\u65e0\u6cd5\u4e3a\u7a7a\u524d\u7f00\u83b7\u53d6\u540d\u79f0\u7a7a\u95f4 uri\u3002"},
+
+        { ER_XPATH_RESOLVER_NULL_QNAME,
+          "\u51fd\u6570\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},
+
+        { ER_XPATH_RESOLVER_NEGATIVE_ARITY,
+          "\u6570\u91cf\u4e0d\u80fd\u4e3a\u8d1f\u3002"},
+
+  // Warnings...
+
+    { WG_FOUND_CURLYBRACE,
+      "\u627e\u5230\u201c}\u201d\uff0c\u4f46\u6ca1\u6709\u6253\u5f00\u5c5e\u6027\u6a21\u677f\uff01"},
+
+    { WG_COUNT_ATTRIB_MATCHES_NO_ANCESTOR,
+      "\u8b66\u544a\uff1acount \u5c5e\u6027\u4e0e xsl:number \u4e2d\u7684\u4e0a\u7ea7\u4e0d\u5339\u914d\uff01\u76ee\u6807 = {0}"},
+
+    { WG_EXPR_ATTRIB_CHANGED_TO_SELECT,
+      "\u65e7\u8bed\u6cd5\uff1a\u201cexpr\u201d\u5c5e\u6027\u7684\u540d\u79f0\u5df2\u7ecf\u66f4\u6539\u4e3a\u201cselect\u201d\u3002"},
+
+    { WG_NO_LOCALE_IN_FORMATNUMBER,
+      "Xalan \u5728 format-number \u51fd\u6570\u4e2d\u5c1a\u672a\u5904\u7406\u8bed\u8a00\u73af\u5883\u540d\u3002"},
+
+    { WG_LOCALE_NOT_FOUND,
+      "\u8b66\u544a\uff1a\u627e\u4e0d\u5230 xml:lang={0} \u7684\u8bed\u8a00\u73af\u5883"},
+
+    { WG_CANNOT_MAKE_URL_FROM,
+      "\u65e0\u6cd5\u4ece {0} \u751f\u6210 URL"},
+
+    { WG_CANNOT_LOAD_REQUESTED_DOC,
+      "\u65e0\u6cd5\u88c5\u5165\u8bf7\u6c42\u7684\u6587\u6863\uff1a{0}"},
+
+    { WG_CANNOT_FIND_COLLATOR,
+      "\u627e\u4e0d\u5230 <sort xml:lang={0} \u7684\u6574\u7406\u5668"},
+
+    { WG_FUNCTIONS_SHOULD_USE_URL,
+      "\u65e7\u8bed\u6cd5\uff1a\u51fd\u6570\u6307\u4ee4\u5e94\u5f53\u4f7f\u7528 {0} \u7684 URL"},
+
+    { WG_ENCODING_NOT_SUPPORTED_USING_UTF8,
+      "\u4e0d\u652f\u6301\u7f16\u7801\uff1a{0}\uff0c\u6b63\u5728\u4f7f\u7528 UTF-8"},
+
+    { WG_ENCODING_NOT_SUPPORTED_USING_JAVA,
+      "\u4e0d\u652f\u6301\u7f16\u7801\uff1a{0}\uff0c\u6b63\u5728\u4f7f\u7528 Java {1}"},
+
+    { WG_SPECIFICITY_CONFLICTS,
+      "\u53d1\u73b0\u7279\u6027\u51b2\u7a81\uff1a\u5c06\u4f7f\u7528\u6837\u5f0f\u8868\u4e2d\u6700\u540e\u627e\u5230\u7684 {0}\u3002"},
+
+    { WG_PARSING_AND_PREPARING,
+      "========= \u89e3\u6790\u548c\u51c6\u5907 {0} =========="},
+
+    { WG_ATTR_TEMPLATE,
+     "\u5c5e\u6027\u6a21\u677f\uff0c{0}"},
+
+    { WG_CONFLICT_BETWEEN_XSLSTRIPSPACE_AND_XSLPRESERVESPACE,
+      "xsl:strip-space \u548c xsl:preserve-space \u4e4b\u95f4\u7684\u5339\u914d\u51b2\u7a81"},
+
+    { WG_ATTRIB_NOT_HANDLED,
+      "Xalan \u5c1a\u672a\u5904\u7406 {0} \u5c5e\u6027\uff01"},
+
+    { WG_NO_DECIMALFORMAT_DECLARATION,
+      "\u627e\u4e0d\u5230\u5341\u8fdb\u5236\u683c\u5f0f\u7684\u58f0\u660e\uff1a{0}"},
+
+    { WG_OLD_XSLT_NS,
+     "XSLT \u540d\u79f0\u7a7a\u95f4\u4e22\u5931\u6216\u4e0d\u6b63\u786e\u3002"},
+
+    { WG_ONE_DEFAULT_XSLDECIMALFORMAT_ALLOWED,
+      "\u53ea\u5141\u8bb8\u4e00\u4e2a\u7f3a\u7701\u7684 xsl:decimal-format \u58f0\u660e\u3002"},
+
+    { WG_XSLDECIMALFORMAT_NAMES_MUST_BE_UNIQUE,
+      "xsl:decimal-format \u540d\u79f0\u5fc5\u987b\u662f\u552f\u4e00\u7684\u3002\u540d\u79f0\u201c{0}\u201d\u6709\u91cd\u590d\u3002"},
+
+    { WG_ILLEGAL_ATTRIBUTE,
+      "{0} \u6709\u4e00\u4e2a\u975e\u6cd5\u5c5e\u6027\uff1a{1}"},
+
+    { WG_COULD_NOT_RESOLVE_PREFIX,
+      "\u65e0\u6cd5\u89e3\u6790\u540d\u79f0\u7a7a\u95f4\u524d\u7f00\uff1a{0}\u3002\u5c06\u5ffd\u7565\u8be5\u8282\u70b9\u3002"},
+
+    { WG_STYLESHEET_REQUIRES_VERSION_ATTRIB,
+      "xsl:stylesheet \u9700\u8981\u201cversion\u201d\u5c5e\u6027\uff01"},
+
+    { WG_ILLEGAL_ATTRIBUTE_NAME,
+      "\u975e\u6cd5\u5c5e\u6027\u540d\u79f0\uff1a{0}"},
+
+    { WG_ILLEGAL_ATTRIBUTE_VALUE,
+      "\u7528\u4e8e\u5c5e\u6027 {0} \u7684\u503c\u975e\u6cd5\uff1a{1}"},
+
+    { WG_EMPTY_SECOND_ARG,
+      "\u4ece\u6587\u6863\u51fd\u6570\u7684\u7b2c\u4e8c\u53c2\u6570\u4ea7\u751f\u7684\u8282\u70b9\u96c6\u662f\u7a7a\u7684\u3002\u8fd4\u56de\u4e00\u4e2a\u7a7a\u8282\u70b9\u96c6\u3002"},
+
+  //Following are the new WARNING keys added in XALAN code base after Jdk 1.4 (Xalan 2.2-D11)
+
+    // Note to translators:  "name" and "xsl:processing-instruction" are keywords
+    // and must not be translated.
+    { WG_PROCESSINGINSTRUCTION_NAME_CANT_BE_XML,
+      "xsl:processing-instruction \u540d\u79f0\u7684\u201cname\u201d\u5c5e\u6027\u7684\u503c\u4e0d\u5f97\u4e3a\u201cxml\u201d"},
+
+    // Note to translators:  "name" and "xsl:processing-instruction" are keywords
+    // and must not be translated.  "NCName" is an XML data-type and must not be
+    // translated.
+    { WG_PROCESSINGINSTRUCTION_NOTVALID_NCNAME,
+      "xsl:processing-instruction \u7684\u201cname\u201d\u5c5e\u6027\u7684\u503c\u5fc5\u987b\u662f\u6709\u6548\u7684 NCName\uff1a{0}"},
+
+    // Note to translators:  This message is reported if the stylesheet that is
+    // being processed attempted to construct an XML document with an attribute in a
+    // place other than on an element.  The substitution text specifies the name of
+    // the attribute.
+    { WG_ILLEGAL_ATTRIBUTE_POSITION,
+      "\u5728\u751f\u6210\u5b50\u8282\u70b9\u4e4b\u540e\u6216\u5728\u751f\u6210\u5143\u7d20\u4e4b\u524d\u65e0\u6cd5\u6dfb\u52a0\u5c5e\u6027 {0}\u3002\u5c06\u5ffd\u7565\u5c5e\u6027\u3002"},
+
+    { NO_MODIFICATION_ALLOWED_ERR,
+      "\u8bd5\u56fe\u4fee\u6539\u4e0d\u5141\u8bb8\u4fee\u6539\u7684\u5bf9\u8c61\u3002"
+    },
+
+    //Check: WHY THERE IS A GAP B/W NUMBERS in the XSLTErrorResources properties file?
+
+  // Other miscellaneous text used inside the code...
+  { "ui_language", "zh"},
+  {  "help_language",  "zh" },
+  {  "language",  "zh" },
+  { "BAD_CODE", "createMessage \u7684\u53c2\u6570\u8d85\u51fa\u8303\u56f4"},
+  {  "FORMAT_FAILED", "\u5728 messageFormat \u8c03\u7528\u8fc7\u7a0b\u4e2d\u629b\u51fa\u4e86\u5f02\u5e38"},
+  {  "version", ">>>>>>> Xalan \u7248\u672c"},
+  {  "version2",  "<<<<<<<"},
+  {  "yes", "\u662f"},
+  { "line", "\u884c\u53f7"},
+  { "column","\u5217\u53f7"},
+  { "xsldone", "XSLProcessor\uff1a\u5b8c\u6210"},
+
+
+  // Note to translators:  The following messages provide usage information
+  // for the Xalan Process command line.  "Process" is the name of a Java class,
+  // and should not be translated.
+  { "xslProc_option", "Xalan-J \u547d\u4ee4\u884c Process \u7c7b\u9009\u9879\uff1a"},
+  { "xslProc_option", "Xalan-J \u547d\u4ee4\u884c Process \u7c7b\u9009\u9879\uff1a"},
+  { "xslProc_invalid_xsltc_option", "\u5728 XSLTC \u65b9\u5f0f\u4e2d\uff0c\u4e0d\u652f\u6301\u9009\u9879 {0}\u3002"},
+  { "xslProc_invalid_xalan_option", "\u9009\u9879 {0} \u53ea\u80fd\u4e0e -XSLTC \u4e00\u8d77\u4f7f\u7528\u3002"},
+  { "xslProc_no_input", "\u9519\u8bef\uff1a\u6ca1\u6709\u6307\u5b9a\u6837\u5f0f\u8868\u6216\u8f93\u5165 xml\u3002\u4e0d\u5e26\u4efb\u4f55\u9009\u9879\u8fd0\u884c\u6b64\u547d\u4ee4\uff0c\u4ee5\u4e86\u89e3\u4f7f\u7528\u8bf4\u660e\u3002"},
+  { "xslProc_common_options", "\uff0d \u5e38\u7528\u9009\u9879 \uff0d"},
+  { "xslProc_xalan_options", "\u2015 Xalan \u9009\u9879 \u2015"},
+  { "xslProc_xsltc_options", "\u2015 XSLTC \u9009\u9879 \u2015"},
+  { "xslProc_return_to_continue", "\uff08\u8bf7\u6309 <return> \u952e\u7ee7\u7eed\uff09"},
+
+   // Note to translators: The option name and the parameter name do not need to
+   // be translated. Only translate the messages in parentheses.  Note also that
+   // leading whitespace in the messages is used to indent the usage information
+   // for each option in the English messages.
+   // Do not translate the keywords: XSLTC, SAX, DOM and DTM.
+  { "optionXSLTC", "   [-XSLTC \uff08\u4f7f\u7528 XSLTC \u8f6c\u6362\uff09]"},
+  { "optionIN", "   [-IN inputXMLURL]"},
+  { "optionXSL", "[-XSL XSLTransformationURL]"},
+  { "optionOUT",  "[-OUT outputFileName]"},
+  { "optionLXCIN", "[-LXCIN compiledStylesheetFileNameIn]"},
+  { "optionLXCOUT", "[-LXCOUT compiledStylesheetFileNameOutOut]"},
+  { "optionPARSER", "   [-PARSER fully qualified class name of parser liaison]"},
+  {  "optionE", "[-E \uff08\u4e0d\u8981\u5c55\u5f00\u5b9e\u4f53\u5f15\u7528\uff09]"},
+  {  "optionV",  "[-E \uff08\u4e0d\u8981\u5c55\u5f00\u5b9e\u4f53\u5f15\u7528\uff09]"},
+  {  "optionQC", "[-QC \uff08\u9759\u9ed8\u6a21\u5f0f\u51b2\u7a81\u8b66\u544a\uff09]"},
+  {  "optionQ", "[-Q \uff08\u9759\u9ed8\u65b9\u5f0f\uff09]"},
+  {  "optionLF", "[-LF \uff08\u4ec5\u5728\u8f93\u51fa\u65f6\u4f7f\u7528\u6362\u884c {\u7f3a\u7701\u503c\u662f CR/LF}\uff09]"},
+  {  "optionCR", "[-CR \uff08\u4ec5\u5728\u8f93\u51fa\u65f6\u4f7f\u7528\u56de\u8f66\u7b26 {\u7f3a\u7701\u503c\u662f CR/LF}\uff09]"},
+  { "optionESCAPE", "[-ESCAPE \uff08\u8bbe\u7f6e\u8f6c\u4e49\u5b57\u7b26 {\u7f3a\u7701\u503c\u662f <>&\"\'\\r\\n}\uff09]"},
+  { "optionINDENT", "[-INDENT \uff08\u63a7\u5236\u7f29\u8fdb\u591a\u5c11\u7a7a\u683c {\u7f3a\u7701\u503c\u662f 0}\uff09]"},
+  { "optionTT", "[-TT \uff08\u5728\u6a21\u677f\u88ab\u8c03\u7528\u65f6\u8ddf\u8e2a\u6a21\u677f\u3002\uff09]"},
+  { "optionTG", "[-TG \uff08\u8ddf\u8e2a\u6bcf\u4e00\u4e2a\u751f\u6210\u4e8b\u4ef6\u3002\uff09]"},
+  { "optionTS", "[-TS \uff08\u8ddf\u8e2a\u6bcf\u4e00\u4e2a\u9009\u62e9\u4e8b\u4ef6\u3002\uff09]"},
+  {  "optionTTC", "[-TTC \uff08\u5728\u5b50\u6a21\u677f\u88ab\u5904\u7406\u65f6\u5bf9\u5176\u8fdb\u884c\u8ddf\u8e2a\u3002\uff09]"},
+  { "optionTCLASS", "[-TCLASS \uff08\u8ddf\u8e2a\u6269\u5c55\u7684 TraceListener \u7c7b\u3002\uff09]"},
+  { "optionVALIDATE", "[-VALIDATE \uff08\u8bbe\u7f6e\u662f\u5426\u8fdb\u884c\u9a8c\u8bc1\u3002\u7f3a\u7701\u65f6\u9a8c\u8bc1\u662f\u5173\u95ed\u7684\u3002\uff09]"},
+  { "optionEDUMP", "[-EDUMP {\u53ef\u9009\u6587\u4ef6\u540d} \uff08\u53d1\u751f\u9519\u8bef\u65f6\u5806\u6808\u8f6c\u50a8\u3002\uff09]"},
+  {  "optionXML", "[-XML \uff08\u4f7f\u7528 XML \u683c\u5f0f\u5316\u7a0b\u5e8f\u5e76\u6dfb\u52a0 XML \u5934\u3002\uff09]"},
+  {  "optionTEXT", "[-TEXT \uff08\u4f7f\u7528\u7b80\u5355\u6587\u672c\u683c\u5f0f\u5316\u7a0b\u5e8f\u3002\uff09]"},
+  {  "optionHTML", "[-HTML \uff08\u4f7f\u7528 HTML \u683c\u5f0f\u5316\u7a0b\u5e8f\uff09]"},
+  {  "optionPARAM", "[-PARAM name expression \uff08\u8bbe\u7f6e\u6837\u8bc6\u8868\u53c2\u6570\uff09]"},
+  {  "noParsermsg1", "XSL \u5904\u7406\u4e0d\u6210\u529f\u3002"},
+  {  "noParsermsg2", "** \u627e\u4e0d\u5230\u89e3\u6790\u5668 **"},
+  { "noParsermsg3",  "\u8bf7\u68c0\u67e5\u60a8\u7684\u7c7b\u8def\u5f84\u3002"},
+  { "noParsermsg4", "\u5982\u679c\u6ca1\u6709 IBM \u7684 XML Parser for Java\uff0c\u60a8\u53ef\u4ee5\u4ece\u4ee5\u4e0b\u4f4d\u7f6e\u4e0b\u8f7d\u5b83\uff1a"},
+  { "noParsermsg5", "IBM \u7684 AlphaWorks\uff1ahttp://www.alphaworks.ibm.com/formula/xml"},
+  { "optionURIRESOLVER", "[-URIRESOLVER full class name \uff08\u4f7f\u7528 URIResolver \u89e3\u6790 URI\uff09]"},
+  { "optionENTITYRESOLVER",  "[-ENTITYRESOLVER full class name \uff08\u4f7f\u7528 EntityResolver \u89e3\u6790\u5b9e\u4f53\uff09]"},
+  { "optionCONTENTHANDLER",  "[-CONTENTHANDLER full class name \uff08\u4f7f\u7528 ContentHandler \u4e32\u884c\u5316\u8f93\u51fa\uff09]"},
+  {  "optionLINENUMBERS",  "[-L use line numbers for source document]"},
+  { "optionSECUREPROCESSING", "   [-SECURE \uff08\u5c06\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true\u3002\uff09]"},
+
+    // Following are the new options added in XSLTErrorResources.properties files after Jdk 1.4 (Xalan 2.2-D11)
+
+
+  {  "optionMEDIA",  "   [-MEDIA mediaType \uff08\u4f7f\u7528 media \u5c5e\u6027\u67e5\u627e\u4e0e\u6587\u6863\u5173\u8054\u7684\u6837\u5f0f\u8868\u3002\uff09]"},
+  {  "optionFLAVOR",  "   [-FLAVOR flavorName \uff08\u663e\u5f0f\u4f7f\u7528 s2s=SAX \u6216 d2d=DOM \u8fdb\u884c\u8f6c\u6362\u3002\uff09]"}, // Added by sboag/scurcuru; experimental
+  { "optionDIAG", "[-DIAG \uff08\u6253\u5370\u5168\u90e8\u6beb\u79d2\u8f6c\u6362\u6807\u8bb0\u3002\uff09]"},
+  { "optionINCREMENTAL",  "   [-INCREMENTAL \uff08\u901a\u8fc7\u5c06 http://xml.apache.org/xalan/features/incremental \u8bbe\u7f6e\u4e3a true \u8bf7\u6c42\u589e\u91cf DTM \u6784\u9020\u3002\uff09]"},
+  {  "optionNOOPTIMIMIZE",  "   [-NOOPTIMIMIZE \uff08\u901a\u8fc7\u5c06 http://xml.apache.org/xalan/features/optimize \u8bbe\u7f6e\u4e3a false \u8bf7\u6c42\u65e0\u6837\u5f0f\u8868\u7684\u4f18\u5316\u5904\u7406\u3002\uff09]"},
+  { "optionRL",  "   [-RL recursionlimit \uff08\u65ad\u8a00\u6837\u5f0f\u8868\u9012\u5f52\u6df1\u5ea6\u7684\u6570\u5b57\u6781\u9650\u3002\uff09]"},
+  {   "optionXO",  "[-XO [transletName] \uff08\u65ad\u8a00\u751f\u6210\u7684 translet \u7684\u540d\u79f0\uff09]"},
+  {  "optionXD", "[-XD destinationDirectory \uff08\u6307\u5b9a translet \u7684\u76ee\u6807\u76ee\u5f55\uff09]"},
+  {  "optionXJ",  "[-XJ jarfile \uff08\u5c06 translet \u7c7b\u6253\u5305\u6210\u540d\u79f0\u4e3a <jarfile> \u7684 jar \u6587\u4ef6\uff09]"},
+  {   "optionXP",  "[-XP package \uff08\u6307\u51fa\u6240\u6709\u751f\u6210\u7684 translet \u7c7b\u7684\u8f6f\u4ef6\u5305\u540d\u79f0\u524d\u7f00\uff09]"},
+
+  //AddITIONAL  STRINGS that need L10n
+  // Note to translators:  The following message describes usage of a particular
+  // command-line option that is used to enable the "template inlining"
+  // optimization.  The optimization involves making a copy of the code
+  // generated for a template in another template that refers to it.
+  { "optionXN",  "[-XN \uff08\u542f\u7528\u6a21\u677f\u4ee3\u7801\u5d4c\u5165\uff09]" },
+  { "optionXX",  "[-XX \uff08\u6253\u5f00\u9644\u52a0\u8c03\u8bd5\u6d88\u606f\u8f93\u51fa\uff09]"},
+  { "optionXT" , "[-XT \uff08\u53ef\u80fd\u7684\u8bdd\u4f7f\u7528 translet \u8fdb\u884c\u8f6c\u6362\uff09]"},
+  { "diagTiming","--------- {0} \u901a\u8fc7 {1} \u7684\u8f6c\u6362\u8017\u65f6 {2} \u6beb\u79d2" },
+  { "recursionTooDeep","\u6a21\u677f\u5d4c\u5957\u592a\u6df1\u3002\u5d4c\u5957 = {0}\uff0c\u6a21\u677f {1} {2}" },
+  { "nameIs", "\u540d\u79f0\u4e3a" },
+  { "matchPatternIs", "\u5339\u914d\u6a21\u5f0f\u4e3a" }
+
+  };
+  }
+  // ================= INFRASTRUCTURE ======================
+
+  /** String for use when a bad error code was encountered.    */
+  public static final String BAD_CODE = "BAD_CODE";
+
+  /** String for use when formatting of the error string failed.   */
+  public static final String FORMAT_FAILED = "FORMAT_FAILED";
+
+  /** General error string.   */
+  public static final String ERROR_STRING = "#\u9519\u8bef";
+
+  /** String to prepend to error messages.  */
+  public static final String ERROR_HEADER = "\u9519\u8bef\uff1a";
+
+  /** String to prepend to warning messages.    */
+  public static final String WARNING_HEADER = "\u8b66\u544a\uff1a";
+
+  /** String to specify the XSLT module.  */
+  public static final String XSL_HEADER = "XSLT ";
+
+  /** String to specify the XML parser module.  */
+  public static final String XML_HEADER = "XML ";
+
+  /** I don't think this is used any more.
+   * @deprecated  */
+  public static final String QUERY_HEADER = "PATTERN ";
+
+
+  /**
+   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior
+   *   of ResourceBundle.getBundle().
+   *
+   *   @param className the name of the class that implements the resource bundle.
+   *   @return the ResourceBundle
+   *   @throws MissingResourceException
+   */
+  public static final XSLTErrorResources loadResourceBundle(String className)
+          throws MissingResourceException
+  {
+
+    Locale locale = Locale.getDefault();
+    String suffix = getResourceSuffix(locale);
+
+    try
+    {
+
+      // first try with the given locale
+      return (XSLTErrorResources) ResourceBundle.getBundle(className
+              + suffix, locale);
+    }
+    catch (MissingResourceException e)
+    {
+      try  // try to fall back to en_US if we can't load
+      {
+
+        // Since we can't find the localized property file,
+        // fall back to en_US.
+        return (XSLTErrorResources) ResourceBundle.getBundle(className,
+                new Locale("zh", "CN"));
+      }
+      catch (MissingResourceException e2)
+      {
+
+        // Now we are really in trouble.
+        // very bad, definitely very bad...not going to get very far
+        throw new MissingResourceException(
+          "Could not load any resource bundles.", className, "");
+      }
+    }
+  }
+
+  /**
+   * Return the resource file suffic for the indicated locale
+   * For most locales, this will be based the language code.  However
+   * for Chinese, we do distinguish between Taiwan and PRC
+   *
+   * @param locale the locale
+   * @return an String suffix which canbe appended to a resource name
+   */
+  private static final String getResourceSuffix(Locale locale)
+  {
+
+    String suffix = "_" + locale.getLanguage();
+    String country = locale.getCountry();
+
+    if (country.equals("TW"))
+      suffix += "_" + country;
+
+    return suffix;
+  }
+
+
+}
diff --git a/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_sl.java b/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_sl.java
old mode 100755
new mode 100644
index 8af157c..0110341
--- a/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_sl.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_sl.java
@@ -1,913 +1,913 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: ErrorMessages_sl.java,v 1.25 2004/12/15 17:35:40 jycli Exp $

- */

-

-package org.apache.xalan.xsltc.compiler.util;

-

-import java.util.ListResourceBundle;

-

-/**

- * @author Morten Jorgensen

- */

-public class ErrorMessages_sl extends ListResourceBundle {

-

-/*

- * XSLTC compile-time error messages.

- *

- * General notes to translators and definitions:

- *

- *   1) XSLTC is the name of the product.  It is an acronym for "XSLT Compiler".

- *      XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *

- *   2) A stylesheet is a description of how to transform an input XML document

- *      into a resultant XML document (or HTML document or text).  The

- *      stylesheet itself is described in the form of an XML document.

- *

- *   3) A template is a component of a stylesheet that is used to match a

- *      particular portion of an input document and specifies the form of the

- *      corresponding portion of the output document.

- *

- *   4) An axis is a particular "dimension" in a tree representation of an XML

- *      document; the nodes in the tree are divided along different axes.

- *      Traversing the "child" axis, for instance, means that the program

- *      would visit each child of a particular node; traversing the "descendant"

- *      axis means that the program would visit the child nodes of a particular

- *      node, their children, and so on until the leaf nodes of the tree are

- *      reached.

- *

- *   5) An iterator is an object that traverses nodes in a tree along a

- *      particular axis, one at a time.

- *

- *   6) An element is a mark-up tag in an XML document; an attribute is a

- *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *      "elem" is an element name, "attr" and "attr2" are attribute names with

- *      the values "val" and "val2", respectively.

- *

- *   7) A namespace declaration is a special attribute that is used to associate

- *      a prefix with a URI (the namespace).  The meanings of element names and

- *      attribute names that use that prefix are defined with respect to that

- *      namespace.

- *

- *   8) DOM is an acronym for Document Object Model.  It is a tree

- *      representation of an XML document.

- *

- *      SAX is an acronym for the Simple API for XML processing.  It is an API

- *      used inform an XML processor (in this case XSLTC) of the structure and

- *      content of an XML document.

- *

- *      Input to the stylesheet processor can come from an XML parser in the

- *      form of a DOM tree or through the SAX API.

- *

- *   9) DTD is a document type declaration.  It is a way of specifying the

- *      grammar for an XML file, the names and types of elements, attributes,

- *      etc.

- *

- *  10) XPath is a specification that describes a notation for identifying

- *      nodes in a tree-structured representation of an XML document.  An

- *      instance of that notation is referred to as an XPath expression.

- *

- *  11) Translet is an invented term that refers to the class file that contains

- *      the compiled form of a stylesheet.

- */

-

-    // These message should be read from a locale-specific resource bundle

-    /** Get the lookup table for error messages.

-     *

-     * @return The message lookup table.

-     */

-    public Object[][] getContents()

-    {

-      return new Object[][] {

-        {ErrorMsg.MULTIPLE_STYLESHEET_ERR,

-        "V isti datoteki je dolo\u010denih ve\u010d slogovnih datotek."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a

-         * template.  The same name was used on two different templates in the

-         * same stylesheet.

-         */

-        {ErrorMsg.TEMPLATE_REDEF_ERR,

-        "Predloga ''{0}'' je \u017ee dolo\u010dena v tej slogovni datoteki."},

-

-

-        /*

-         * Note to translators:  The substitution text is the name of a

-         * template.  A reference to the template name was encountered, but the

-         * template is undefined.

-         */

-        {ErrorMsg.TEMPLATE_UNDEF_ERR,

-        "Predloga ''{0}'' ni dolo\u010dena v tej slogovni datoteki."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a variable

-         * that was defined more than once.

-         */

-        {ErrorMsg.VARIABLE_REDEF_ERR,

-        "Spremenljivka ''{0}'' je ve\u010dkrat dolo\u010dena znotraj istega obsega."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a variable

-         * or parameter.  A reference to the variable or parameter was found,

-         * but it was never defined.

-         */

-        {ErrorMsg.VARIABLE_UNDEF_ERR,

-        "Spremenljivka ali parameter ''{0}'' je nedolo\u010den."},

-

-        /*

-         * Note to translators:  The word "class" here refers to a Java class.

-         * Processing the stylesheet required a class to be loaded, but it could

-         * not be found.  The substitution text is the name of the class.

-         */

-        {ErrorMsg.CLASS_NOT_FOUND_ERR,

-        "Ni mogo\u010de najti razreda ''{0}''."},

-

-        /*

-         * Note to translators:  The word "method" here refers to a Java method.

-         * Processing the stylesheet required a reference to the method named by

-         * the substitution text, but it could not be found.  "public" is the

-         * Java keyword.

-         */

-        {ErrorMsg.METHOD_NOT_FOUND_ERR,

-        "Zunanje metode ''{0}'' ni mogo\u010de najti (mora biti javna)."},

-

-        /*

-         * Note to translators:  The word "method" here refers to a Java method.

-         * Processing the stylesheet required a reference to the method named by

-         * the substitution text, but no method with the required types of

-         * arguments or return type could be found.

-         */

-        {ErrorMsg.ARGUMENT_CONVERSION_ERR,

-        "Ni mogo\u010de pretvoriti argumenta / tipa vrnitve v klicu metode ''{0}''"},

-

-        /*

-         * Note to translators:  The file or URI named in the substitution text

-         * is missing.

-         */

-        {ErrorMsg.FILE_NOT_FOUND_ERR,

-        "Datoteke ali URI-ja ''{0}'' ni mogo\u010de najti."},

-

-        /*

-         * Note to translators:  This message is displayed when the URI

-         * mentioned in the substitution text is not well-formed syntactically.

-         */

-        {ErrorMsg.INVALID_URI_ERR,

-        "Neveljaven URI ''{0}''."},

-

-        /*

-         * Note to translators:  The file or URI named in the substitution text

-         * exists but could not be opened.

-         */

-        {ErrorMsg.FILE_ACCESS_ERR,

-        "Datoteke ali URI-ja ''{0}'' ni mogo\u010de odpreti."},

-

-        /*

-         * Note to translators: <xsl:stylesheet> and <xsl:transform> are

-         * keywords that should not be translated.

-         */

-        {ErrorMsg.MISSING_ROOT_ERR,

-        "Pri\u010dakovan element <xsl:stylesheet> ali <xsl:transform>."},

-

-        /*

-         * Note to translators:  The stylesheet contained a reference to a

-         * namespace prefix that was undefined.  The value of the substitution

-         * text is the name of the prefix.

-         */

-        {ErrorMsg.NAMESPACE_UNDEF_ERR,

-        "Predpona imenskega prostora ''{0}'' ni dolo\u010dena."},

-

-        /*

-         * Note to translators:  The Java function named in the stylesheet could

-         * not be found.

-         */

-        {ErrorMsg.FUNCTION_RESOLVE_ERR,

-        "Klica funkcije ''{0}'' ni mogo\u010de razre\u0161iti."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a

-         * function.  A literal string here means a constant string value.

-         */

-        {ErrorMsg.NEED_LITERAL_ERR,

-        "Argument za ''{0}'' mora biti dobesedni niz."},

-

-        /*

-         * Note to translators:  This message indicates there was a syntactic

-         * error in the form of an XPath expression.  The substitution text is

-         * the expression.

-         */

-        {ErrorMsg.XPATH_PARSER_ERR,

-        "Napaka pri raz\u010dlenjevanju izraza XPath ''{0}''."},

-

-        /*

-         * Note to translators:  An element in the stylesheet requires a

-         * particular attribute named by the substitution text, but that

-         * attribute was not specified in the stylesheet.

-         */

-        {ErrorMsg.REQUIRED_ATTR_ERR,

-        "Manjka zahtevani atribut ''{0}''."},

-

-        /*

-         * Note to translators:  This message indicates that a character not

-         * permitted in an XPath expression was encountered.  The substitution

-         * text is the offending character.

-         */

-        {ErrorMsg.ILLEGAL_CHAR_ERR,

-        "Neveljavni znak ''{0}'' v izrazu XPath."},

-

-        /*

-         * Note to translators:  A processing instruction is a mark-up item in

-         * an XML document that request some behaviour of an XML processor.  The

-         * form of the name of was invalid in this case, and the substitution

-         * text is the name.

-         */

-        {ErrorMsg.ILLEGAL_PI_ERR,

-        "Neveljavno ime ''{0}'' za navodila za obdelavo."},

-

-        /*

-         * Note to translators:  This message is reported if the stylesheet

-         * being processed attempted to construct an XML document with an

-         * attribute in a place other than on an element.  The substitution text

-         * specifies the name of the attribute.

-         */

-        {ErrorMsg.STRAY_ATTRIBUTE_ERR,

-        "Atribut ''{0}'' zunaj elementa."},

-

-        /*

-         * Note to translators:  An attribute that wasn't recognized was

-         * specified on an element in the stylesheet.  The attribute is named

-         * by the substitution

-         * text.

-         */

-        {ErrorMsg.ILLEGAL_ATTRIBUTE_ERR,

-        "Neveljaven atribut ''{0}''."},

-

-        /*

-         * Note to translators:  "import" and "include" are keywords that should

-         * not be translated.  This messages indicates that the stylesheet

-         * named in the substitution text imported or included itself either

-         * directly or indirectly.

-         */

-        {ErrorMsg.CIRCULAR_INCLUDE_ERR,

-        "Kro\u017eni uvoz/vklju\u010ditev. Slogovna datoteka ''{0}'' je \u017ee nalo\u017eena."},

-

-        /*

-         * Note to translators:  A result-tree fragment is a portion of a

-         * resulting XML document represented as a tree.  "<xsl:sort>" is a

-         * keyword and should not be translated.

-         */

-        {ErrorMsg.RESULT_TREE_SORT_ERR,

-        "Ne morem razvrstiti fragmentov drevesa rezultatov (elementi <xsl:sort> so prezrti). Pri pripravi drevesa rezultatov morate razvrstiti vozli\u0161\u010da."},

-

-        /*

-         * Note to translators:  A name can be given to a particular style to be

-         * used to format decimal values.  The substitution text gives the name

-         * of such a style for which more than one declaration was encountered.

-         */

-        {ErrorMsg.SYMBOLS_REDEF_ERR,

-        "Decimalno oblikovanje ''{0}'' je \u017ee dolo\u010deno."},

-

-        /*

-         * Note to translators:  The stylesheet version named in the

-         * substitution text is not supported.

-         */

-        {ErrorMsg.XSL_VERSION_ERR,

-        "XSL razli\u010dice ''{0}'' XSLTC ne podpira."},

-

-        /*

-         * Note to translators:  The definitions of one or more variables or

-         * parameters depend on one another.

-         */

-        {ErrorMsg.CIRCULAR_VARIABLE_ERR,

-        "Sklic na kro\u017eno spremenljivko/parameter v ''{0}''."},

-

-        /*

-         * Note to translators:  The operator in an expresion with two operands was

-         * not recognized.

-         */

-        {ErrorMsg.ILLEGAL_BINARY_OP_ERR,

-        "Neznan operator za binarni izraz."},

-

-        /*

-         * Note to translators:  This message is produced if a reference to a

-         * function has too many or too few arguments.

-         */

-        {ErrorMsg.ILLEGAL_ARG_ERR,

-        "Neveljavni argument(i) za klic funkcije."},

-

-        /*

-         * Note to translators:  "document()" is the name of function and must

-         * not be translated.  A node-set is a set of the nodes in the tree

-         * representation of an XML document.

-         */

-        {ErrorMsg.DOCUMENT_ARG_ERR,

-        "Drugi argument funkcije document() mora biti skupina vozli\u0161\u010d."},

-

-        /*

-         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords

-         * and should not be translated.  This message describes a syntax error

-         * in the stylesheet.

-         */

-        {ErrorMsg.MISSING_WHEN_ERR,

-        "Zahtevan vsaj en element <xsl:when> v <xsl:choose>."},

-

-        /*

-         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are

-         * keywords and should not be translated.  This message describes a

-         * syntax error in the stylesheet.

-         */

-        {ErrorMsg.MULTIPLE_OTHERWISE_ERR,

-        "Dovoljen samo en element <xsl:otherwise> v <xsl:choose>."},

-

-        /*

-         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are

-         * keywords and should not be translated.  This message describes a

-         * syntax error in the stylesheet.

-         */

-        {ErrorMsg.STRAY_OTHERWISE_ERR,

-        "<xsl:otherwise> lahko uporabljamo samo znotraj <xsl:choose>."},

-

-        /*

-         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords

-         * and should not be translated.  This message describes a syntax error

-         * in the stylesheet.

-         */

-        {ErrorMsg.STRAY_WHEN_ERR,

-        "<xsl:when> lahko uporabljamo samo znotraj <xsl:choose>."},

-

-        /*

-         * Note to translators:  "<xsl:when>", "<xsl:otherwise>" and

-         * "<xsl:choose>" are keywords and should not be translated.  This

-         * message describes a syntax error in the stylesheet.

-         */

-        {ErrorMsg.WHEN_ELEMENT_ERR,

-        "V <xsl:choose> sta dovoljena samo elementa <xsl:when> in <xsl:otherwise>."},

-

-        /*

-         * Note to translators:  "<xsl:attribute-set>" and "name" are keywords

-         * that should not be translated.

-         */

-        {ErrorMsg.UNNAMED_ATTRIBSET_ERR,

-        "V <xsl:attribute-set> manjka atribut 'name'."},

-

-        /*

-         * Note to translators:  An element in the stylesheet contained an

-         * element of a type that it was not permitted to contain.

-         */

-        {ErrorMsg.ILLEGAL_CHILD_ERR,

-        "Neveljavni podrejeni element."},

-

-        /*

-         * Note to translators:  The stylesheet tried to create an element with

-         * a name that was not a valid XML name.  The substitution text contains

-         * the name.

-         */

-        {ErrorMsg.ILLEGAL_ELEM_NAME_ERR,

-        "Elementa ''{0}'' ni mogo\u010de poklicati"},

-

-        /*

-         * Note to translators:  The stylesheet tried to create an attribute

-         * with a name that was not a valid XML name.  The substitution text

-         * contains the name.

-         */

-        {ErrorMsg.ILLEGAL_ATTR_NAME_ERR,

-        "Atributa ''{0}'' ni mogo\u010de poklicati"},

-

-        /*

-         * Note to translators:  The children of the outermost element of a

-         * stylesheet are referred to as top-level elements.  No text should

-         * occur within that outermost element unless it is within a top-level

-         * element.  This message indicates that that constraint was violated.

-         * "<xsl:stylesheet>" is a keyword that should not be translated.

-         */

-        {ErrorMsg.ILLEGAL_TEXT_NODE_ERR,

-        "Tekstovni podatki zunaj elementa na najvi\u0161ji ravni <xsl:stylesheet>."},

-

-        /*

-         * Note to translators:  JAXP is an acronym for the Java API for XML

-         * Processing.  This message indicates that the XML parser provided to

-         * XSLTC to process the XML input document had a configuration problem.

-         */

-        {ErrorMsg.SAX_PARSER_CONFIG_ERR,

-        "Raz\u010dlenjevalnik JAXP ni pravilno konfiguriran"},

-

-        /*

-         * Note to translators:  The substitution text names the internal error

-         * encountered.

-         */

-        {ErrorMsg.INTERNAL_ERR,

-        "Nepopravljiva XSLTC-notranja napaka: ''{0}''"},

-

-        /*

-         * Note to translators:  The stylesheet contained an element that was

-         * not recognized as part of the XSL syntax.  The substitution text

-         * gives the element name.

-         */

-        {ErrorMsg.UNSUPPORTED_XSL_ERR,

-        "Nepodprt XSL element ''{0}''."},

-

-        /*

-         * Note to translators:  The stylesheet referred to an extension to the

-         * XSL syntax and indicated that it was defined by XSLTC, but XSTLC does

-         * not recognized the particular extension named.  The substitution text

-         * gives the extension name.

-         */

-        {ErrorMsg.UNSUPPORTED_EXT_ERR,

-        "Neprepoznana pripona XSLTC ''{0}''."},

-

-        /*

-         * Note to translators:  The XML document given to XSLTC as a stylesheet

-         * was not, in fact, a stylesheet.  XSLTC is able to detect that in this

-         * case because the outermost element in the stylesheet has to be

-         * declared with respect to the XSL namespace URI, but no declaration

-         * for that namespace was seen.

-         */

-        {ErrorMsg.MISSING_XSLT_URI_ERR,

-        "Vhodni dokument ni slogovna datoteka (v korenskem elementu ni naveden imenski prostor XSL)."},

-

-        /*

-         * Note to translators:  XSLTC could not find the stylesheet document

-         * with the name specified by the substitution text.

-         */

-        {ErrorMsg.MISSING_XSLT_TARGET_ERR,

-        "Cilja slogovne datoteke ''{0}'' ni mogo\u010de najti."},

-

-        /*

-         * Note to translators:  This message represents an internal error in

-         * condition in XSLTC.  The substitution text is the class name in XSLTC

-         * that is missing some functionality.

-         */

-        {ErrorMsg.NOT_IMPLEMENTED_ERR,

-        "Ni izvedeno: ''{0}''."},

-

-        /*

-         * Note to translators:  The XML document given to XSLTC as a stylesheet

-         * was not, in fact, a stylesheet.

-         */

-        {ErrorMsg.NOT_STYLESHEET_ERR,

-        "Vhodni dokument ne vsebuje slogovne datoteke XSL."},

-

-        /*

-         * Note to translators:  The element named in the substitution text was

-         * encountered in the stylesheet but is not recognized.

-         */

-        {ErrorMsg.ELEMENT_PARSE_ERR,

-        "Elementa ''{0}'' ni mogo\u010de raz\u010dleniti"},

-

-        /*

-         * Note to translators:  "use", "<key>", "node", "node-set", "string"

-         * and "number" are keywords in this context and should not be

-         * translated.  This message indicates that the value of the "use"

-         * attribute was not one of the permitted values.

-         */

-        {ErrorMsg.KEY_USE_ATTR_ERR,

-        "Atribut uporabe za <key> mora biti vozli\u0161\u010de, skupina vozli\u0161\u010d, niz ali \u0161tevilka."},

-

-        /*

-         * Note to translators:  An XML document can specify the version of the

-         * XML specification to which it adheres.  This message indicates that

-         * the version specified for the output document was not valid.

-         */

-        {ErrorMsg.OUTPUT_VERSION_ERR,

-        "Razli\u010dica izhodnega dokumenta XML mora biti 1.0"},

-

-        /*

-         * Note to translators:  The operator in a comparison operation was

-         * not recognized.

-         */

-        {ErrorMsg.ILLEGAL_RELAT_OP_ERR,

-        "Neznan operator za relacijski izraz"},

-

-        /*

-         * Note to translators:  An attribute set defines as a set of XML

-         * attributes that can be added to an element in the output XML document

-         * as a group.  This message is reported if the name specified was not

-         * used to declare an attribute set.  The substitution text is the name

-         * that is in error.

-         */

-        {ErrorMsg.ATTRIBSET_UNDEF_ERR,

-        "Poskus uporabe neobstoje\u010de skupine atributov ''{0}''."},

-

-        /*

-         * Note to translators:  The term "attribute value template" is a term

-         * defined by XSLT which describes the value of an attribute that is

-         * determined by an XPath expression.  The message indicates that the

-         * expression was syntactically incorrect; the substitution text

-         * contains the expression that was in error.

-         */

-        {ErrorMsg.ATTR_VAL_TEMPLATE_ERR,

-        "Predloge vrednosti atributa ''{0}'' ni mogo\u010de raz\u010dleniti."},

-

-        /*

-         * Note to translators:  ???

-         */

-        {ErrorMsg.UNKNOWN_SIG_TYPE_ERR,

-        "V podpisu za razred ''{0}'' je neznan podatkovni tip."},

-

-        /*

-         * Note to translators:  The substitution text refers to data types.

-         * The message is displayed if a value in a particular context needs to

-         * be converted to type {1}, but that's not possible for a value of

-         * type {0}.

-         */

-        {ErrorMsg.DATA_CONVERSION_ERR,

-        "Ni mogo\u010de pretvoriti podatkovnega tipa ''{0}'' v ''{1}''."},

-

-        /*

-         * Note to translators:  "Templates" is a Java class name that should

-         * not be translated.

-         */

-        {ErrorMsg.NO_TRANSLET_CLASS_ERR,

-        "Te Templates ne vsebujejo veljavne definicije razreda translet."},

-

-        /*

-         * Note to translators:  "Templates" is a Java class name that should

-         * not be translated.

-         */

-        {ErrorMsg.NO_MAIN_TRANSLET_ERR,

-        "Te predloge ne vsebujejo razreda z imenom ''{0}''."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a class.

-         */

-        {ErrorMsg.TRANSLET_CLASS_ERR,

-        "Ni mogo\u010de nalo\u017eiti razreda transleta ''{0}''."},

-

-        {ErrorMsg.TRANSLET_OBJECT_ERR,

-        "Razred transleta je nalo\u017een, vendar priprava primerka transleta ni mogo\u010da."},

-

-        /*

-         * Note to translators:  "ErrorListener" is a Java interface name that

-         * should not be translated.  The message indicates that the user tried

-         * to set an ErrorListener object on object of the class named in the

-         * substitution text with "null" Java value.

-         */

-        {ErrorMsg.ERROR_LISTENER_NULL_ERR,

-        "Poskus nastavitve ErrorListener za ''{0}'' na null"},

-

-        /*

-         * Note to translators:  StreamSource, SAXSource and DOMSource are Java

-         * interface names that should not be translated.

-         */

-        {ErrorMsg.JAXP_UNKNOWN_SOURCE_ERR,

-        "XSLTC podpira samo StreamSource, SAXSource in DOMSource"},

-

-        /*

-         * Note to translators:  "Source" is a Java class name that should not

-         * be translated.  The substitution text is the name of Java method.

-         */

-        {ErrorMsg.JAXP_NO_SOURCE_ERR,

-        "Predmet Source, ki je bil podan z ''{0}'', nima vsebine."},

-

-        /*

-         * Note to translators:  The message indicates that XSLTC failed to

-         * compile the stylesheet into a translet (class file).

-         */

-        {ErrorMsg.JAXP_COMPILE_ERR,

-        "Ni mogo\u010de prevesti slogovne datoteke"},

-

-        /*

-         * Note to translators:  "TransformerFactory" is a class name.  In this

-         * context, an attribute is a property or setting of the

-         * TransformerFactory object.  The substitution text is the name of the

-         * unrecognised attribute.  The method used to retrieve the attribute is

-         * "getAttribute", so it's not clear whether it would be best to

-         * translate the term "attribute".

-         */

-        {ErrorMsg.JAXP_INVALID_ATTR_ERR,

-        "TransformerFactory ne prepozna atributa ''{0}''."},

-

-        /*

-         * Note to translators:  "setResult()" and "startDocument()" are Java

-         * method names that should not be translated.

-         */

-        {ErrorMsg.JAXP_SET_RESULT_ERR,

-        "Klic za setResult() mora biti izveden pred klicem startDocument()."},

-

-        /*

-         * Note to translators:  "Transformer" is a Java interface name that

-         * should not be translated.  A Transformer object should contained a

-         * reference to a translet object in order to be used for

-         * transformations; this message is produced if that requirement is not

-         * met.

-         */

-        {ErrorMsg.JAXP_NO_TRANSLET_ERR,

-        "Transformer ne vsebuje enkapsuliranih translet objektov."},

-

-        /*

-         * Note to translators:  The XML document that results from a

-         * transformation needs to be sent to an output handler object; this

-         * message is produced if that requirement is not met.

-         */

-        {ErrorMsg.JAXP_NO_HANDLER_ERR,

-        "Za rezultat transformacije ni izhodne obravnave."},

-

-        /*

-         * Note to translators:  "Result" is a Java interface name in this

-         * context.  The substitution text is a method name.

-         */

-        {ErrorMsg.JAXP_NO_RESULT_ERR,

-        "Rezultat, ki je bil posredovan ''{0}'', je neveljaven."},

-

-        /*

-         * Note to translators:  "Transformer" is a Java interface name.  The

-         * user's program attempted to access an unrecognized property with the

-         * name specified in the substitution text.  The method used to retrieve

-         * the property is "getOutputProperty", so it's not clear whether it

-         * would be best to translate the term "property".

-         */

-        {ErrorMsg.JAXP_UNKNOWN_PROP_ERR,

-        "Poskus dostopa do neveljavne lastnosti (property) Transformer ''{0}''."},

-

-        /*

-         * Note to translators:  SAX2DOM is the name of a Java class that should

-         * not be translated.  This is an adapter in the sense that it takes a

-         * DOM object and converts it to something that uses the SAX API.

-         */

-        {ErrorMsg.SAX2DOM_ADAPTER_ERR,

-        "Ni mogo\u010de ustvariti adapterja SAX2DOM: ''{0}''."},

-

-        /*

-         * Note to translators:  "XSLTCSource.build()" is a Java method name.

-         * "systemId" is an XML term that is short for "system identification".

-         */

-        {ErrorMsg.XSLTC_SOURCE_ERR,

-        "Klic XSLTCSource.build() brez predhodne nastavitve systemId."},

-

-        { ErrorMsg.ER_RESULT_NULL,

-            "Rezultat naj ne bi bil NULL"},

-

-        /*

-         * Note to translators:  This message indicates that the value argument

-         * of setParameter must be a valid Java Object.

-         */

-        {ErrorMsg.JAXP_INVALID_SET_PARAM_VALUE,

-        "Vrednost parametra {0} mora biti veljaven javanski objekt"},

-

-

-        {ErrorMsg.COMPILE_STDIN_ERR,

-        "Mo\u017enost -i mora biti uporabljena skupaj z mo\u017enostjo -o."},

-

-

-        /*

-         * Note to translators:  This message contains usage information for a

-         * means of invoking XSLTC from the command-line.  The message is

-         * formatted for presentation in English.  The strings <output>,

-         * <directory>, etc. indicate user-specified argument values, and can

-         * be translated - the argument <package> refers to a Java package, so

-         * it should be handled in the same way the term is handled for JDK

-         * documentation.

-         */

-        {ErrorMsg.COMPILE_USAGE_STR,

-        "SYNOPSIS\n   java org.apache.xalan.xsltc.cmdline.Compile [-o <izhodna datoteka>]\n      [-d <directory>] [-j  <datoteka jar>] [-p <paket>]\n      [-n] [-x] [-u] [-v] [-h] { <stylesheet> | -i }\n\nOPTIONS\n   -o <izhodna datoteka>    dodeli ime <izhodna datoteka> generiranemu\n                  transletu.  Ime transleta se po privzetih nastavitvah\n                 izpelje iz imena <stylesheet>.  Pri prevajanju\n                  ve\u010d slogovnih datotek je ta mo\u017enost prezrta.\n   -d <directory> dolo\u010di ciljno mapo za translet\n   -j <datoteka jar>   zdru\u017ei razrede translet v datoteko jar\n       pod imenom, dolo\u010denim z <datoteka jar>\n   -p <paket>   dolo\u010di predpono imena paketa vsem generiranim\n               razredom translet.\n   -n             omogo\u010da vrivanje predlog (v povpre\u010dju bolj\u0161e privzeto\n                      obna\u0161anje).\n   -x             vklopi dodatna izhodna sporo\u010dila za iskanje napak\n   -u             prevede argumente <stylesheet> kot URL-je\n   -i             prisili prevajalnik k branju slogovne datoteke iz stdin\n   -v             natisne razli\u010dico prevajalnika\n   -h             natisne ta stavek za uporabo\n"},

-

-        /*

-         * Note to translators:  This message contains usage information for a

-         * means of invoking XSLTC from the command-line.  The message is

-         * formatted for presentation in English.  The strings <jarfile>,

-         * <document>, etc. indicate user-specified argument values, and can

-         * be translated - the argument <class> refers to a Java class, so it

-         * should be handled in the same way the term is handled for JDK

-         * documentation.

-         */

-        {ErrorMsg.TRANSFORM_USAGE_STR,

-        "SYNOPSIS \n   java org.apache.xalan.xsltc.cmdline.Transform [-j <datoteka jar>]\n      [-x] [-n <ponovitve>] {-u <document_url> | <dokument>}\n      <razred> [<param1>=<value1> ...]\n\n   uporablja translet <razred> za pretvorbo dokumenta XML \n   navedenega kot <dokument>. Translet <razred> je ali v\n   uporabnikovem CLASSPATH ali v izbirno navedeni datoteki <datoteka jar>.\nOPTIONS\n   -j <datoteka jar>    dolo\u010di datoteko jar, iz katere bo nalo\u017een translet\n   -x               vklopi dodatna sporo\u010dila za iskanje napak\n   n  <ponovitve> <ponovitve>-krat po\u017eene preoblikovanje in\n                   prika\u017ee informacije profiliranja\n   -u <document_url> dolo\u010di vhodni dokument XML za URL\n"},

-

-

-

-        /*

-         * Note to translators:  "<xsl:sort>", "<xsl:for-each>" and

-         * "<xsl:apply-templates>" are keywords that should not be translated.

-         * The message indicates that an xsl:sort element must be a child of

-         * one of the other kinds of elements mentioned.

-         */

-        {ErrorMsg.STRAY_SORT_ERR,

-        "<xsl:sort> je mogo\u010de uporabljati samo znotraj <xsl:for-each> ali <xsl:apply-templates>."},

-

-        /*

-         * Note to translators:  The message indicates that the encoding

-         * requested for the output document was on that requires support that

-         * is not available from the Java Virtual Machine being used to execute

-         * the program.

-         */

-        {ErrorMsg.UNSUPPORTED_ENCODING,

-        "Ta JVM ne podpira izhodnega kodiranja ''{0}''."},

-

-        /*

-         * Note to translators:  The message indicates that the XPath expression

-         * named in the substitution text was not well formed syntactically.

-         */

-        {ErrorMsg.SYNTAX_ERR,

-        "Napaka v sintaksi v ''{0}''."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a Java

-         * class.  The term "constructor" here is the Java term.  The message is

-         * displayed if XSLTC could not find a constructor for the specified

-         * class.

-         */

-        {ErrorMsg.CONSTRUCTOR_NOT_FOUND,

-        "Ni mogo\u010de najti zunanjega konstruktorja ''{0}''."},

-

-        /*

-         * Note to translators:  "static" is the Java keyword.  The substitution

-         * text is the name of a function.  The first argument of that function

-         * is not of the required type.

-         */

-        {ErrorMsg.NO_JAVA_FUNCT_THIS_REF,

-        "Prvi argument nestati\u010dne (non-static) javanske funkcije ''{0}'' ni veljaven sklic na objekt."},

-

-        /*

-         * Note to translators:  An XPath expression was not of the type

-         * required in a particular context.  The substitution text is the

-         * expression that was in error.

-         */

-        {ErrorMsg.TYPE_CHECK_ERR,

-        "Napaka pri preverjanju tipa izraza ''{0}''."},

-

-        /*

-         * Note to translators:  An XPath expression was not of the type

-         * required in a particular context.  However, the location of the

-         * problematic expression is unknown.

-         */

-        {ErrorMsg.TYPE_CHECK_UNK_LOC_ERR,

-        "Napaka pri preverjanju tipa izraza na neznani lokaciji."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a command-

-         * line option that was not recognized.

-         */

-        {ErrorMsg.ILLEGAL_CMDLINE_OPTION_ERR,

-        "Mo\u017enost ukazne vrstice ''{0}'' ni veljavna."},

-

-        /*

-         * Note to translators:  The substitution text is the name of a command-

-         * line option.

-         */

-        {ErrorMsg.CMDLINE_OPT_MISSING_ARG_ERR,

-        "Mo\u017enosti ukazne vrstice ''{0}'' manjka zahtevani argument."},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text contains two error

-         * messages.  The spacing before the second substitution text indents

-         * it the same amount as the first in English.

-         */

-        {ErrorMsg.WARNING_PLUS_WRAPPED_MSG,

-        "OPOZORILO:  ''{0}''\n       :{1}"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text is an error message.

-         */

-        {ErrorMsg.WARNING_MSG,

-        "OPOZORILO:  ''{0}''"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text contains two error

-         * messages.  The spacing before the second substitution text indents

-         * it the same amount as the first in English.

-         */

-        {ErrorMsg.FATAL_ERR_PLUS_WRAPPED_MSG,

-        "USODNA NAPAKA:  ''{0}''\n           :{1}"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text is an error message.

-         */

-        {ErrorMsg.FATAL_ERR_MSG,

-        "USODNA NAPAKA:  ''{0}''"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text contains two error

-         * messages.  The spacing before the second substitution text indents

-         * it the same amount as the first in English.

-         */

-        {ErrorMsg.ERROR_PLUS_WRAPPED_MSG,

-        "USODNA NAPAKA:  ''{0}''\n     :{1}"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text is an error message.

-         */

-        {ErrorMsg.ERROR_MSG,

-        "NAPAKA:  ''{0}''"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a class.

-         */

-        {ErrorMsg.TRANSFORM_WITH_TRANSLET_STR,

-        "Pretvorba z uporabo transleta ''{0}'' "},

-

-        /*

-         * Note to translators:  The first substitution is the name of a class,

-         * while the second substitution is the name of a jar file.

-         */

-        {ErrorMsg.TRANSFORM_WITH_JAR_STR,

-        "Pretvorba z uporabo transleta ''{0}'' iz datoteke jar ''{1}''"},

-

-        /*

-         * Note to translators:  "TransformerFactory" is the name of a Java

-         * interface and must not be translated.  The substitution text is

-         * the name of the class that could not be instantiated.

-         */

-        {ErrorMsg.COULD_NOT_CREATE_TRANS_FACT,

-        "Ni mogo\u010de ustvariti primerka razreda TransformerFactory ''{0}''."},

-

-        /*

-         * Note to translators:  This message is produced when the user

-         * specified a name for the translet class that contains characters

-         * that are not permitted in a Java class name.  The substitution

-         * text "{0}" specifies the name the user requested, while "{1}"

-         * specifies the name the processor used instead.

-         */

-        {ErrorMsg.TRANSLET_NAME_JAVA_CONFLICT,

-         "Imena ''{0}'' ni bilo mogo\u010de uporabiti kot ime razreda translet, saj vsebuje znake, ki v imenu javanskega razreda niso dovoljeni.  Uporabljeno je bilo ime ''{1}''."},

-

-        /*

-         * Note to translators:  The following message is used as a header.

-         * All the error messages are collected together and displayed beneath

-         * this message.

-         */

-        {ErrorMsg.COMPILER_ERROR_KEY,

-        "Napake prevajalnika:"},

-

-        /*

-         * Note to translators:  The following message is used as a header.

-         * All the warning messages are collected together and displayed

-         * beneath this message.

-         */

-        {ErrorMsg.COMPILER_WARNING_KEY,

-        "Opozorila prevajalnika:"},

-

-        /*

-         * Note to translators:  The following message is used as a header.

-         * All the error messages that are produced when the stylesheet is

-         * applied to an input document are collected together and displayed

-         * beneath this message.  A 'translet' is the compiled form of a

-         * stylesheet (see above).

-         */

-        {ErrorMsg.RUNTIME_ERROR_KEY,

-        "Napake transleta:"},

-

-        /*

-         * Note to translators:  An attribute whose value is constrained to

-         * be a "QName" or a list of "QNames" had a value that was incorrect.

-         * 'QName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {ErrorMsg.INVALID_QNAME_ERR,

-        "Atribut, katerega vrednost mora biti vrednost QName ali s presledki lo\u010den seznam vrednosti Qname, je imel vrednost ''{0}''"},

-

-        /*

-         * Note to translators:  An attribute whose value is required to

-         * be an "NCName".

-         * 'NCName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {ErrorMsg.INVALID_NCNAME_ERR,

-        "Atribut, katerega vrednost mora biti NCName, je imel vrednost ''{0}''"},

-

-        /*

-         * Note to translators:  An attribute with an incorrect value was

-         * encountered.  The permitted value is one of the literal values

-         * "xml", "html" or "text"; it is also permitted to have the form of

-         * a QName that is not also an NCName.  The terms "method",

-         * "xsl:output", "xml", "html" and "text" are keywords that must not

-         * be translated.  The term "qname-but-not-ncname" is an XML syntactic

-         * term.  The substitution text contains the actual value of the

-         * attribute.

-         */

-        {ErrorMsg.INVALID_METHOD_IN_OUTPUT,

-        "Atribut metode elementa <xsl:output> je imel vrednost ''{0}''.  Vrednost mora biti ena izmed ''xml'', ''html'', ''text'', ali qname-but-not-ncname (qname, vendar pa ne ncname)"},

-

-        {ErrorMsg.JAXP_GET_FEATURE_NULL_NAME,

-        "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza)."},

-

-        {ErrorMsg.JAXP_SET_FEATURE_NULL_NAME,

-        "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza, boolova vrednost)."},

-

-        {ErrorMsg.JAXP_UNSUPPORTED_FEATURE,

-        "Ni mogo\u010de nastaviti funkcije ''{0}'' v tem TransformerFactory."}

-

-    };

-    }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.compiler.util;
+
+import java.util.ListResourceBundle;
+
+/**
+ * @author Morten Jorgensen
+ */
+public class ErrorMessages_sl extends ListResourceBundle {
+
+/*
+ * XSLTC compile-time error messages.
+ *
+ * General notes to translators and definitions:
+ *
+ *   1) XSLTC is the name of the product.  It is an acronym for "XSLT Compiler".
+ *      XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *
+ *   2) A stylesheet is a description of how to transform an input XML document
+ *      into a resultant XML document (or HTML document or text).  The
+ *      stylesheet itself is described in the form of an XML document.
+ *
+ *   3) A template is a component of a stylesheet that is used to match a
+ *      particular portion of an input document and specifies the form of the
+ *      corresponding portion of the output document.
+ *
+ *   4) An axis is a particular "dimension" in a tree representation of an XML
+ *      document; the nodes in the tree are divided along different axes.
+ *      Traversing the "child" axis, for instance, means that the program
+ *      would visit each child of a particular node; traversing the "descendant"
+ *      axis means that the program would visit the child nodes of a particular
+ *      node, their children, and so on until the leaf nodes of the tree are
+ *      reached.
+ *
+ *   5) An iterator is an object that traverses nodes in a tree along a
+ *      particular axis, one at a time.
+ *
+ *   6) An element is a mark-up tag in an XML document; an attribute is a
+ *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *      "elem" is an element name, "attr" and "attr2" are attribute names with
+ *      the values "val" and "val2", respectively.
+ *
+ *   7) A namespace declaration is a special attribute that is used to associate
+ *      a prefix with a URI (the namespace).  The meanings of element names and
+ *      attribute names that use that prefix are defined with respect to that
+ *      namespace.
+ *
+ *   8) DOM is an acronym for Document Object Model.  It is a tree
+ *      representation of an XML document.
+ *
+ *      SAX is an acronym for the Simple API for XML processing.  It is an API
+ *      used inform an XML processor (in this case XSLTC) of the structure and
+ *      content of an XML document.
+ *
+ *      Input to the stylesheet processor can come from an XML parser in the
+ *      form of a DOM tree or through the SAX API.
+ *
+ *   9) DTD is a document type declaration.  It is a way of specifying the
+ *      grammar for an XML file, the names and types of elements, attributes,
+ *      etc.
+ *
+ *  10) XPath is a specification that describes a notation for identifying
+ *      nodes in a tree-structured representation of an XML document.  An
+ *      instance of that notation is referred to as an XPath expression.
+ *
+ *  11) Translet is an invented term that refers to the class file that contains
+ *      the compiled form of a stylesheet.
+ */
+
+    // These message should be read from a locale-specific resource bundle
+    /** Get the lookup table for error messages.
+     *
+     * @return The message lookup table.
+     */
+    public Object[][] getContents()
+    {
+      return new Object[][] {
+        {ErrorMsg.MULTIPLE_STYLESHEET_ERR,
+        "V isti datoteki je dolo\u010denih ve\u010d slogovnih datotek."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a
+         * template.  The same name was used on two different templates in the
+         * same stylesheet.
+         */
+        {ErrorMsg.TEMPLATE_REDEF_ERR,
+        "Predloga ''{0}'' je \u017ee dolo\u010dena v tej slogovni datoteki."},
+
+
+        /*
+         * Note to translators:  The substitution text is the name of a
+         * template.  A reference to the template name was encountered, but the
+         * template is undefined.
+         */
+        {ErrorMsg.TEMPLATE_UNDEF_ERR,
+        "Predloga ''{0}'' ni dolo\u010dena v tej slogovni datoteki."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a variable
+         * that was defined more than once.
+         */
+        {ErrorMsg.VARIABLE_REDEF_ERR,
+        "Spremenljivka ''{0}'' je ve\u010dkrat dolo\u010dena znotraj istega obsega."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a variable
+         * or parameter.  A reference to the variable or parameter was found,
+         * but it was never defined.
+         */
+        {ErrorMsg.VARIABLE_UNDEF_ERR,
+        "Spremenljivka ali parameter ''{0}'' je nedolo\u010den."},
+
+        /*
+         * Note to translators:  The word "class" here refers to a Java class.
+         * Processing the stylesheet required a class to be loaded, but it could
+         * not be found.  The substitution text is the name of the class.
+         */
+        {ErrorMsg.CLASS_NOT_FOUND_ERR,
+        "Ni mogo\u010de najti razreda ''{0}''."},
+
+        /*
+         * Note to translators:  The word "method" here refers to a Java method.
+         * Processing the stylesheet required a reference to the method named by
+         * the substitution text, but it could not be found.  "public" is the
+         * Java keyword.
+         */
+        {ErrorMsg.METHOD_NOT_FOUND_ERR,
+        "Zunanje metode ''{0}'' ni mogo\u010de najti (mora biti javna)."},
+
+        /*
+         * Note to translators:  The word "method" here refers to a Java method.
+         * Processing the stylesheet required a reference to the method named by
+         * the substitution text, but no method with the required types of
+         * arguments or return type could be found.
+         */
+        {ErrorMsg.ARGUMENT_CONVERSION_ERR,
+        "Ni mogo\u010de pretvoriti argumenta / tipa vrnitve v klicu metode ''{0}''"},
+
+        /*
+         * Note to translators:  The file or URI named in the substitution text
+         * is missing.
+         */
+        {ErrorMsg.FILE_NOT_FOUND_ERR,
+        "Datoteke ali URI-ja ''{0}'' ni mogo\u010de najti."},
+
+        /*
+         * Note to translators:  This message is displayed when the URI
+         * mentioned in the substitution text is not well-formed syntactically.
+         */
+        {ErrorMsg.INVALID_URI_ERR,
+        "Neveljaven URI ''{0}''."},
+
+        /*
+         * Note to translators:  The file or URI named in the substitution text
+         * exists but could not be opened.
+         */
+        {ErrorMsg.FILE_ACCESS_ERR,
+        "Datoteke ali URI-ja ''{0}'' ni mogo\u010de odpreti."},
+
+        /*
+         * Note to translators: <xsl:stylesheet> and <xsl:transform> are
+         * keywords that should not be translated.
+         */
+        {ErrorMsg.MISSING_ROOT_ERR,
+        "Pri\u010dakovan element <xsl:stylesheet> ali <xsl:transform>."},
+
+        /*
+         * Note to translators:  The stylesheet contained a reference to a
+         * namespace prefix that was undefined.  The value of the substitution
+         * text is the name of the prefix.
+         */
+        {ErrorMsg.NAMESPACE_UNDEF_ERR,
+        "Predpona imenskega prostora ''{0}'' ni dolo\u010dena."},
+
+        /*
+         * Note to translators:  The Java function named in the stylesheet could
+         * not be found.
+         */
+        {ErrorMsg.FUNCTION_RESOLVE_ERR,
+        "Klica funkcije ''{0}'' ni mogo\u010de razre\u0161iti."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a
+         * function.  A literal string here means a constant string value.
+         */
+        {ErrorMsg.NEED_LITERAL_ERR,
+        "Argument za ''{0}'' mora biti dobesedni niz."},
+
+        /*
+         * Note to translators:  This message indicates there was a syntactic
+         * error in the form of an XPath expression.  The substitution text is
+         * the expression.
+         */
+        {ErrorMsg.XPATH_PARSER_ERR,
+        "Napaka pri raz\u010dlenjevanju izraza XPath ''{0}''."},
+
+        /*
+         * Note to translators:  An element in the stylesheet requires a
+         * particular attribute named by the substitution text, but that
+         * attribute was not specified in the stylesheet.
+         */
+        {ErrorMsg.REQUIRED_ATTR_ERR,
+        "Manjka zahtevani atribut ''{0}''."},
+
+        /*
+         * Note to translators:  This message indicates that a character not
+         * permitted in an XPath expression was encountered.  The substitution
+         * text is the offending character.
+         */
+        {ErrorMsg.ILLEGAL_CHAR_ERR,
+        "Neveljavni znak ''{0}'' v izrazu XPath."},
+
+        /*
+         * Note to translators:  A processing instruction is a mark-up item in
+         * an XML document that request some behaviour of an XML processor.  The
+         * form of the name of was invalid in this case, and the substitution
+         * text is the name.
+         */
+        {ErrorMsg.ILLEGAL_PI_ERR,
+        "Neveljavno ime ''{0}'' za navodila za obdelavo."},
+
+        /*
+         * Note to translators:  This message is reported if the stylesheet
+         * being processed attempted to construct an XML document with an
+         * attribute in a place other than on an element.  The substitution text
+         * specifies the name of the attribute.
+         */
+        {ErrorMsg.STRAY_ATTRIBUTE_ERR,
+        "Atribut ''{0}'' zunaj elementa."},
+
+        /*
+         * Note to translators:  An attribute that wasn't recognized was
+         * specified on an element in the stylesheet.  The attribute is named
+         * by the substitution
+         * text.
+         */
+        {ErrorMsg.ILLEGAL_ATTRIBUTE_ERR,
+        "Neveljaven atribut ''{0}''."},
+
+        /*
+         * Note to translators:  "import" and "include" are keywords that should
+         * not be translated.  This messages indicates that the stylesheet
+         * named in the substitution text imported or included itself either
+         * directly or indirectly.
+         */
+        {ErrorMsg.CIRCULAR_INCLUDE_ERR,
+        "Kro\u017eni uvoz/vklju\u010ditev. Slogovna datoteka ''{0}'' je \u017ee nalo\u017eena."},
+
+        /*
+         * Note to translators:  A result-tree fragment is a portion of a
+         * resulting XML document represented as a tree.  "<xsl:sort>" is a
+         * keyword and should not be translated.
+         */
+        {ErrorMsg.RESULT_TREE_SORT_ERR,
+        "Ne morem razvrstiti fragmentov drevesa rezultatov (elementi <xsl:sort> so prezrti). Pri pripravi drevesa rezultatov morate razvrstiti vozli\u0161\u010da."},
+
+        /*
+         * Note to translators:  A name can be given to a particular style to be
+         * used to format decimal values.  The substitution text gives the name
+         * of such a style for which more than one declaration was encountered.
+         */
+        {ErrorMsg.SYMBOLS_REDEF_ERR,
+        "Decimalno oblikovanje ''{0}'' je \u017ee dolo\u010deno."},
+
+        /*
+         * Note to translators:  The stylesheet version named in the
+         * substitution text is not supported.
+         */
+        {ErrorMsg.XSL_VERSION_ERR,
+        "XSL razli\u010dice ''{0}'' XSLTC ne podpira."},
+
+        /*
+         * Note to translators:  The definitions of one or more variables or
+         * parameters depend on one another.
+         */
+        {ErrorMsg.CIRCULAR_VARIABLE_ERR,
+        "Sklic na kro\u017eno spremenljivko/parameter v ''{0}''."},
+
+        /*
+         * Note to translators:  The operator in an expresion with two operands was
+         * not recognized.
+         */
+        {ErrorMsg.ILLEGAL_BINARY_OP_ERR,
+        "Neznan operator za binarni izraz."},
+
+        /*
+         * Note to translators:  This message is produced if a reference to a
+         * function has too many or too few arguments.
+         */
+        {ErrorMsg.ILLEGAL_ARG_ERR,
+        "Neveljavni argument(i) za klic funkcije."},
+
+        /*
+         * Note to translators:  "document()" is the name of function and must
+         * not be translated.  A node-set is a set of the nodes in the tree
+         * representation of an XML document.
+         */
+        {ErrorMsg.DOCUMENT_ARG_ERR,
+        "Drugi argument funkcije document() mora biti skupina vozli\u0161\u010d."},
+
+        /*
+         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords
+         * and should not be translated.  This message describes a syntax error
+         * in the stylesheet.
+         */
+        {ErrorMsg.MISSING_WHEN_ERR,
+        "Zahtevan vsaj en element <xsl:when> v <xsl:choose>."},
+
+        /*
+         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are
+         * keywords and should not be translated.  This message describes a
+         * syntax error in the stylesheet.
+         */
+        {ErrorMsg.MULTIPLE_OTHERWISE_ERR,
+        "Dovoljen samo en element <xsl:otherwise> v <xsl:choose>."},
+
+        /*
+         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are
+         * keywords and should not be translated.  This message describes a
+         * syntax error in the stylesheet.
+         */
+        {ErrorMsg.STRAY_OTHERWISE_ERR,
+        "<xsl:otherwise> lahko uporabljamo samo znotraj <xsl:choose>."},
+
+        /*
+         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords
+         * and should not be translated.  This message describes a syntax error
+         * in the stylesheet.
+         */
+        {ErrorMsg.STRAY_WHEN_ERR,
+        "<xsl:when> lahko uporabljamo samo znotraj <xsl:choose>."},
+
+        /*
+         * Note to translators:  "<xsl:when>", "<xsl:otherwise>" and
+         * "<xsl:choose>" are keywords and should not be translated.  This
+         * message describes a syntax error in the stylesheet.
+         */
+        {ErrorMsg.WHEN_ELEMENT_ERR,
+        "V <xsl:choose> sta dovoljena samo elementa <xsl:when> in <xsl:otherwise>."},
+
+        /*
+         * Note to translators:  "<xsl:attribute-set>" and "name" are keywords
+         * that should not be translated.
+         */
+        {ErrorMsg.UNNAMED_ATTRIBSET_ERR,
+        "V <xsl:attribute-set> manjka atribut 'name'."},
+
+        /*
+         * Note to translators:  An element in the stylesheet contained an
+         * element of a type that it was not permitted to contain.
+         */
+        {ErrorMsg.ILLEGAL_CHILD_ERR,
+        "Neveljavni podrejeni element."},
+
+        /*
+         * Note to translators:  The stylesheet tried to create an element with
+         * a name that was not a valid XML name.  The substitution text contains
+         * the name.
+         */
+        {ErrorMsg.ILLEGAL_ELEM_NAME_ERR,
+        "Elementa ''{0}'' ni mogo\u010de poklicati"},
+
+        /*
+         * Note to translators:  The stylesheet tried to create an attribute
+         * with a name that was not a valid XML name.  The substitution text
+         * contains the name.
+         */
+        {ErrorMsg.ILLEGAL_ATTR_NAME_ERR,
+        "Atributa ''{0}'' ni mogo\u010de poklicati"},
+
+        /*
+         * Note to translators:  The children of the outermost element of a
+         * stylesheet are referred to as top-level elements.  No text should
+         * occur within that outermost element unless it is within a top-level
+         * element.  This message indicates that that constraint was violated.
+         * "<xsl:stylesheet>" is a keyword that should not be translated.
+         */
+        {ErrorMsg.ILLEGAL_TEXT_NODE_ERR,
+        "Tekstovni podatki zunaj elementa na najvi\u0161ji ravni <xsl:stylesheet>."},
+
+        /*
+         * Note to translators:  JAXP is an acronym for the Java API for XML
+         * Processing.  This message indicates that the XML parser provided to
+         * XSLTC to process the XML input document had a configuration problem.
+         */
+        {ErrorMsg.SAX_PARSER_CONFIG_ERR,
+        "Raz\u010dlenjevalnik JAXP ni pravilno konfiguriran"},
+
+        /*
+         * Note to translators:  The substitution text names the internal error
+         * encountered.
+         */
+        {ErrorMsg.INTERNAL_ERR,
+        "Nepopravljiva XSLTC-notranja napaka: ''{0}''"},
+
+        /*
+         * Note to translators:  The stylesheet contained an element that was
+         * not recognized as part of the XSL syntax.  The substitution text
+         * gives the element name.
+         */
+        {ErrorMsg.UNSUPPORTED_XSL_ERR,
+        "Nepodprt XSL element ''{0}''."},
+
+        /*
+         * Note to translators:  The stylesheet referred to an extension to the
+         * XSL syntax and indicated that it was defined by XSLTC, but XSTLC does
+         * not recognized the particular extension named.  The substitution text
+         * gives the extension name.
+         */
+        {ErrorMsg.UNSUPPORTED_EXT_ERR,
+        "Neprepoznana pripona XSLTC ''{0}''."},
+
+        /*
+         * Note to translators:  The XML document given to XSLTC as a stylesheet
+         * was not, in fact, a stylesheet.  XSLTC is able to detect that in this
+         * case because the outermost element in the stylesheet has to be
+         * declared with respect to the XSL namespace URI, but no declaration
+         * for that namespace was seen.
+         */
+        {ErrorMsg.MISSING_XSLT_URI_ERR,
+        "Vhodni dokument ni slogovna datoteka (v korenskem elementu ni naveden imenski prostor XSL)."},
+
+        /*
+         * Note to translators:  XSLTC could not find the stylesheet document
+         * with the name specified by the substitution text.
+         */
+        {ErrorMsg.MISSING_XSLT_TARGET_ERR,
+        "Cilja slogovne datoteke ''{0}'' ni mogo\u010de najti."},
+
+        /*
+         * Note to translators:  This message represents an internal error in
+         * condition in XSLTC.  The substitution text is the class name in XSLTC
+         * that is missing some functionality.
+         */
+        {ErrorMsg.NOT_IMPLEMENTED_ERR,
+        "Ni izvedeno: ''{0}''."},
+
+        /*
+         * Note to translators:  The XML document given to XSLTC as a stylesheet
+         * was not, in fact, a stylesheet.
+         */
+        {ErrorMsg.NOT_STYLESHEET_ERR,
+        "Vhodni dokument ne vsebuje slogovne datoteke XSL."},
+
+        /*
+         * Note to translators:  The element named in the substitution text was
+         * encountered in the stylesheet but is not recognized.
+         */
+        {ErrorMsg.ELEMENT_PARSE_ERR,
+        "Elementa ''{0}'' ni mogo\u010de raz\u010dleniti"},
+
+        /*
+         * Note to translators:  "use", "<key>", "node", "node-set", "string"
+         * and "number" are keywords in this context and should not be
+         * translated.  This message indicates that the value of the "use"
+         * attribute was not one of the permitted values.
+         */
+        {ErrorMsg.KEY_USE_ATTR_ERR,
+        "Atribut uporabe za <key> mora biti vozli\u0161\u010de, skupina vozli\u0161\u010d, niz ali \u0161tevilka."},
+
+        /*
+         * Note to translators:  An XML document can specify the version of the
+         * XML specification to which it adheres.  This message indicates that
+         * the version specified for the output document was not valid.
+         */
+        {ErrorMsg.OUTPUT_VERSION_ERR,
+        "Razli\u010dica izhodnega dokumenta XML mora biti 1.0"},
+
+        /*
+         * Note to translators:  The operator in a comparison operation was
+         * not recognized.
+         */
+        {ErrorMsg.ILLEGAL_RELAT_OP_ERR,
+        "Neznan operator za relacijski izraz"},
+
+        /*
+         * Note to translators:  An attribute set defines as a set of XML
+         * attributes that can be added to an element in the output XML document
+         * as a group.  This message is reported if the name specified was not
+         * used to declare an attribute set.  The substitution text is the name
+         * that is in error.
+         */
+        {ErrorMsg.ATTRIBSET_UNDEF_ERR,
+        "Poskus uporabe neobstoje\u010de skupine atributov ''{0}''."},
+
+        /*
+         * Note to translators:  The term "attribute value template" is a term
+         * defined by XSLT which describes the value of an attribute that is
+         * determined by an XPath expression.  The message indicates that the
+         * expression was syntactically incorrect; the substitution text
+         * contains the expression that was in error.
+         */
+        {ErrorMsg.ATTR_VAL_TEMPLATE_ERR,
+        "Predloge vrednosti atributa ''{0}'' ni mogo\u010de raz\u010dleniti."},
+
+        /*
+         * Note to translators:  ???
+         */
+        {ErrorMsg.UNKNOWN_SIG_TYPE_ERR,
+        "V podpisu za razred ''{0}'' je neznan podatkovni tip."},
+
+        /*
+         * Note to translators:  The substitution text refers to data types.
+         * The message is displayed if a value in a particular context needs to
+         * be converted to type {1}, but that's not possible for a value of
+         * type {0}.
+         */
+        {ErrorMsg.DATA_CONVERSION_ERR,
+        "Ni mogo\u010de pretvoriti podatkovnega tipa ''{0}'' v ''{1}''."},
+
+        /*
+         * Note to translators:  "Templates" is a Java class name that should
+         * not be translated.
+         */
+        {ErrorMsg.NO_TRANSLET_CLASS_ERR,
+        "Te Templates ne vsebujejo veljavne definicije razreda translet."},
+
+        /*
+         * Note to translators:  "Templates" is a Java class name that should
+         * not be translated.
+         */
+        {ErrorMsg.NO_MAIN_TRANSLET_ERR,
+        "Te predloge ne vsebujejo razreda z imenom ''{0}''."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a class.
+         */
+        {ErrorMsg.TRANSLET_CLASS_ERR,
+        "Ni mogo\u010de nalo\u017eiti razreda transleta ''{0}''."},
+
+        {ErrorMsg.TRANSLET_OBJECT_ERR,
+        "Razred transleta je nalo\u017een, vendar priprava primerka transleta ni mogo\u010da."},
+
+        /*
+         * Note to translators:  "ErrorListener" is a Java interface name that
+         * should not be translated.  The message indicates that the user tried
+         * to set an ErrorListener object on object of the class named in the
+         * substitution text with "null" Java value.
+         */
+        {ErrorMsg.ERROR_LISTENER_NULL_ERR,
+        "Poskus nastavitve ErrorListener za ''{0}'' na null"},
+
+        /*
+         * Note to translators:  StreamSource, SAXSource and DOMSource are Java
+         * interface names that should not be translated.
+         */
+        {ErrorMsg.JAXP_UNKNOWN_SOURCE_ERR,
+        "XSLTC podpira samo StreamSource, SAXSource in DOMSource"},
+
+        /*
+         * Note to translators:  "Source" is a Java class name that should not
+         * be translated.  The substitution text is the name of Java method.
+         */
+        {ErrorMsg.JAXP_NO_SOURCE_ERR,
+        "Predmet Source, ki je bil podan z ''{0}'', nima vsebine."},
+
+        /*
+         * Note to translators:  The message indicates that XSLTC failed to
+         * compile the stylesheet into a translet (class file).
+         */
+        {ErrorMsg.JAXP_COMPILE_ERR,
+        "Ni mogo\u010de prevesti slogovne datoteke"},
+
+        /*
+         * Note to translators:  "TransformerFactory" is a class name.  In this
+         * context, an attribute is a property or setting of the
+         * TransformerFactory object.  The substitution text is the name of the
+         * unrecognised attribute.  The method used to retrieve the attribute is
+         * "getAttribute", so it's not clear whether it would be best to
+         * translate the term "attribute".
+         */
+        {ErrorMsg.JAXP_INVALID_ATTR_ERR,
+        "TransformerFactory ne prepozna atributa ''{0}''."},
+
+        /*
+         * Note to translators:  "setResult()" and "startDocument()" are Java
+         * method names that should not be translated.
+         */
+        {ErrorMsg.JAXP_SET_RESULT_ERR,
+        "Klic za setResult() mora biti izveden pred klicem startDocument()."},
+
+        /*
+         * Note to translators:  "Transformer" is a Java interface name that
+         * should not be translated.  A Transformer object should contained a
+         * reference to a translet object in order to be used for
+         * transformations; this message is produced if that requirement is not
+         * met.
+         */
+        {ErrorMsg.JAXP_NO_TRANSLET_ERR,
+        "Transformer ne vsebuje enkapsuliranih translet objektov."},
+
+        /*
+         * Note to translators:  The XML document that results from a
+         * transformation needs to be sent to an output handler object; this
+         * message is produced if that requirement is not met.
+         */
+        {ErrorMsg.JAXP_NO_HANDLER_ERR,
+        "Za rezultat transformacije ni izhodne obravnave."},
+
+        /*
+         * Note to translators:  "Result" is a Java interface name in this
+         * context.  The substitution text is a method name.
+         */
+        {ErrorMsg.JAXP_NO_RESULT_ERR,
+        "Rezultat, ki je bil posredovan ''{0}'', je neveljaven."},
+
+        /*
+         * Note to translators:  "Transformer" is a Java interface name.  The
+         * user's program attempted to access an unrecognized property with the
+         * name specified in the substitution text.  The method used to retrieve
+         * the property is "getOutputProperty", so it's not clear whether it
+         * would be best to translate the term "property".
+         */
+        {ErrorMsg.JAXP_UNKNOWN_PROP_ERR,
+        "Poskus dostopa do neveljavne lastnosti (property) Transformer ''{0}''."},
+
+        /*
+         * Note to translators:  SAX2DOM is the name of a Java class that should
+         * not be translated.  This is an adapter in the sense that it takes a
+         * DOM object and converts it to something that uses the SAX API.
+         */
+        {ErrorMsg.SAX2DOM_ADAPTER_ERR,
+        "Ni mogo\u010de ustvariti adapterja SAX2DOM: ''{0}''."},
+
+        /*
+         * Note to translators:  "XSLTCSource.build()" is a Java method name.
+         * "systemId" is an XML term that is short for "system identification".
+         */
+        {ErrorMsg.XSLTC_SOURCE_ERR,
+        "Klic XSLTCSource.build() brez predhodne nastavitve systemId."},
+
+        { ErrorMsg.ER_RESULT_NULL,
+            "Rezultat naj ne bi bil NULL"},
+
+        /*
+         * Note to translators:  This message indicates that the value argument
+         * of setParameter must be a valid Java Object.
+         */
+        {ErrorMsg.JAXP_INVALID_SET_PARAM_VALUE,
+        "Vrednost parametra {0} mora biti veljaven javanski objekt"},
+
+
+        {ErrorMsg.COMPILE_STDIN_ERR,
+        "Mo\u017enost -i mora biti uporabljena skupaj z mo\u017enostjo -o."},
+
+
+        /*
+         * Note to translators:  This message contains usage information for a
+         * means of invoking XSLTC from the command-line.  The message is
+         * formatted for presentation in English.  The strings <output>,
+         * <directory>, etc. indicate user-specified argument values, and can
+         * be translated - the argument <package> refers to a Java package, so
+         * it should be handled in the same way the term is handled for JDK
+         * documentation.
+         */
+        {ErrorMsg.COMPILE_USAGE_STR,
+        "SYNOPSIS\n   java org.apache.xalan.xsltc.cmdline.Compile [-o <izhodna datoteka>]\n      [-d <directory>] [-j  <datoteka jar>] [-p <paket>]\n      [-n] [-x] [-u] [-v] [-h] { <stylesheet> | -i }\n\nOPTIONS\n   -o <izhodna datoteka>    dodeli ime <izhodna datoteka> generiranemu\n                  transletu.  Ime transleta se po privzetih nastavitvah\n                 izpelje iz imena <stylesheet>.  Pri prevajanju\n                  ve\u010d slogovnih datotek je ta mo\u017enost prezrta.\n   -d <directory> dolo\u010di ciljno mapo za translet\n   -j <datoteka jar>   zdru\u017ei razrede translet v datoteko jar\n       pod imenom, dolo\u010denim z <datoteka jar>\n   -p <paket>   dolo\u010di predpono imena paketa vsem generiranim\n               razredom translet.\n   -n             omogo\u010da vrivanje predlog (v povpre\u010dju bolj\u0161e privzeto\n                      obna\u0161anje).\n   -x             vklopi dodatna izhodna sporo\u010dila za iskanje napak\n   -u             prevede argumente <stylesheet> kot URL-je\n   -i             prisili prevajalnik k branju slogovne datoteke iz stdin\n   -v             natisne razli\u010dico prevajalnika\n   -h             natisne ta stavek za uporabo\n"},
+
+        /*
+         * Note to translators:  This message contains usage information for a
+         * means of invoking XSLTC from the command-line.  The message is
+         * formatted for presentation in English.  The strings <jarfile>,
+         * <document>, etc. indicate user-specified argument values, and can
+         * be translated - the argument <class> refers to a Java class, so it
+         * should be handled in the same way the term is handled for JDK
+         * documentation.
+         */
+        {ErrorMsg.TRANSFORM_USAGE_STR,
+        "SYNOPSIS \n   java org.apache.xalan.xsltc.cmdline.Transform [-j <datoteka jar>]\n      [-x] [-n <ponovitve>] {-u <document_url> | <dokument>}\n      <razred> [<param1>=<value1> ...]\n\n   uporablja translet <razred> za pretvorbo dokumenta XML \n   navedenega kot <dokument>. Translet <razred> je ali v\n   uporabnikovem CLASSPATH ali v izbirno navedeni datoteki <datoteka jar>.\nOPTIONS\n   -j <datoteka jar>    dolo\u010di datoteko jar, iz katere bo nalo\u017een translet\n   -x               vklopi dodatna sporo\u010dila za iskanje napak\n   n  <ponovitve> <ponovitve>-krat po\u017eene preoblikovanje in\n                   prika\u017ee informacije profiliranja\n   -u <document_url> dolo\u010di vhodni dokument XML za URL\n"},
+
+
+
+        /*
+         * Note to translators:  "<xsl:sort>", "<xsl:for-each>" and
+         * "<xsl:apply-templates>" are keywords that should not be translated.
+         * The message indicates that an xsl:sort element must be a child of
+         * one of the other kinds of elements mentioned.
+         */
+        {ErrorMsg.STRAY_SORT_ERR,
+        "<xsl:sort> je mogo\u010de uporabljati samo znotraj <xsl:for-each> ali <xsl:apply-templates>."},
+
+        /*
+         * Note to translators:  The message indicates that the encoding
+         * requested for the output document was on that requires support that
+         * is not available from the Java Virtual Machine being used to execute
+         * the program.
+         */
+        {ErrorMsg.UNSUPPORTED_ENCODING,
+        "Ta JVM ne podpira izhodnega kodiranja ''{0}''."},
+
+        /*
+         * Note to translators:  The message indicates that the XPath expression
+         * named in the substitution text was not well formed syntactically.
+         */
+        {ErrorMsg.SYNTAX_ERR,
+        "Napaka v sintaksi v ''{0}''."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a Java
+         * class.  The term "constructor" here is the Java term.  The message is
+         * displayed if XSLTC could not find a constructor for the specified
+         * class.
+         */
+        {ErrorMsg.CONSTRUCTOR_NOT_FOUND,
+        "Ni mogo\u010de najti zunanjega konstruktorja ''{0}''."},
+
+        /*
+         * Note to translators:  "static" is the Java keyword.  The substitution
+         * text is the name of a function.  The first argument of that function
+         * is not of the required type.
+         */
+        {ErrorMsg.NO_JAVA_FUNCT_THIS_REF,
+        "Prvi argument nestati\u010dne (non-static) javanske funkcije ''{0}'' ni veljaven sklic na objekt."},
+
+        /*
+         * Note to translators:  An XPath expression was not of the type
+         * required in a particular context.  The substitution text is the
+         * expression that was in error.
+         */
+        {ErrorMsg.TYPE_CHECK_ERR,
+        "Napaka pri preverjanju tipa izraza ''{0}''."},
+
+        /*
+         * Note to translators:  An XPath expression was not of the type
+         * required in a particular context.  However, the location of the
+         * problematic expression is unknown.
+         */
+        {ErrorMsg.TYPE_CHECK_UNK_LOC_ERR,
+        "Napaka pri preverjanju tipa izraza na neznani lokaciji."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a command-
+         * line option that was not recognized.
+         */
+        {ErrorMsg.ILLEGAL_CMDLINE_OPTION_ERR,
+        "Mo\u017enost ukazne vrstice ''{0}'' ni veljavna."},
+
+        /*
+         * Note to translators:  The substitution text is the name of a command-
+         * line option.
+         */
+        {ErrorMsg.CMDLINE_OPT_MISSING_ARG_ERR,
+        "Mo\u017enosti ukazne vrstice ''{0}'' manjka zahtevani argument."},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text contains two error
+         * messages.  The spacing before the second substitution text indents
+         * it the same amount as the first in English.
+         */
+        {ErrorMsg.WARNING_PLUS_WRAPPED_MSG,
+        "OPOZORILO:  ''{0}''\n       :{1}"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text is an error message.
+         */
+        {ErrorMsg.WARNING_MSG,
+        "OPOZORILO:  ''{0}''"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text contains two error
+         * messages.  The spacing before the second substitution text indents
+         * it the same amount as the first in English.
+         */
+        {ErrorMsg.FATAL_ERR_PLUS_WRAPPED_MSG,
+        "USODNA NAPAKA:  ''{0}''\n           :{1}"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text is an error message.
+         */
+        {ErrorMsg.FATAL_ERR_MSG,
+        "USODNA NAPAKA:  ''{0}''"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text contains two error
+         * messages.  The spacing before the second substitution text indents
+         * it the same amount as the first in English.
+         */
+        {ErrorMsg.ERROR_PLUS_WRAPPED_MSG,
+        "USODNA NAPAKA:  ''{0}''\n     :{1}"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text is an error message.
+         */
+        {ErrorMsg.ERROR_MSG,
+        "NAPAKA:  ''{0}''"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a class.
+         */
+        {ErrorMsg.TRANSFORM_WITH_TRANSLET_STR,
+        "Pretvorba z uporabo transleta ''{0}'' "},
+
+        /*
+         * Note to translators:  The first substitution is the name of a class,
+         * while the second substitution is the name of a jar file.
+         */
+        {ErrorMsg.TRANSFORM_WITH_JAR_STR,
+        "Pretvorba z uporabo transleta ''{0}'' iz datoteke jar ''{1}''"},
+
+        /*
+         * Note to translators:  "TransformerFactory" is the name of a Java
+         * interface and must not be translated.  The substitution text is
+         * the name of the class that could not be instantiated.
+         */
+        {ErrorMsg.COULD_NOT_CREATE_TRANS_FACT,
+        "Ni mogo\u010de ustvariti primerka razreda TransformerFactory ''{0}''."},
+
+        /*
+         * Note to translators:  This message is produced when the user
+         * specified a name for the translet class that contains characters
+         * that are not permitted in a Java class name.  The substitution
+         * text "{0}" specifies the name the user requested, while "{1}"
+         * specifies the name the processor used instead.
+         */
+        {ErrorMsg.TRANSLET_NAME_JAVA_CONFLICT,
+         "Imena ''{0}'' ni bilo mogo\u010de uporabiti kot ime razreda translet, saj vsebuje znake, ki v imenu javanskega razreda niso dovoljeni.  Uporabljeno je bilo ime ''{1}''."},
+
+        /*
+         * Note to translators:  The following message is used as a header.
+         * All the error messages are collected together and displayed beneath
+         * this message.
+         */
+        {ErrorMsg.COMPILER_ERROR_KEY,
+        "Napake prevajalnika:"},
+
+        /*
+         * Note to translators:  The following message is used as a header.
+         * All the warning messages are collected together and displayed
+         * beneath this message.
+         */
+        {ErrorMsg.COMPILER_WARNING_KEY,
+        "Opozorila prevajalnika:"},
+
+        /*
+         * Note to translators:  The following message is used as a header.
+         * All the error messages that are produced when the stylesheet is
+         * applied to an input document are collected together and displayed
+         * beneath this message.  A 'translet' is the compiled form of a
+         * stylesheet (see above).
+         */
+        {ErrorMsg.RUNTIME_ERROR_KEY,
+        "Napake transleta:"},
+
+        /*
+         * Note to translators:  An attribute whose value is constrained to
+         * be a "QName" or a list of "QNames" had a value that was incorrect.
+         * 'QName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {ErrorMsg.INVALID_QNAME_ERR,
+        "Atribut, katerega vrednost mora biti vrednost QName ali s presledki lo\u010den seznam vrednosti Qname, je imel vrednost ''{0}''"},
+
+        /*
+         * Note to translators:  An attribute whose value is required to
+         * be an "NCName".
+         * 'NCName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {ErrorMsg.INVALID_NCNAME_ERR,
+        "Atribut, katerega vrednost mora biti NCName, je imel vrednost ''{0}''"},
+
+        /*
+         * Note to translators:  An attribute with an incorrect value was
+         * encountered.  The permitted value is one of the literal values
+         * "xml", "html" or "text"; it is also permitted to have the form of
+         * a QName that is not also an NCName.  The terms "method",
+         * "xsl:output", "xml", "html" and "text" are keywords that must not
+         * be translated.  The term "qname-but-not-ncname" is an XML syntactic
+         * term.  The substitution text contains the actual value of the
+         * attribute.
+         */
+        {ErrorMsg.INVALID_METHOD_IN_OUTPUT,
+        "Atribut metode elementa <xsl:output> je imel vrednost ''{0}''.  Vrednost mora biti ena izmed ''xml'', ''html'', ''text'', ali qname-but-not-ncname (qname, vendar pa ne ncname)"},
+
+        {ErrorMsg.JAXP_GET_FEATURE_NULL_NAME,
+        "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza)."},
+
+        {ErrorMsg.JAXP_SET_FEATURE_NULL_NAME,
+        "Ime funkcije ne sme biti null v TransformerFactory.getFeature(Ime niza, boolova vrednost)."},
+
+        {ErrorMsg.JAXP_UNSUPPORTED_FEATURE,
+        "Ni mogo\u010de nastaviti funkcije ''{0}'' v tem TransformerFactory."}
+
+    };
+    }
+
+}
diff --git a/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_zh.java b/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_zh.java
old mode 100755
new mode 100644
index 915ce85..4ab0506
--- a/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_zh.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/ErrorMessages_zh.java
@@ -1,913 +1,913 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: ErrorMessages_zh.java 338081 2004-12-15 17:35:58Z jycli $

- */

-

-package org.apache.xalan.xsltc.compiler.util;

-

-import java.util.ListResourceBundle;

-

-/**

- * @author Morten Jorgensen

- */

-public class ErrorMessages_zh extends ListResourceBundle {

-

-/*

- * XSLTC compile-time error messages.

- *

- * General notes to translators and definitions:

- *

- *   1) XSLTC is the name of the product.  It is an acronym for "XSLT Compiler".

- *      XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *

- *   2) A stylesheet is a description of how to transform an input XML document

- *      into a resultant XML document (or HTML document or text).  The

- *      stylesheet itself is described in the form of an XML document.

- *

- *   3) A template is a component of a stylesheet that is used to match a

- *      particular portion of an input document and specifies the form of the

- *      corresponding portion of the output document.

- *

- *   4) An axis is a particular "dimension" in a tree representation of an XML

- *      document; the nodes in the tree are divided along different axes.

- *      Traversing the "child" axis, for instance, means that the program

- *      would visit each child of a particular node; traversing the "descendant"

- *      axis means that the program would visit the child nodes of a particular

- *      node, their children, and so on until the leaf nodes of the tree are

- *      reached.

- *

- *   5) An iterator is an object that traverses nodes in a tree along a

- *      particular axis, one at a time.

- *

- *   6) An element is a mark-up tag in an XML document; an attribute is a

- *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *      "elem" is an element name, "attr" and "attr2" are attribute names with

- *      the values "val" and "val2", respectively.

- *

- *   7) A namespace declaration is a special attribute that is used to associate

- *      a prefix with a URI (the namespace).  The meanings of element names and

- *      attribute names that use that prefix are defined with respect to that

- *      namespace.

- *

- *   8) DOM is an acronym for Document Object Model.  It is a tree

- *      representation of an XML document.

- *

- *      SAX is an acronym for the Simple API for XML processing.  It is an API

- *      used inform an XML processor (in this case XSLTC) of the structure and

- *      content of an XML document.

- *

- *      Input to the stylesheet processor can come from an XML parser in the

- *      form of a DOM tree or through the SAX API.

- *

- *   9) DTD is a document type declaration.  It is a way of specifying the

- *      grammar for an XML file, the names and types of elements, attributes,

- *      etc.

- *

- *  10) XPath is a specification that describes a notation for identifying

- *      nodes in a tree-structured representation of an XML document.  An

- *      instance of that notation is referred to as an XPath expression.

- *

- *  11) Translet is an invented term that refers to the class file that contains

- *      the compiled form of a stylesheet.

- */

-

-    // These message should be read from a locale-specific resource bundle

-    /** Get the lookup table for error messages.

-     *

-     * @return The message lookup table.

-     */

-    public Object[][] getContents()

-    {

-      return new Object[][] {

-        {ErrorMsg.MULTIPLE_STYLESHEET_ERR,

-        "\u540c\u4e00\u6587\u4ef6\u4e2d\u5b9a\u4e49\u4e86\u591a\u4e2a\u6837\u5f0f\u8868\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a

-         * template.  The same name was used on two different templates in the

-         * same stylesheet.

-         */

-        {ErrorMsg.TEMPLATE_REDEF_ERR,

-        "\u6b64\u6837\u5f0f\u8868\u4e2d\u5df2\u7ecf\u5b9a\u4e49\u4e86\u6a21\u677f\u201c{0}\u201d\u3002"},

-

-

-        /*

-         * Note to translators:  The substitution text is the name of a

-         * template.  A reference to the template name was encountered, but the

-         * template is undefined.

-         */

-        {ErrorMsg.TEMPLATE_UNDEF_ERR,

-        "\u6b64\u6837\u5f0f\u8868\u4e2d\u672a\u5b9a\u4e49\u6a21\u677f\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a variable

-         * that was defined more than once.

-         */

-        {ErrorMsg.VARIABLE_REDEF_ERR,

-        "\u540c\u4e00\u4f5c\u7528\u57df\u4e2d\u591a\u6b21\u5b9a\u4e49\u4e86\u53d8\u91cf\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a variable

-         * or parameter.  A reference to the variable or parameter was found,

-         * but it was never defined.

-         */

-        {ErrorMsg.VARIABLE_UNDEF_ERR,

-        "\u672a\u5b9a\u4e49\u53d8\u91cf\u6216\u53c2\u6570\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The word "class" here refers to a Java class.

-         * Processing the stylesheet required a class to be loaded, but it could

-         * not be found.  The substitution text is the name of the class.

-         */

-        {ErrorMsg.CLASS_NOT_FOUND_ERR,

-        "\u627e\u4e0d\u5230\u7c7b\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The word "method" here refers to a Java method.

-         * Processing the stylesheet required a reference to the method named by

-         * the substitution text, but it could not be found.  "public" is the

-         * Java keyword.

-         */

-        {ErrorMsg.METHOD_NOT_FOUND_ERR,

-        "\u627e\u4e0d\u5230\u5916\u90e8\u65b9\u6cd5\u201c{0}\u201d\uff08\u5fc5\u987b\u662f public\uff09\u3002"},

-

-        /*

-         * Note to translators:  The word "method" here refers to a Java method.

-         * Processing the stylesheet required a reference to the method named by

-         * the substitution text, but no method with the required types of

-         * arguments or return type could be found.

-         */

-        {ErrorMsg.ARGUMENT_CONVERSION_ERR,

-        "\u65e0\u6cd5\u5c06\u8c03\u7528\u4e2d\u7684\u53c2\u6570\uff0f\u8fd4\u56de\u7c7b\u578b\u8f6c\u6362\u4e3a\u65b9\u6cd5\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  The file or URI named in the substitution text

-         * is missing.

-         */

-        {ErrorMsg.FILE_NOT_FOUND_ERR,

-        "\u627e\u4e0d\u5230\u6587\u4ef6\u6216 URI\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  This message is displayed when the URI

-         * mentioned in the substitution text is not well-formed syntactically.

-         */

-        {ErrorMsg.INVALID_URI_ERR,

-        "URI\u201c{0}\u201d\u65e0\u6548\u3002"},

-

-        /*

-         * Note to translators:  The file or URI named in the substitution text

-         * exists but could not be opened.

-         */

-        {ErrorMsg.FILE_ACCESS_ERR,

-        "\u65e0\u6cd5\u6253\u5f00\u6587\u4ef6\u6216 URI\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators: <xsl:stylesheet> and <xsl:transform> are

-         * keywords that should not be translated.

-         */

-        {ErrorMsg.MISSING_ROOT_ERR,

-        "\u9884\u671f\u5b58\u5728 <xsl:stylesheet> \u6216 <xsl:transform> \u5143\u7d20\u3002"},

-

-        /*

-         * Note to translators:  The stylesheet contained a reference to a

-         * namespace prefix that was undefined.  The value of the substitution

-         * text is the name of the prefix.

-         */

-        {ErrorMsg.NAMESPACE_UNDEF_ERR,

-        "\u672a\u58f0\u660e\u540d\u79f0\u7a7a\u95f4\u524d\u7f00\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The Java function named in the stylesheet could

-         * not be found.

-         */

-        {ErrorMsg.FUNCTION_RESOLVE_ERR,

-        "\u65e0\u6cd5\u89e3\u6790\u5bf9\u51fd\u6570\u201c{0}\u201d\u7684\u8c03\u7528\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a

-         * function.  A literal string here means a constant string value.

-         */

-        {ErrorMsg.NEED_LITERAL_ERR,

-        "\u201c{0}\u201d\u7684\u81ea\u53d8\u91cf\u5fc5\u987b\u662f\u6587\u5b57\u4e32\u3002"},

-

-        /*

-         * Note to translators:  This message indicates there was a syntactic

-         * error in the form of an XPath expression.  The substitution text is

-         * the expression.

-         */

-        {ErrorMsg.XPATH_PARSER_ERR,

-        "\u89e3\u6790 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u65f6\u51fa\u9519\u3002"},

-

-        /*

-         * Note to translators:  An element in the stylesheet requires a

-         * particular attribute named by the substitution text, but that

-         * attribute was not specified in the stylesheet.

-         */

-        {ErrorMsg.REQUIRED_ATTR_ERR,

-        "\u7f3a\u5c11\u5fc5\u9700\u7684\u5c5e\u6027\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  This message indicates that a character not

-         * permitted in an XPath expression was encountered.  The substitution

-         * text is the offending character.

-         */

-        {ErrorMsg.ILLEGAL_CHAR_ERR,

-        "XPath \u8868\u8fbe\u5f0f\u4e2d\u7684\u5b57\u7b26\u201c{0}\u201d\u975e\u6cd5\u3002"},

-

-        /*

-         * Note to translators:  A processing instruction is a mark-up item in

-         * an XML document that request some behaviour of an XML processor.  The

-         * form of the name of was invalid in this case, and the substitution

-         * text is the name.

-         */

-        {ErrorMsg.ILLEGAL_PI_ERR,

-        "\u5904\u7406\u6307\u4ee4\u7684\u540d\u79f0\u201c{0}\u201d\u975e\u6cd5\u3002"},

-

-        /*

-         * Note to translators:  This message is reported if the stylesheet

-         * being processed attempted to construct an XML document with an

-         * attribute in a place other than on an element.  The substitution text

-         * specifies the name of the attribute.

-         */

-        {ErrorMsg.STRAY_ATTRIBUTE_ERR,

-        "\u5c5e\u6027\u201c{0}\u201d\u5728\u5143\u7d20\u5916\u3002"},

-

-        /*

-         * Note to translators:  An attribute that wasn't recognized was

-         * specified on an element in the stylesheet.  The attribute is named

-         * by the substitution

-         * text.

-         */

-        {ErrorMsg.ILLEGAL_ATTRIBUTE_ERR,

-        "\u5c5e\u6027\u201c{0}\u201d\u975e\u6cd5\u3002"},

-

-        /*

-         * Note to translators:  "import" and "include" are keywords that should

-         * not be translated.  This messages indicates that the stylesheet

-         * named in the substitution text imported or included itself either

-         * directly or indirectly.

-         */

-        {ErrorMsg.CIRCULAR_INCLUDE_ERR,

-        "\u5faa\u73af import\uff0finclude\u3002\u5df2\u88c5\u5165\u6837\u5f0f\u8868\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  A result-tree fragment is a portion of a

-         * resulting XML document represented as a tree.  "<xsl:sort>" is a

-         * keyword and should not be translated.

-         */

-        {ErrorMsg.RESULT_TREE_SORT_ERR,

-        "\u65e0\u6cd5\u5bf9\u7ed3\u679c\u6811\u7247\u6bb5\u6392\u5e8f\uff08<xsl:sort> \u5143\u7d20\u88ab\u5ffd\u7565\uff09\u3002\u5fc5\u987b\u5728\u521b\u5efa\u7ed3\u679c\u6811\u65f6\u5bf9\u8282\u70b9\u8fdb\u884c\u6392\u5e8f\u3002"},

-

-        /*

-         * Note to translators:  A name can be given to a particular style to be

-         * used to format decimal values.  The substitution text gives the name

-         * of such a style for which more than one declaration was encountered.

-         */

-        {ErrorMsg.SYMBOLS_REDEF_ERR,

-        "\u5df2\u7ecf\u5b9a\u4e49\u4e86\u5341\u8fdb\u5236\u683c\u5f0f\u7f16\u6392\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The stylesheet version named in the

-         * substitution text is not supported.

-         */

-        {ErrorMsg.XSL_VERSION_ERR,

-        "XSLTC \u4e0d\u652f\u6301 XSL V{0}\u3002"},

-

-        /*

-         * Note to translators:  The definitions of one or more variables or

-         * parameters depend on one another.

-         */

-        {ErrorMsg.CIRCULAR_VARIABLE_ERR,

-        "\u201c{0}\u201d\u4e2d\u7684\u5faa\u73af\u53d8\u91cf\uff0f\u53c2\u6570\u5f15\u7528\u3002"},

-

-        /*

-         * Note to translators:  The operator in an expresion with two operands was

-         * not recognized.

-         */

-        {ErrorMsg.ILLEGAL_BINARY_OP_ERR,

-        "\u4e8c\u8fdb\u5236\u8868\u8fbe\u5f0f\u7684\u8fd0\u7b97\u7b26\u672a\u77e5\u3002"},

-

-        /*

-         * Note to translators:  This message is produced if a reference to a

-         * function has too many or too few arguments.

-         */

-        {ErrorMsg.ILLEGAL_ARG_ERR,

-        "\u51fd\u6570\u8c03\u7528\u7684\u53c2\u6570\u975e\u6cd5\u3002"},

-

-        /*

-         * Note to translators:  "document()" is the name of function and must

-         * not be translated.  A node-set is a set of the nodes in the tree

-         * representation of an XML document.

-         */

-        {ErrorMsg.DOCUMENT_ARG_ERR,

-        "\u51fd\u6570 document() \u7684\u7b2c\u4e8c\u4e2a\u53c2\u6570\u5fc5\u987b\u662f\u8282\u70b9\u96c6\u3002"},

-

-        /*

-         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords

-         * and should not be translated.  This message describes a syntax error

-         * in the stylesheet.

-         */

-        {ErrorMsg.MISSING_WHEN_ERR,

-        "<xsl:choose> \u4e2d\u81f3\u5c11\u8981\u6709\u4e00\u4e2a <xsl:when> \u5143\u7d20\u3002"},

-

-        /*

-         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are

-         * keywords and should not be translated.  This message describes a

-         * syntax error in the stylesheet.

-         */

-        {ErrorMsg.MULTIPLE_OTHERWISE_ERR,

-        "<xsl:choose> \u4e2d\u53ea\u5141\u8bb8\u6709\u4e00\u4e2a <xsl:otherwise> \u5143\u7d20\u3002"},

-

-        /*

-         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are

-         * keywords and should not be translated.  This message describes a

-         * syntax error in the stylesheet.

-         */

-        {ErrorMsg.STRAY_OTHERWISE_ERR,

-        "<xsl:otherwise> \u53ea\u80fd\u5728 <xsl:choose> \u4e2d\u4f7f\u7528\u3002"},

-

-        /*

-         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords

-         * and should not be translated.  This message describes a syntax error

-         * in the stylesheet.

-         */

-        {ErrorMsg.STRAY_WHEN_ERR,

-        "<xsl:when> \u53ea\u80fd\u5728 <xsl:choose> \u4e2d\u4f7f\u7528\u3002"},

-

-        /*

-         * Note to translators:  "<xsl:when>", "<xsl:otherwise>" and

-         * "<xsl:choose>" are keywords and should not be translated.  This

-         * message describes a syntax error in the stylesheet.

-         */

-        {ErrorMsg.WHEN_ELEMENT_ERR,

-        "<xsl:choose> \u4e2d\u53ea\u5141\u8bb8\u4f7f\u7528 <xsl:when> \u548c <xsl:otherwise>\u3002"},

-

-        /*

-         * Note to translators:  "<xsl:attribute-set>" and "name" are keywords

-         * that should not be translated.

-         */

-        {ErrorMsg.UNNAMED_ATTRIBSET_ERR,

-        "<xsl:attribute-set> \u7f3a\u5c11\u201cname\u201d\u5c5e\u6027\u3002"},

-

-        /*

-         * Note to translators:  An element in the stylesheet contained an

-         * element of a type that it was not permitted to contain.

-         */

-        {ErrorMsg.ILLEGAL_CHILD_ERR,

-        "\u5b50\u5143\u7d20\u975e\u6cd5\u3002"},

-

-        /*

-         * Note to translators:  The stylesheet tried to create an element with

-         * a name that was not a valid XML name.  The substitution text contains

-         * the name.

-         */

-        {ErrorMsg.ILLEGAL_ELEM_NAME_ERR,

-        "\u4e0d\u80fd\u8c03\u7528\u5143\u7d20\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  The stylesheet tried to create an attribute

-         * with a name that was not a valid XML name.  The substitution text

-         * contains the name.

-         */

-        {ErrorMsg.ILLEGAL_ATTR_NAME_ERR,

-        "\u4e0d\u80fd\u8c03\u7528\u5c5e\u6027\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  The children of the outermost element of a

-         * stylesheet are referred to as top-level elements.  No text should

-         * occur within that outermost element unless it is within a top-level

-         * element.  This message indicates that that constraint was violated.

-         * "<xsl:stylesheet>" is a keyword that should not be translated.

-         */

-        {ErrorMsg.ILLEGAL_TEXT_NODE_ERR,

-        "\u6587\u672c\u6570\u636e\u5728\u9876\u7ea7 <xsl:stylesheet> \u5143\u7d20\u5916\u3002"},

-

-        /*

-         * Note to translators:  JAXP is an acronym for the Java API for XML

-         * Processing.  This message indicates that the XML parser provided to

-         * XSLTC to process the XML input document had a configuration problem.

-         */

-        {ErrorMsg.SAX_PARSER_CONFIG_ERR,

-        "JAXP \u89e3\u6790\u5668\u6ca1\u6709\u6b63\u786e\u914d\u7f6e"},

-

-        /*

-         * Note to translators:  The substitution text names the internal error

-         * encountered.

-         */

-        {ErrorMsg.INTERNAL_ERR,

-        "\u4e0d\u53ef\u6062\u590d\u7684 XSLTC \u5185\u90e8\u9519\u8bef\uff1a\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  The stylesheet contained an element that was

-         * not recognized as part of the XSL syntax.  The substitution text

-         * gives the element name.

-         */

-        {ErrorMsg.UNSUPPORTED_XSL_ERR,

-        "\u4e0d\u53d7\u652f\u6301\u7684 XSL \u5143\u7d20\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The stylesheet referred to an extension to the

-         * XSL syntax and indicated that it was defined by XSLTC, but XSTLC does

-         * not recognized the particular extension named.  The substitution text

-         * gives the extension name.

-         */

-        {ErrorMsg.UNSUPPORTED_EXT_ERR,

-        "\u672a\u88ab\u8bc6\u522b\u7684 XSLTC \u6269\u5c55\u540d\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The XML document given to XSLTC as a stylesheet

-         * was not, in fact, a stylesheet.  XSLTC is able to detect that in this

-         * case because the outermost element in the stylesheet has to be

-         * declared with respect to the XSL namespace URI, but no declaration

-         * for that namespace was seen.

-         */

-        {ErrorMsg.MISSING_XSLT_URI_ERR,

-        "\u8f93\u5165\u6587\u6863\u4e0d\u662f\u6837\u5f0f\u8868\uff08XSL \u540d\u79f0\u7a7a\u95f4\u6ca1\u6709\u5728\u6839\u5143\u7d20\u4e2d\u58f0\u660e\uff09\u3002"},

-

-        /*

-         * Note to translators:  XSLTC could not find the stylesheet document

-         * with the name specified by the substitution text.

-         */

-        {ErrorMsg.MISSING_XSLT_TARGET_ERR,

-        "\u627e\u4e0d\u5230\u6837\u5f0f\u8868\u76ee\u6807\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  This message represents an internal error in

-         * condition in XSLTC.  The substitution text is the class name in XSLTC

-         * that is missing some functionality.

-         */

-        {ErrorMsg.NOT_IMPLEMENTED_ERR,

-        "\u6ca1\u6709\u5b9e\u73b0\uff1a\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The XML document given to XSLTC as a stylesheet

-         * was not, in fact, a stylesheet.

-         */

-        {ErrorMsg.NOT_STYLESHEET_ERR,

-        "\u8f93\u5165\u6587\u6863\u4e0d\u5305\u542b XSL \u6837\u5f0f\u8868\u3002"},

-

-        /*

-         * Note to translators:  The element named in the substitution text was

-         * encountered in the stylesheet but is not recognized.

-         */

-        {ErrorMsg.ELEMENT_PARSE_ERR,

-        "\u65e0\u6cd5\u89e3\u6790\u5143\u7d20\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  "use", "<key>", "node", "node-set", "string"

-         * and "number" are keywords in this context and should not be

-         * translated.  This message indicates that the value of the "use"

-         * attribute was not one of the permitted values.

-         */

-        {ErrorMsg.KEY_USE_ATTR_ERR,

-        "<key> \u7684 use \u5c5e\u6027\u5fc5\u987b\u662f node\u3001node-set\u3001string \u6216 number\u3002"},

-

-        /*

-         * Note to translators:  An XML document can specify the version of the

-         * XML specification to which it adheres.  This message indicates that

-         * the version specified for the output document was not valid.

-         */

-        {ErrorMsg.OUTPUT_VERSION_ERR,

-        "\u8f93\u51fa XML \u6587\u6863\u7684\u7248\u672c\u5e94\u5f53\u662f 1.0"},

-

-        /*

-         * Note to translators:  The operator in a comparison operation was

-         * not recognized.

-         */

-        {ErrorMsg.ILLEGAL_RELAT_OP_ERR,

-        "\u5173\u7cfb\u8868\u8fbe\u5f0f\u7684\u8fd0\u7b97\u7b26\u672a\u77e5"},

-

-        /*

-         * Note to translators:  An attribute set defines as a set of XML

-         * attributes that can be added to an element in the output XML document

-         * as a group.  This message is reported if the name specified was not

-         * used to declare an attribute set.  The substitution text is the name

-         * that is in error.

-         */

-        {ErrorMsg.ATTRIBSET_UNDEF_ERR,

-        "\u8bd5\u56fe\u4f7f\u7528\u4e0d\u5b58\u5728\u7684\u5c5e\u6027\u96c6\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The term "attribute value template" is a term

-         * defined by XSLT which describes the value of an attribute that is

-         * determined by an XPath expression.  The message indicates that the

-         * expression was syntactically incorrect; the substitution text

-         * contains the expression that was in error.

-         */

-        {ErrorMsg.ATTR_VAL_TEMPLATE_ERR,

-        "\u65e0\u6cd5\u89e3\u6790\u5c5e\u6027\u503c\u6a21\u677f\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  ???

-         */

-        {ErrorMsg.UNKNOWN_SIG_TYPE_ERR,

-        "\u7c7b\u201c{0}\u201d\u7684\u7279\u5f81\u7b26\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u672a\u77e5\u3002"},

-

-        /*

-         * Note to translators:  The substitution text refers to data types.

-         * The message is displayed if a value in a particular context needs to

-         * be converted to type {1}, but that's not possible for a value of

-         * type {0}.

-         */

-        {ErrorMsg.DATA_CONVERSION_ERR,

-        "\u65e0\u6cd5\u5c06\u6570\u636e\u7c7b\u578b\u201c{0}\u201d\u8f6c\u6362\u6210\u201c{1}\u201d\u3002"},

-

-        /*

-         * Note to translators:  "Templates" is a Java class name that should

-         * not be translated.

-         */

-        {ErrorMsg.NO_TRANSLET_CLASS_ERR,

-        "\u6b64 Templates \u4e0d\u5305\u542b\u6709\u6548\u7684 translet \u7c7b\u5b9a\u4e49\u3002"},

-

-        /*

-         * Note to translators:  "Templates" is a Java class name that should

-         * not be translated.

-         */

-        {ErrorMsg.NO_MAIN_TRANSLET_ERR,

-        "\u6b64 Templates \u4e0d\u5305\u542b\u540d\u4e3a\u201c{0}\u201d\u7684\u7c7b\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a class.

-         */

-        {ErrorMsg.TRANSLET_CLASS_ERR,

-        "\u65e0\u6cd5\u88c5\u5165 translet \u7c7b\u201c{0}\u201d\u3002"},

-

-        {ErrorMsg.TRANSLET_OBJECT_ERR,

-        "Translet \u7c7b\u5df2\u88c5\u5165\uff0c\u4f46\u65e0\u6cd5\u521b\u5efa translet \u5b9e\u4f8b\u3002"},

-

-        /*

-         * Note to translators:  "ErrorListener" is a Java interface name that

-         * should not be translated.  The message indicates that the user tried

-         * to set an ErrorListener object on object of the class named in the

-         * substitution text with "null" Java value.

-         */

-        {ErrorMsg.ERROR_LISTENER_NULL_ERR,

-        "\u8bd5\u56fe\u5c06\u201c{0}\u201d\u7684 ErrorListener \u8bbe\u7f6e\u4e3a\u7a7a"},

-

-        /*

-         * Note to translators:  StreamSource, SAXSource and DOMSource are Java

-         * interface names that should not be translated.

-         */

-        {ErrorMsg.JAXP_UNKNOWN_SOURCE_ERR,

-        "XSLTC \u53ea\u652f\u6301 StreamSource\u3001SAXSource \u548c DOMSource"},

-

-        /*

-         * Note to translators:  "Source" is a Java class name that should not

-         * be translated.  The substitution text is the name of Java method.

-         */

-        {ErrorMsg.JAXP_NO_SOURCE_ERR,

-        "\u4f20\u9012\u7ed9\u201c{0}\u201d\u7684\u6e90\u5bf9\u8c61\u6ca1\u6709\u5185\u5bb9\u3002"},

-

-        /*

-         * Note to translators:  The message indicates that XSLTC failed to

-         * compile the stylesheet into a translet (class file).

-         */

-        {ErrorMsg.JAXP_COMPILE_ERR,

-        "\u65e0\u6cd5\u7f16\u8bd1\u6837\u5f0f\u8868"},

-

-        /*

-         * Note to translators:  "TransformerFactory" is a class name.  In this

-         * context, an attribute is a property or setting of the

-         * TransformerFactory object.  The substitution text is the name of the

-         * unrecognised attribute.  The method used to retrieve the attribute is

-         * "getAttribute", so it's not clear whether it would be best to

-         * translate the term "attribute".

-         */

-        {ErrorMsg.JAXP_INVALID_ATTR_ERR,

-        "TransformerFactory \u65e0\u6cd5\u8bc6\u522b\u5c5e\u6027\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  "setResult()" and "startDocument()" are Java

-         * method names that should not be translated.

-         */

-        {ErrorMsg.JAXP_SET_RESULT_ERR,

-        "setResult() \u5fc5\u987b\u5728 startDocument() \u4e4b\u524d\u8c03\u7528\u3002"},

-

-        /*

-         * Note to translators:  "Transformer" is a Java interface name that

-         * should not be translated.  A Transformer object should contained a

-         * reference to a translet object in order to be used for

-         * transformations; this message is produced if that requirement is not

-         * met.

-         */

-        {ErrorMsg.JAXP_NO_TRANSLET_ERR,

-        "Transformer \u6ca1\u6709\u5c01\u88c5\u7684 translet \u5bf9\u8c61\u3002"},

-

-        /*

-         * Note to translators:  The XML document that results from a

-         * transformation needs to be sent to an output handler object; this

-         * message is produced if that requirement is not met.

-         */

-        {ErrorMsg.JAXP_NO_HANDLER_ERR,

-        "\u6ca1\u6709\u4e3a\u8f6c\u6362\u7ed3\u679c\u5b9a\u4e49\u8f93\u51fa\u5904\u7406\u5668\u3002"},

-

-        /*

-         * Note to translators:  "Result" is a Java interface name in this

-         * context.  The substitution text is a method name.

-         */

-        {ErrorMsg.JAXP_NO_RESULT_ERR,

-        "\u4f20\u9012\u7ed9\u201c{0}\u201d\u7684 Result \u5bf9\u8c61\u65e0\u6548\u3002"},

-

-        /*

-         * Note to translators:  "Transformer" is a Java interface name.  The

-         * user's program attempted to access an unrecognized property with the

-         * name specified in the substitution text.  The method used to retrieve

-         * the property is "getOutputProperty", so it's not clear whether it

-         * would be best to translate the term "property".

-         */

-        {ErrorMsg.JAXP_UNKNOWN_PROP_ERR,

-        "\u8bd5\u56fe\u8bbf\u95ee\u65e0\u6548\u7684 Transformer \u5c5e\u6027\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  SAX2DOM is the name of a Java class that should

-         * not be translated.  This is an adapter in the sense that it takes a

-         * DOM object and converts it to something that uses the SAX API.

-         */

-        {ErrorMsg.SAX2DOM_ADAPTER_ERR,

-        "\u65e0\u6cd5\u521b\u5efa SAX2DOM \u9002\u914d\u5668\uff1a\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  "XSLTCSource.build()" is a Java method name.

-         * "systemId" is an XML term that is short for "system identification".

-         */

-        {ErrorMsg.XSLTC_SOURCE_ERR,

-        "\u6ca1\u6709\u8bbe\u7f6e systemId \u5c31\u8c03\u7528\u4e86 XSLTCSource.build()\u3002"},

-

-        { ErrorMsg.ER_RESULT_NULL,

-            "\u7ed3\u679c\u4e0d\u5e94\u4e3a\u7a7a"},

-

-        /*

-         * Note to translators:  This message indicates that the value argument

-         * of setParameter must be a valid Java Object.

-         */

-        {ErrorMsg.JAXP_INVALID_SET_PARAM_VALUE,

-        "\u53c2\u6570 {0} \u7684\u503c\u5fc5\u987b\u4e3a\u6709\u6548\u7684 Java \u5bf9\u8c61"},

-

-

-        {ErrorMsg.COMPILE_STDIN_ERR,

-        "-i \u9009\u9879\u5fc5\u987b\u4e0e -o \u9009\u9879\u4e00\u8d77\u4f7f\u7528\u3002"},

-

-

-        /*

-         * Note to translators:  This message contains usage information for a

-         * means of invoking XSLTC from the command-line.  The message is

-         * formatted for presentation in English.  The strings <output>,

-         * <directory>, etc. indicate user-specified argument values, and can

-         * be translated - the argument <package> refers to a Java package, so

-         * it should be handled in the same way the term is handled for JDK

-         * documentation.

-         */

-        {ErrorMsg.COMPILE_USAGE_STR,

-        "SYNOPSIS\n   java org.apache.xalan.xsltc.cmdline.Compile [-o <output>]\n      [-d <directory>] [-j <jarfile>] [-p <package>]\n      [-n] [-x] [-u] [-v] [-h] { <stylesheet> | -i }\n\nOPTIONS\n   -o <output>    \u5c06\u540d\u79f0 <output> \u6307\u5b9a\u7ed9\u751f\u6210\u7684\n                  translet\u3002\u7f3a\u7701\u60c5\u51b5\u4e0b\uff0ctranslet \u540d\u79f0\n                  \u6d3e\u751f\u81ea <stylesheet> \u540d\u79f0\u3002\n                  \u5982\u679c\u7f16\u8bd1\u591a\u4e2a\u6837\u5f0f\u8868\uff0c\u5219\u5ffd\u7565\u6b64\u9009\u9879\u3002\n-d <directory> \u6307\u5b9a translet \u7684\u76ee\u6807\u76ee\u5f55\n   -j <jarfile>   \u5c06 translet \u7c7b\u6253\u5305\u6210\u547d\u540d\u4e3a <jarfile>\n                  \u7684 jar \u6587\u4ef6\n   -p <package>   \u4e3a\u6240\u6709\u751f\u6210\u7684 translet \u7c7b\n                  \u6307\u5b9a\u8f6f\u4ef6\u5305\u540d\u79f0\u7684\u524d\u7f00\u3002\n   -n             \u542f\u7528\u6a21\u677f\u5728\u7ebf\uff08\u5e73\u5747\u7f3a\u7701\n                  \u884c\u4e3a\u66f4\u4f73\uff09\u3002\n   -x             \u6253\u5f00\u989d\u5916\u8c03\u8bd5\u6d88\u606f\u8f93\u51fa\n   -u             \u5c06 <stylesheet> \u81ea\u53d8\u91cf\u89e3\u91ca\u4e3a URL\n   -i             \u5f3a\u5236\u7f16\u8bd1\u5668\u4ece stdin \u8bfb\u5165\u6837\u5f0f\u8868\n   -v             \u6253\u5370\u7f16\u8bd1\u5668\u7684\u7248\u672c\n   -h             \u6253\u5370\u6b64\u7528\u6cd5\u8bed\u53e5\n"},

-

-        /*

-         * Note to translators:  This message contains usage information for a

-         * means of invoking XSLTC from the command-line.  The message is

-         * formatted for presentation in English.  The strings <jarfile>,

-         * <document>, etc. indicate user-specified argument values, and can

-         * be translated - the argument <class> refers to a Java class, so it

-         * should be handled in the same way the term is handled for JDK

-         * documentation.

-         */

-        {ErrorMsg.TRANSFORM_USAGE_STR,

-        "SYNOPSIS \n   java org.apache.xalan.xsltc.cmdline.Transform [-j <jarfile>]\n      [-x] [-n <iterations>] {-u <document_url> | <document>}\n      <class> [<param1>=<value1> ...]\n\n   \u4f7f\u7528 translet <class> \u6765\u8f6c\u6362\u6307\u5b9a\u4e3a <document>\n   \u7684 XML \u6587\u6863\u3002translet <class> \u8981\u4e48\u5728\n   \u7528\u6237\u7684 CLASSPATH \u4e2d\uff0c\u8981\u4e48\u5728\u4efb\u610f\u6307\u5b9a\u7684 <jarfile> \u4e2d\u3002\nOPTIONS\n   -j <jarfile>    \u6307\u5b9a\u88c5\u5165 translet \u7684 jarfile\n   -x              \u6253\u5f00\u989d\u5916\u8c03\u8bd5\u6d88\u606f\u8f93\u51fa\n   -n <iterations> \u8fd0\u884c\u8f6c\u6362\u8fc7\u7a0b <iterations> \u6570\u6b21\u5e76\n                   \u663e\u793a\u6982\u8981\u5206\u6790\u4fe1\u606f\n   -u <document_url> \u5c06 XML \u8f93\u5165\u6307\u5b9a\u4e3a URL\n"},

-

-

-

-        /*

-         * Note to translators:  "<xsl:sort>", "<xsl:for-each>" and

-         * "<xsl:apply-templates>" are keywords that should not be translated.

-         * The message indicates that an xsl:sort element must be a child of

-         * one of the other kinds of elements mentioned.

-         */

-        {ErrorMsg.STRAY_SORT_ERR,

-        "<xsl:sort> \u53ea\u80fd\u5728 <xsl:for-each> \u6216 <xsl:apply-templates> \u4e2d\u4f7f\u7528\u3002"},

-

-        /*

-         * Note to translators:  The message indicates that the encoding

-         * requested for the output document was on that requires support that

-         * is not available from the Java Virtual Machine being used to execute

-         * the program.

-         */

-        {ErrorMsg.UNSUPPORTED_ENCODING,

-        "\u6b64 JVM \u4e2d\u4e0d\u652f\u6301\u8f93\u51fa\u7f16\u7801\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The message indicates that the XPath expression

-         * named in the substitution text was not well formed syntactically.

-         */

-        {ErrorMsg.SYNTAX_ERR,

-        "\u201c{0}\u201d\u4e2d\u51fa\u73b0\u8bed\u6cd5\u9519\u8bef\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a Java

-         * class.  The term "constructor" here is the Java term.  The message is

-         * displayed if XSLTC could not find a constructor for the specified

-         * class.

-         */

-        {ErrorMsg.CONSTRUCTOR_NOT_FOUND,

-        "\u627e\u4e0d\u5230\u5916\u90e8\u6784\u9020\u51fd\u6570\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  "static" is the Java keyword.  The substitution

-         * text is the name of a function.  The first argument of that function

-         * is not of the required type.

-         */

-        {ErrorMsg.NO_JAVA_FUNCT_THIS_REF,

-        "\u975e static Java \u51fd\u6570\u201c{0}\u201d\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u662f\u6709\u6548\u7684\u5bf9\u8c61\u5f15\u7528\u3002"},

-

-        /*

-         * Note to translators:  An XPath expression was not of the type

-         * required in a particular context.  The substitution text is the

-         * expression that was in error.

-         */

-        {ErrorMsg.TYPE_CHECK_ERR,

-        "\u68c0\u67e5\u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684\u7c7b\u578b\u65f6\u51fa\u9519\u3002"},

-

-        /*

-         * Note to translators:  An XPath expression was not of the type

-         * required in a particular context.  However, the location of the

-         * problematic expression is unknown.

-         */

-        {ErrorMsg.TYPE_CHECK_UNK_LOC_ERR,

-        "\u68c0\u67e5\u672a\u77e5\u4f4d\u7f6e\u7684\u8868\u8fbe\u5f0f\u7c7b\u578b\u65f6\u51fa\u9519\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a command-

-         * line option that was not recognized.

-         */

-        {ErrorMsg.ILLEGAL_CMDLINE_OPTION_ERR,

-        "\u547d\u4ee4\u884c\u9009\u9879\u201c{0}\u201d\u65e0\u6548\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a command-

-         * line option.

-         */

-        {ErrorMsg.CMDLINE_OPT_MISSING_ARG_ERR,

-        "\u547d\u4ee4\u884c\u9009\u9879\u201c{0}\u201d\u7f3a\u5c11\u5fc5\u9700\u7684\u81ea\u53d8\u91cf\u3002"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text contains two error

-         * messages.  The spacing before the second substitution text indents

-         * it the same amount as the first in English.

-         */

-        {ErrorMsg.WARNING_PLUS_WRAPPED_MSG,

-        "\u8b66\u544a\uff1a\u201c{0}\u201d\n    \uff1a{1}"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text is an error message.

-         */

-        {ErrorMsg.WARNING_MSG,

-        "\u8b66\u544a\uff1a\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text contains two error

-         * messages.  The spacing before the second substitution text indents

-         * it the same amount as the first in English.

-         */

-        {ErrorMsg.FATAL_ERR_PLUS_WRAPPED_MSG,

-        "\u81f4\u547d\u9519\u8bef\uff1a\u201c{0}\u201d\n        \uff1a{1}"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text is an error message.

-         */

-        {ErrorMsg.FATAL_ERR_MSG,

-        "\u81f4\u547d\u9519\u8bef\uff1a\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text contains two error

-         * messages.  The spacing before the second substitution text indents

-         * it the same amount as the first in English.

-         */

-        {ErrorMsg.ERROR_PLUS_WRAPPED_MSG,

-        "\u9519\u8bef\uff1a{0}\u201c\n    \uff1a{1}"},

-

-        /*

-         * Note to translators:  This message is used to indicate the severity

-         * of another message.  The substitution text is an error message.

-         */

-        {ErrorMsg.ERROR_MSG,

-        "\u9519\u8bef\uff1a\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  The substitution text is the name of a class.

-         */

-        {ErrorMsg.TRANSFORM_WITH_TRANSLET_STR,

-        "\u4f7f\u7528 translet\u201c{0}\u201d\u8f6c\u6362"},

-

-        /*

-         * Note to translators:  The first substitution is the name of a class,

-         * while the second substitution is the name of a jar file.

-         */

-        {ErrorMsg.TRANSFORM_WITH_JAR_STR,

-        "\u4f7f\u7528 translet\u201c{0}\u201d\u4ece jar \u6587\u4ef6\u201c{1}\u201d\u8f6c\u6362"},

-

-        /*

-         * Note to translators:  "TransformerFactory" is the name of a Java

-         * interface and must not be translated.  The substitution text is

-         * the name of the class that could not be instantiated.

-         */

-        {ErrorMsg.COULD_NOT_CREATE_TRANS_FACT,

-        "\u65e0\u6cd5\u521b\u5efa TransformerFactory \u7c7b\u201c{0}\u201d\u7684\u5b9e\u4f8b\u3002"},

-

-        /*

-         * Note to translators:  This message is produced when the user

-         * specified a name for the translet class that contains characters

-         * that are not permitted in a Java class name.  The substitution

-         * text "{0}" specifies the name the user requested, while "{1}"

-         * specifies the name the processor used instead.

-         */

-        {ErrorMsg.TRANSLET_NAME_JAVA_CONFLICT,

-         "\u7531\u4e8e\u540d\u79f0\u201c{0}\u201d\u5305\u542b Java \u7c7b\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u7684\u5b57\u7b26\uff0c\u56e0\u6b64\u4e0d\u80fd\u5c06\u5b83\u7528\u4f5c translet \u7c7b\u7684\u540d\u79f0\u3002\u4f7f\u7528\u540d\u79f0\u201c{1}\u201d\u6765\u4ee3\u66ff\u3002"},

-

-        /*

-         * Note to translators:  The following message is used as a header.

-         * All the error messages are collected together and displayed beneath

-         * this message.

-         */

-        {ErrorMsg.COMPILER_ERROR_KEY,

-        "\u7f16\u8bd1\u5668\u9519\u8bef\uff1a"},

-

-        /*

-         * Note to translators:  The following message is used as a header.

-         * All the warning messages are collected together and displayed

-         * beneath this message.

-         */

-        {ErrorMsg.COMPILER_WARNING_KEY,

-        "\u7f16\u8bd1\u5668\u8b66\u544a\uff1a"},

-

-        /*

-         * Note to translators:  The following message is used as a header.

-         * All the error messages that are produced when the stylesheet is

-         * applied to an input document are collected together and displayed

-         * beneath this message.  A 'translet' is the compiled form of a

-         * stylesheet (see above).

-         */

-        {ErrorMsg.RUNTIME_ERROR_KEY,

-        "Translet \u9519\u8bef\uff1a"},

-

-        /*

-         * Note to translators:  An attribute whose value is constrained to

-         * be a "QName" or a list of "QNames" had a value that was incorrect.

-         * 'QName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {ErrorMsg.INVALID_QNAME_ERR,

-        "\u503c\u5fc5\u987b\u4e3a QName \u6216\u4e3a\u7528\u7a7a\u683c\u5206\u5f00\u7684 QName \u5217\u8868\u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  An attribute whose value is required to

-         * be an "NCName".

-         * 'NCName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {ErrorMsg.INVALID_NCNAME_ERR,

-        "\u503c\u5fc5\u987b\u4e3a NCName \u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  An attribute with an incorrect value was

-         * encountered.  The permitted value is one of the literal values

-         * "xml", "html" or "text"; it is also permitted to have the form of

-         * a QName that is not also an NCName.  The terms "method",

-         * "xsl:output", "xml", "html" and "text" are keywords that must not

-         * be translated.  The term "qname-but-not-ncname" is an XML syntactic

-         * term.  The substitution text contains the actual value of the

-         * attribute.

-         */

-        {ErrorMsg.INVALID_METHOD_IN_OUTPUT,

-        "<xsl:output> \u5143\u7d20\u7684 method \u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d\u3002\u6b64\u503c\u5fc5\u987b\u4e3a\u201cxml\u201d\u3001\u201chtml\u201d\u3001\u201ctext\u201d \u6216 qname-but-not-ncname \u4e2d\u7684\u4e00\u4e2a"},

-

-        {ErrorMsg.JAXP_GET_FEATURE_NULL_NAME,

-        "\u5728 TransformerFactory.getFeature(String name) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},

-

-        {ErrorMsg.JAXP_SET_FEATURE_NULL_NAME,

-        "\u5728 TransformerFactory.setFeature(String name, boolean value) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},

-

-        {ErrorMsg.JAXP_UNSUPPORTED_FEATURE,

-        "\u65e0\u6cd5\u5bf9\u6b64 TransformerFactory \u8bbe\u7f6e\u7279\u5f81\u201c{0}\u201d\u3002"}

-

-    };

-    }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.compiler.util;
+
+import java.util.ListResourceBundle;
+
+/**
+ * @author Morten Jorgensen
+ */
+public class ErrorMessages_zh extends ListResourceBundle {
+
+/*
+ * XSLTC compile-time error messages.
+ *
+ * General notes to translators and definitions:
+ *
+ *   1) XSLTC is the name of the product.  It is an acronym for "XSLT Compiler".
+ *      XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *
+ *   2) A stylesheet is a description of how to transform an input XML document
+ *      into a resultant XML document (or HTML document or text).  The
+ *      stylesheet itself is described in the form of an XML document.
+ *
+ *   3) A template is a component of a stylesheet that is used to match a
+ *      particular portion of an input document and specifies the form of the
+ *      corresponding portion of the output document.
+ *
+ *   4) An axis is a particular "dimension" in a tree representation of an XML
+ *      document; the nodes in the tree are divided along different axes.
+ *      Traversing the "child" axis, for instance, means that the program
+ *      would visit each child of a particular node; traversing the "descendant"
+ *      axis means that the program would visit the child nodes of a particular
+ *      node, their children, and so on until the leaf nodes of the tree are
+ *      reached.
+ *
+ *   5) An iterator is an object that traverses nodes in a tree along a
+ *      particular axis, one at a time.
+ *
+ *   6) An element is a mark-up tag in an XML document; an attribute is a
+ *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *      "elem" is an element name, "attr" and "attr2" are attribute names with
+ *      the values "val" and "val2", respectively.
+ *
+ *   7) A namespace declaration is a special attribute that is used to associate
+ *      a prefix with a URI (the namespace).  The meanings of element names and
+ *      attribute names that use that prefix are defined with respect to that
+ *      namespace.
+ *
+ *   8) DOM is an acronym for Document Object Model.  It is a tree
+ *      representation of an XML document.
+ *
+ *      SAX is an acronym for the Simple API for XML processing.  It is an API
+ *      used inform an XML processor (in this case XSLTC) of the structure and
+ *      content of an XML document.
+ *
+ *      Input to the stylesheet processor can come from an XML parser in the
+ *      form of a DOM tree or through the SAX API.
+ *
+ *   9) DTD is a document type declaration.  It is a way of specifying the
+ *      grammar for an XML file, the names and types of elements, attributes,
+ *      etc.
+ *
+ *  10) XPath is a specification that describes a notation for identifying
+ *      nodes in a tree-structured representation of an XML document.  An
+ *      instance of that notation is referred to as an XPath expression.
+ *
+ *  11) Translet is an invented term that refers to the class file that contains
+ *      the compiled form of a stylesheet.
+ */
+
+    // These message should be read from a locale-specific resource bundle
+    /** Get the lookup table for error messages.
+     *
+     * @return The message lookup table.
+     */
+    public Object[][] getContents()
+    {
+      return new Object[][] {
+        {ErrorMsg.MULTIPLE_STYLESHEET_ERR,
+        "\u540c\u4e00\u6587\u4ef6\u4e2d\u5b9a\u4e49\u4e86\u591a\u4e2a\u6837\u5f0f\u8868\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a
+         * template.  The same name was used on two different templates in the
+         * same stylesheet.
+         */
+        {ErrorMsg.TEMPLATE_REDEF_ERR,
+        "\u6b64\u6837\u5f0f\u8868\u4e2d\u5df2\u7ecf\u5b9a\u4e49\u4e86\u6a21\u677f\u201c{0}\u201d\u3002"},
+
+
+        /*
+         * Note to translators:  The substitution text is the name of a
+         * template.  A reference to the template name was encountered, but the
+         * template is undefined.
+         */
+        {ErrorMsg.TEMPLATE_UNDEF_ERR,
+        "\u6b64\u6837\u5f0f\u8868\u4e2d\u672a\u5b9a\u4e49\u6a21\u677f\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a variable
+         * that was defined more than once.
+         */
+        {ErrorMsg.VARIABLE_REDEF_ERR,
+        "\u540c\u4e00\u4f5c\u7528\u57df\u4e2d\u591a\u6b21\u5b9a\u4e49\u4e86\u53d8\u91cf\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a variable
+         * or parameter.  A reference to the variable or parameter was found,
+         * but it was never defined.
+         */
+        {ErrorMsg.VARIABLE_UNDEF_ERR,
+        "\u672a\u5b9a\u4e49\u53d8\u91cf\u6216\u53c2\u6570\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The word "class" here refers to a Java class.
+         * Processing the stylesheet required a class to be loaded, but it could
+         * not be found.  The substitution text is the name of the class.
+         */
+        {ErrorMsg.CLASS_NOT_FOUND_ERR,
+        "\u627e\u4e0d\u5230\u7c7b\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The word "method" here refers to a Java method.
+         * Processing the stylesheet required a reference to the method named by
+         * the substitution text, but it could not be found.  "public" is the
+         * Java keyword.
+         */
+        {ErrorMsg.METHOD_NOT_FOUND_ERR,
+        "\u627e\u4e0d\u5230\u5916\u90e8\u65b9\u6cd5\u201c{0}\u201d\uff08\u5fc5\u987b\u662f public\uff09\u3002"},
+
+        /*
+         * Note to translators:  The word "method" here refers to a Java method.
+         * Processing the stylesheet required a reference to the method named by
+         * the substitution text, but no method with the required types of
+         * arguments or return type could be found.
+         */
+        {ErrorMsg.ARGUMENT_CONVERSION_ERR,
+        "\u65e0\u6cd5\u5c06\u8c03\u7528\u4e2d\u7684\u53c2\u6570\uff0f\u8fd4\u56de\u7c7b\u578b\u8f6c\u6362\u4e3a\u65b9\u6cd5\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  The file or URI named in the substitution text
+         * is missing.
+         */
+        {ErrorMsg.FILE_NOT_FOUND_ERR,
+        "\u627e\u4e0d\u5230\u6587\u4ef6\u6216 URI\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  This message is displayed when the URI
+         * mentioned in the substitution text is not well-formed syntactically.
+         */
+        {ErrorMsg.INVALID_URI_ERR,
+        "URI\u201c{0}\u201d\u65e0\u6548\u3002"},
+
+        /*
+         * Note to translators:  The file or URI named in the substitution text
+         * exists but could not be opened.
+         */
+        {ErrorMsg.FILE_ACCESS_ERR,
+        "\u65e0\u6cd5\u6253\u5f00\u6587\u4ef6\u6216 URI\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators: <xsl:stylesheet> and <xsl:transform> are
+         * keywords that should not be translated.
+         */
+        {ErrorMsg.MISSING_ROOT_ERR,
+        "\u9884\u671f\u5b58\u5728 <xsl:stylesheet> \u6216 <xsl:transform> \u5143\u7d20\u3002"},
+
+        /*
+         * Note to translators:  The stylesheet contained a reference to a
+         * namespace prefix that was undefined.  The value of the substitution
+         * text is the name of the prefix.
+         */
+        {ErrorMsg.NAMESPACE_UNDEF_ERR,
+        "\u672a\u58f0\u660e\u540d\u79f0\u7a7a\u95f4\u524d\u7f00\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The Java function named in the stylesheet could
+         * not be found.
+         */
+        {ErrorMsg.FUNCTION_RESOLVE_ERR,
+        "\u65e0\u6cd5\u89e3\u6790\u5bf9\u51fd\u6570\u201c{0}\u201d\u7684\u8c03\u7528\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a
+         * function.  A literal string here means a constant string value.
+         */
+        {ErrorMsg.NEED_LITERAL_ERR,
+        "\u201c{0}\u201d\u7684\u81ea\u53d8\u91cf\u5fc5\u987b\u662f\u6587\u5b57\u4e32\u3002"},
+
+        /*
+         * Note to translators:  This message indicates there was a syntactic
+         * error in the form of an XPath expression.  The substitution text is
+         * the expression.
+         */
+        {ErrorMsg.XPATH_PARSER_ERR,
+        "\u89e3\u6790 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u65f6\u51fa\u9519\u3002"},
+
+        /*
+         * Note to translators:  An element in the stylesheet requires a
+         * particular attribute named by the substitution text, but that
+         * attribute was not specified in the stylesheet.
+         */
+        {ErrorMsg.REQUIRED_ATTR_ERR,
+        "\u7f3a\u5c11\u5fc5\u9700\u7684\u5c5e\u6027\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  This message indicates that a character not
+         * permitted in an XPath expression was encountered.  The substitution
+         * text is the offending character.
+         */
+        {ErrorMsg.ILLEGAL_CHAR_ERR,
+        "XPath \u8868\u8fbe\u5f0f\u4e2d\u7684\u5b57\u7b26\u201c{0}\u201d\u975e\u6cd5\u3002"},
+
+        /*
+         * Note to translators:  A processing instruction is a mark-up item in
+         * an XML document that request some behaviour of an XML processor.  The
+         * form of the name of was invalid in this case, and the substitution
+         * text is the name.
+         */
+        {ErrorMsg.ILLEGAL_PI_ERR,
+        "\u5904\u7406\u6307\u4ee4\u7684\u540d\u79f0\u201c{0}\u201d\u975e\u6cd5\u3002"},
+
+        /*
+         * Note to translators:  This message is reported if the stylesheet
+         * being processed attempted to construct an XML document with an
+         * attribute in a place other than on an element.  The substitution text
+         * specifies the name of the attribute.
+         */
+        {ErrorMsg.STRAY_ATTRIBUTE_ERR,
+        "\u5c5e\u6027\u201c{0}\u201d\u5728\u5143\u7d20\u5916\u3002"},
+
+        /*
+         * Note to translators:  An attribute that wasn't recognized was
+         * specified on an element in the stylesheet.  The attribute is named
+         * by the substitution
+         * text.
+         */
+        {ErrorMsg.ILLEGAL_ATTRIBUTE_ERR,
+        "\u5c5e\u6027\u201c{0}\u201d\u975e\u6cd5\u3002"},
+
+        /*
+         * Note to translators:  "import" and "include" are keywords that should
+         * not be translated.  This messages indicates that the stylesheet
+         * named in the substitution text imported or included itself either
+         * directly or indirectly.
+         */
+        {ErrorMsg.CIRCULAR_INCLUDE_ERR,
+        "\u5faa\u73af import\uff0finclude\u3002\u5df2\u88c5\u5165\u6837\u5f0f\u8868\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  A result-tree fragment is a portion of a
+         * resulting XML document represented as a tree.  "<xsl:sort>" is a
+         * keyword and should not be translated.
+         */
+        {ErrorMsg.RESULT_TREE_SORT_ERR,
+        "\u65e0\u6cd5\u5bf9\u7ed3\u679c\u6811\u7247\u6bb5\u6392\u5e8f\uff08<xsl:sort> \u5143\u7d20\u88ab\u5ffd\u7565\uff09\u3002\u5fc5\u987b\u5728\u521b\u5efa\u7ed3\u679c\u6811\u65f6\u5bf9\u8282\u70b9\u8fdb\u884c\u6392\u5e8f\u3002"},
+
+        /*
+         * Note to translators:  A name can be given to a particular style to be
+         * used to format decimal values.  The substitution text gives the name
+         * of such a style for which more than one declaration was encountered.
+         */
+        {ErrorMsg.SYMBOLS_REDEF_ERR,
+        "\u5df2\u7ecf\u5b9a\u4e49\u4e86\u5341\u8fdb\u5236\u683c\u5f0f\u7f16\u6392\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The stylesheet version named in the
+         * substitution text is not supported.
+         */
+        {ErrorMsg.XSL_VERSION_ERR,
+        "XSLTC \u4e0d\u652f\u6301 XSL V{0}\u3002"},
+
+        /*
+         * Note to translators:  The definitions of one or more variables or
+         * parameters depend on one another.
+         */
+        {ErrorMsg.CIRCULAR_VARIABLE_ERR,
+        "\u201c{0}\u201d\u4e2d\u7684\u5faa\u73af\u53d8\u91cf\uff0f\u53c2\u6570\u5f15\u7528\u3002"},
+
+        /*
+         * Note to translators:  The operator in an expresion with two operands was
+         * not recognized.
+         */
+        {ErrorMsg.ILLEGAL_BINARY_OP_ERR,
+        "\u4e8c\u8fdb\u5236\u8868\u8fbe\u5f0f\u7684\u8fd0\u7b97\u7b26\u672a\u77e5\u3002"},
+
+        /*
+         * Note to translators:  This message is produced if a reference to a
+         * function has too many or too few arguments.
+         */
+        {ErrorMsg.ILLEGAL_ARG_ERR,
+        "\u51fd\u6570\u8c03\u7528\u7684\u53c2\u6570\u975e\u6cd5\u3002"},
+
+        /*
+         * Note to translators:  "document()" is the name of function and must
+         * not be translated.  A node-set is a set of the nodes in the tree
+         * representation of an XML document.
+         */
+        {ErrorMsg.DOCUMENT_ARG_ERR,
+        "\u51fd\u6570 document() \u7684\u7b2c\u4e8c\u4e2a\u53c2\u6570\u5fc5\u987b\u662f\u8282\u70b9\u96c6\u3002"},
+
+        /*
+         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords
+         * and should not be translated.  This message describes a syntax error
+         * in the stylesheet.
+         */
+        {ErrorMsg.MISSING_WHEN_ERR,
+        "<xsl:choose> \u4e2d\u81f3\u5c11\u8981\u6709\u4e00\u4e2a <xsl:when> \u5143\u7d20\u3002"},
+
+        /*
+         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are
+         * keywords and should not be translated.  This message describes a
+         * syntax error in the stylesheet.
+         */
+        {ErrorMsg.MULTIPLE_OTHERWISE_ERR,
+        "<xsl:choose> \u4e2d\u53ea\u5141\u8bb8\u6709\u4e00\u4e2a <xsl:otherwise> \u5143\u7d20\u3002"},
+
+        /*
+         * Note to translators:  "<xsl:otherwise>" and "<xsl:choose>" are
+         * keywords and should not be translated.  This message describes a
+         * syntax error in the stylesheet.
+         */
+        {ErrorMsg.STRAY_OTHERWISE_ERR,
+        "<xsl:otherwise> \u53ea\u80fd\u5728 <xsl:choose> \u4e2d\u4f7f\u7528\u3002"},
+
+        /*
+         * Note to translators:  "<xsl:when>" and "<xsl:choose>" are keywords
+         * and should not be translated.  This message describes a syntax error
+         * in the stylesheet.
+         */
+        {ErrorMsg.STRAY_WHEN_ERR,
+        "<xsl:when> \u53ea\u80fd\u5728 <xsl:choose> \u4e2d\u4f7f\u7528\u3002"},
+
+        /*
+         * Note to translators:  "<xsl:when>", "<xsl:otherwise>" and
+         * "<xsl:choose>" are keywords and should not be translated.  This
+         * message describes a syntax error in the stylesheet.
+         */
+        {ErrorMsg.WHEN_ELEMENT_ERR,
+        "<xsl:choose> \u4e2d\u53ea\u5141\u8bb8\u4f7f\u7528 <xsl:when> \u548c <xsl:otherwise>\u3002"},
+
+        /*
+         * Note to translators:  "<xsl:attribute-set>" and "name" are keywords
+         * that should not be translated.
+         */
+        {ErrorMsg.UNNAMED_ATTRIBSET_ERR,
+        "<xsl:attribute-set> \u7f3a\u5c11\u201cname\u201d\u5c5e\u6027\u3002"},
+
+        /*
+         * Note to translators:  An element in the stylesheet contained an
+         * element of a type that it was not permitted to contain.
+         */
+        {ErrorMsg.ILLEGAL_CHILD_ERR,
+        "\u5b50\u5143\u7d20\u975e\u6cd5\u3002"},
+
+        /*
+         * Note to translators:  The stylesheet tried to create an element with
+         * a name that was not a valid XML name.  The substitution text contains
+         * the name.
+         */
+        {ErrorMsg.ILLEGAL_ELEM_NAME_ERR,
+        "\u4e0d\u80fd\u8c03\u7528\u5143\u7d20\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  The stylesheet tried to create an attribute
+         * with a name that was not a valid XML name.  The substitution text
+         * contains the name.
+         */
+        {ErrorMsg.ILLEGAL_ATTR_NAME_ERR,
+        "\u4e0d\u80fd\u8c03\u7528\u5c5e\u6027\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  The children of the outermost element of a
+         * stylesheet are referred to as top-level elements.  No text should
+         * occur within that outermost element unless it is within a top-level
+         * element.  This message indicates that that constraint was violated.
+         * "<xsl:stylesheet>" is a keyword that should not be translated.
+         */
+        {ErrorMsg.ILLEGAL_TEXT_NODE_ERR,
+        "\u6587\u672c\u6570\u636e\u5728\u9876\u7ea7 <xsl:stylesheet> \u5143\u7d20\u5916\u3002"},
+
+        /*
+         * Note to translators:  JAXP is an acronym for the Java API for XML
+         * Processing.  This message indicates that the XML parser provided to
+         * XSLTC to process the XML input document had a configuration problem.
+         */
+        {ErrorMsg.SAX_PARSER_CONFIG_ERR,
+        "JAXP \u89e3\u6790\u5668\u6ca1\u6709\u6b63\u786e\u914d\u7f6e"},
+
+        /*
+         * Note to translators:  The substitution text names the internal error
+         * encountered.
+         */
+        {ErrorMsg.INTERNAL_ERR,
+        "\u4e0d\u53ef\u6062\u590d\u7684 XSLTC \u5185\u90e8\u9519\u8bef\uff1a\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  The stylesheet contained an element that was
+         * not recognized as part of the XSL syntax.  The substitution text
+         * gives the element name.
+         */
+        {ErrorMsg.UNSUPPORTED_XSL_ERR,
+        "\u4e0d\u53d7\u652f\u6301\u7684 XSL \u5143\u7d20\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The stylesheet referred to an extension to the
+         * XSL syntax and indicated that it was defined by XSLTC, but XSTLC does
+         * not recognized the particular extension named.  The substitution text
+         * gives the extension name.
+         */
+        {ErrorMsg.UNSUPPORTED_EXT_ERR,
+        "\u672a\u88ab\u8bc6\u522b\u7684 XSLTC \u6269\u5c55\u540d\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The XML document given to XSLTC as a stylesheet
+         * was not, in fact, a stylesheet.  XSLTC is able to detect that in this
+         * case because the outermost element in the stylesheet has to be
+         * declared with respect to the XSL namespace URI, but no declaration
+         * for that namespace was seen.
+         */
+        {ErrorMsg.MISSING_XSLT_URI_ERR,
+        "\u8f93\u5165\u6587\u6863\u4e0d\u662f\u6837\u5f0f\u8868\uff08XSL \u540d\u79f0\u7a7a\u95f4\u6ca1\u6709\u5728\u6839\u5143\u7d20\u4e2d\u58f0\u660e\uff09\u3002"},
+
+        /*
+         * Note to translators:  XSLTC could not find the stylesheet document
+         * with the name specified by the substitution text.
+         */
+        {ErrorMsg.MISSING_XSLT_TARGET_ERR,
+        "\u627e\u4e0d\u5230\u6837\u5f0f\u8868\u76ee\u6807\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  This message represents an internal error in
+         * condition in XSLTC.  The substitution text is the class name in XSLTC
+         * that is missing some functionality.
+         */
+        {ErrorMsg.NOT_IMPLEMENTED_ERR,
+        "\u6ca1\u6709\u5b9e\u73b0\uff1a\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The XML document given to XSLTC as a stylesheet
+         * was not, in fact, a stylesheet.
+         */
+        {ErrorMsg.NOT_STYLESHEET_ERR,
+        "\u8f93\u5165\u6587\u6863\u4e0d\u5305\u542b XSL \u6837\u5f0f\u8868\u3002"},
+
+        /*
+         * Note to translators:  The element named in the substitution text was
+         * encountered in the stylesheet but is not recognized.
+         */
+        {ErrorMsg.ELEMENT_PARSE_ERR,
+        "\u65e0\u6cd5\u89e3\u6790\u5143\u7d20\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  "use", "<key>", "node", "node-set", "string"
+         * and "number" are keywords in this context and should not be
+         * translated.  This message indicates that the value of the "use"
+         * attribute was not one of the permitted values.
+         */
+        {ErrorMsg.KEY_USE_ATTR_ERR,
+        "<key> \u7684 use \u5c5e\u6027\u5fc5\u987b\u662f node\u3001node-set\u3001string \u6216 number\u3002"},
+
+        /*
+         * Note to translators:  An XML document can specify the version of the
+         * XML specification to which it adheres.  This message indicates that
+         * the version specified for the output document was not valid.
+         */
+        {ErrorMsg.OUTPUT_VERSION_ERR,
+        "\u8f93\u51fa XML \u6587\u6863\u7684\u7248\u672c\u5e94\u5f53\u662f 1.0"},
+
+        /*
+         * Note to translators:  The operator in a comparison operation was
+         * not recognized.
+         */
+        {ErrorMsg.ILLEGAL_RELAT_OP_ERR,
+        "\u5173\u7cfb\u8868\u8fbe\u5f0f\u7684\u8fd0\u7b97\u7b26\u672a\u77e5"},
+
+        /*
+         * Note to translators:  An attribute set defines as a set of XML
+         * attributes that can be added to an element in the output XML document
+         * as a group.  This message is reported if the name specified was not
+         * used to declare an attribute set.  The substitution text is the name
+         * that is in error.
+         */
+        {ErrorMsg.ATTRIBSET_UNDEF_ERR,
+        "\u8bd5\u56fe\u4f7f\u7528\u4e0d\u5b58\u5728\u7684\u5c5e\u6027\u96c6\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The term "attribute value template" is a term
+         * defined by XSLT which describes the value of an attribute that is
+         * determined by an XPath expression.  The message indicates that the
+         * expression was syntactically incorrect; the substitution text
+         * contains the expression that was in error.
+         */
+        {ErrorMsg.ATTR_VAL_TEMPLATE_ERR,
+        "\u65e0\u6cd5\u89e3\u6790\u5c5e\u6027\u503c\u6a21\u677f\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  ???
+         */
+        {ErrorMsg.UNKNOWN_SIG_TYPE_ERR,
+        "\u7c7b\u201c{0}\u201d\u7684\u7279\u5f81\u7b26\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u672a\u77e5\u3002"},
+
+        /*
+         * Note to translators:  The substitution text refers to data types.
+         * The message is displayed if a value in a particular context needs to
+         * be converted to type {1}, but that's not possible for a value of
+         * type {0}.
+         */
+        {ErrorMsg.DATA_CONVERSION_ERR,
+        "\u65e0\u6cd5\u5c06\u6570\u636e\u7c7b\u578b\u201c{0}\u201d\u8f6c\u6362\u6210\u201c{1}\u201d\u3002"},
+
+        /*
+         * Note to translators:  "Templates" is a Java class name that should
+         * not be translated.
+         */
+        {ErrorMsg.NO_TRANSLET_CLASS_ERR,
+        "\u6b64 Templates \u4e0d\u5305\u542b\u6709\u6548\u7684 translet \u7c7b\u5b9a\u4e49\u3002"},
+
+        /*
+         * Note to translators:  "Templates" is a Java class name that should
+         * not be translated.
+         */
+        {ErrorMsg.NO_MAIN_TRANSLET_ERR,
+        "\u6b64 Templates \u4e0d\u5305\u542b\u540d\u4e3a\u201c{0}\u201d\u7684\u7c7b\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a class.
+         */
+        {ErrorMsg.TRANSLET_CLASS_ERR,
+        "\u65e0\u6cd5\u88c5\u5165 translet \u7c7b\u201c{0}\u201d\u3002"},
+
+        {ErrorMsg.TRANSLET_OBJECT_ERR,
+        "Translet \u7c7b\u5df2\u88c5\u5165\uff0c\u4f46\u65e0\u6cd5\u521b\u5efa translet \u5b9e\u4f8b\u3002"},
+
+        /*
+         * Note to translators:  "ErrorListener" is a Java interface name that
+         * should not be translated.  The message indicates that the user tried
+         * to set an ErrorListener object on object of the class named in the
+         * substitution text with "null" Java value.
+         */
+        {ErrorMsg.ERROR_LISTENER_NULL_ERR,
+        "\u8bd5\u56fe\u5c06\u201c{0}\u201d\u7684 ErrorListener \u8bbe\u7f6e\u4e3a\u7a7a"},
+
+        /*
+         * Note to translators:  StreamSource, SAXSource and DOMSource are Java
+         * interface names that should not be translated.
+         */
+        {ErrorMsg.JAXP_UNKNOWN_SOURCE_ERR,
+        "XSLTC \u53ea\u652f\u6301 StreamSource\u3001SAXSource \u548c DOMSource"},
+
+        /*
+         * Note to translators:  "Source" is a Java class name that should not
+         * be translated.  The substitution text is the name of Java method.
+         */
+        {ErrorMsg.JAXP_NO_SOURCE_ERR,
+        "\u4f20\u9012\u7ed9\u201c{0}\u201d\u7684\u6e90\u5bf9\u8c61\u6ca1\u6709\u5185\u5bb9\u3002"},
+
+        /*
+         * Note to translators:  The message indicates that XSLTC failed to
+         * compile the stylesheet into a translet (class file).
+         */
+        {ErrorMsg.JAXP_COMPILE_ERR,
+        "\u65e0\u6cd5\u7f16\u8bd1\u6837\u5f0f\u8868"},
+
+        /*
+         * Note to translators:  "TransformerFactory" is a class name.  In this
+         * context, an attribute is a property or setting of the
+         * TransformerFactory object.  The substitution text is the name of the
+         * unrecognised attribute.  The method used to retrieve the attribute is
+         * "getAttribute", so it's not clear whether it would be best to
+         * translate the term "attribute".
+         */
+        {ErrorMsg.JAXP_INVALID_ATTR_ERR,
+        "TransformerFactory \u65e0\u6cd5\u8bc6\u522b\u5c5e\u6027\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  "setResult()" and "startDocument()" are Java
+         * method names that should not be translated.
+         */
+        {ErrorMsg.JAXP_SET_RESULT_ERR,
+        "setResult() \u5fc5\u987b\u5728 startDocument() \u4e4b\u524d\u8c03\u7528\u3002"},
+
+        /*
+         * Note to translators:  "Transformer" is a Java interface name that
+         * should not be translated.  A Transformer object should contained a
+         * reference to a translet object in order to be used for
+         * transformations; this message is produced if that requirement is not
+         * met.
+         */
+        {ErrorMsg.JAXP_NO_TRANSLET_ERR,
+        "Transformer \u6ca1\u6709\u5c01\u88c5\u7684 translet \u5bf9\u8c61\u3002"},
+
+        /*
+         * Note to translators:  The XML document that results from a
+         * transformation needs to be sent to an output handler object; this
+         * message is produced if that requirement is not met.
+         */
+        {ErrorMsg.JAXP_NO_HANDLER_ERR,
+        "\u6ca1\u6709\u4e3a\u8f6c\u6362\u7ed3\u679c\u5b9a\u4e49\u8f93\u51fa\u5904\u7406\u5668\u3002"},
+
+        /*
+         * Note to translators:  "Result" is a Java interface name in this
+         * context.  The substitution text is a method name.
+         */
+        {ErrorMsg.JAXP_NO_RESULT_ERR,
+        "\u4f20\u9012\u7ed9\u201c{0}\u201d\u7684 Result \u5bf9\u8c61\u65e0\u6548\u3002"},
+
+        /*
+         * Note to translators:  "Transformer" is a Java interface name.  The
+         * user's program attempted to access an unrecognized property with the
+         * name specified in the substitution text.  The method used to retrieve
+         * the property is "getOutputProperty", so it's not clear whether it
+         * would be best to translate the term "property".
+         */
+        {ErrorMsg.JAXP_UNKNOWN_PROP_ERR,
+        "\u8bd5\u56fe\u8bbf\u95ee\u65e0\u6548\u7684 Transformer \u5c5e\u6027\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  SAX2DOM is the name of a Java class that should
+         * not be translated.  This is an adapter in the sense that it takes a
+         * DOM object and converts it to something that uses the SAX API.
+         */
+        {ErrorMsg.SAX2DOM_ADAPTER_ERR,
+        "\u65e0\u6cd5\u521b\u5efa SAX2DOM \u9002\u914d\u5668\uff1a\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  "XSLTCSource.build()" is a Java method name.
+         * "systemId" is an XML term that is short for "system identification".
+         */
+        {ErrorMsg.XSLTC_SOURCE_ERR,
+        "\u6ca1\u6709\u8bbe\u7f6e systemId \u5c31\u8c03\u7528\u4e86 XSLTCSource.build()\u3002"},
+
+        { ErrorMsg.ER_RESULT_NULL,
+            "\u7ed3\u679c\u4e0d\u5e94\u4e3a\u7a7a"},
+
+        /*
+         * Note to translators:  This message indicates that the value argument
+         * of setParameter must be a valid Java Object.
+         */
+        {ErrorMsg.JAXP_INVALID_SET_PARAM_VALUE,
+        "\u53c2\u6570 {0} \u7684\u503c\u5fc5\u987b\u4e3a\u6709\u6548\u7684 Java \u5bf9\u8c61"},
+
+
+        {ErrorMsg.COMPILE_STDIN_ERR,
+        "-i \u9009\u9879\u5fc5\u987b\u4e0e -o \u9009\u9879\u4e00\u8d77\u4f7f\u7528\u3002"},
+
+
+        /*
+         * Note to translators:  This message contains usage information for a
+         * means of invoking XSLTC from the command-line.  The message is
+         * formatted for presentation in English.  The strings <output>,
+         * <directory>, etc. indicate user-specified argument values, and can
+         * be translated - the argument <package> refers to a Java package, so
+         * it should be handled in the same way the term is handled for JDK
+         * documentation.
+         */
+        {ErrorMsg.COMPILE_USAGE_STR,
+        "SYNOPSIS\n   java org.apache.xalan.xsltc.cmdline.Compile [-o <output>]\n      [-d <directory>] [-j <jarfile>] [-p <package>]\n      [-n] [-x] [-u] [-v] [-h] { <stylesheet> | -i }\n\nOPTIONS\n   -o <output>    \u5c06\u540d\u79f0 <output> \u6307\u5b9a\u7ed9\u751f\u6210\u7684\n                  translet\u3002\u7f3a\u7701\u60c5\u51b5\u4e0b\uff0ctranslet \u540d\u79f0\n                  \u6d3e\u751f\u81ea <stylesheet> \u540d\u79f0\u3002\n                  \u5982\u679c\u7f16\u8bd1\u591a\u4e2a\u6837\u5f0f\u8868\uff0c\u5219\u5ffd\u7565\u6b64\u9009\u9879\u3002\n-d <directory> \u6307\u5b9a translet \u7684\u76ee\u6807\u76ee\u5f55\n   -j <jarfile>   \u5c06 translet \u7c7b\u6253\u5305\u6210\u547d\u540d\u4e3a <jarfile>\n                  \u7684 jar \u6587\u4ef6\n   -p <package>   \u4e3a\u6240\u6709\u751f\u6210\u7684 translet \u7c7b\n                  \u6307\u5b9a\u8f6f\u4ef6\u5305\u540d\u79f0\u7684\u524d\u7f00\u3002\n   -n             \u542f\u7528\u6a21\u677f\u5728\u7ebf\uff08\u5e73\u5747\u7f3a\u7701\n                  \u884c\u4e3a\u66f4\u4f73\uff09\u3002\n   -x             \u6253\u5f00\u989d\u5916\u8c03\u8bd5\u6d88\u606f\u8f93\u51fa\n   -u             \u5c06 <stylesheet> \u81ea\u53d8\u91cf\u89e3\u91ca\u4e3a URL\n   -i             \u5f3a\u5236\u7f16\u8bd1\u5668\u4ece stdin \u8bfb\u5165\u6837\u5f0f\u8868\n   -v             \u6253\u5370\u7f16\u8bd1\u5668\u7684\u7248\u672c\n   -h             \u6253\u5370\u6b64\u7528\u6cd5\u8bed\u53e5\n"},
+
+        /*
+         * Note to translators:  This message contains usage information for a
+         * means of invoking XSLTC from the command-line.  The message is
+         * formatted for presentation in English.  The strings <jarfile>,
+         * <document>, etc. indicate user-specified argument values, and can
+         * be translated - the argument <class> refers to a Java class, so it
+         * should be handled in the same way the term is handled for JDK
+         * documentation.
+         */
+        {ErrorMsg.TRANSFORM_USAGE_STR,
+        "SYNOPSIS \n   java org.apache.xalan.xsltc.cmdline.Transform [-j <jarfile>]\n      [-x] [-n <iterations>] {-u <document_url> | <document>}\n      <class> [<param1>=<value1> ...]\n\n   \u4f7f\u7528 translet <class> \u6765\u8f6c\u6362\u6307\u5b9a\u4e3a <document>\n   \u7684 XML \u6587\u6863\u3002translet <class> \u8981\u4e48\u5728\n   \u7528\u6237\u7684 CLASSPATH \u4e2d\uff0c\u8981\u4e48\u5728\u4efb\u610f\u6307\u5b9a\u7684 <jarfile> \u4e2d\u3002\nOPTIONS\n   -j <jarfile>    \u6307\u5b9a\u88c5\u5165 translet \u7684 jarfile\n   -x              \u6253\u5f00\u989d\u5916\u8c03\u8bd5\u6d88\u606f\u8f93\u51fa\n   -n <iterations> \u8fd0\u884c\u8f6c\u6362\u8fc7\u7a0b <iterations> \u6570\u6b21\u5e76\n                   \u663e\u793a\u6982\u8981\u5206\u6790\u4fe1\u606f\n   -u <document_url> \u5c06 XML \u8f93\u5165\u6307\u5b9a\u4e3a URL\n"},
+
+
+
+        /*
+         * Note to translators:  "<xsl:sort>", "<xsl:for-each>" and
+         * "<xsl:apply-templates>" are keywords that should not be translated.
+         * The message indicates that an xsl:sort element must be a child of
+         * one of the other kinds of elements mentioned.
+         */
+        {ErrorMsg.STRAY_SORT_ERR,
+        "<xsl:sort> \u53ea\u80fd\u5728 <xsl:for-each> \u6216 <xsl:apply-templates> \u4e2d\u4f7f\u7528\u3002"},
+
+        /*
+         * Note to translators:  The message indicates that the encoding
+         * requested for the output document was on that requires support that
+         * is not available from the Java Virtual Machine being used to execute
+         * the program.
+         */
+        {ErrorMsg.UNSUPPORTED_ENCODING,
+        "\u6b64 JVM \u4e2d\u4e0d\u652f\u6301\u8f93\u51fa\u7f16\u7801\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The message indicates that the XPath expression
+         * named in the substitution text was not well formed syntactically.
+         */
+        {ErrorMsg.SYNTAX_ERR,
+        "\u201c{0}\u201d\u4e2d\u51fa\u73b0\u8bed\u6cd5\u9519\u8bef\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a Java
+         * class.  The term "constructor" here is the Java term.  The message is
+         * displayed if XSLTC could not find a constructor for the specified
+         * class.
+         */
+        {ErrorMsg.CONSTRUCTOR_NOT_FOUND,
+        "\u627e\u4e0d\u5230\u5916\u90e8\u6784\u9020\u51fd\u6570\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  "static" is the Java keyword.  The substitution
+         * text is the name of a function.  The first argument of that function
+         * is not of the required type.
+         */
+        {ErrorMsg.NO_JAVA_FUNCT_THIS_REF,
+        "\u975e static Java \u51fd\u6570\u201c{0}\u201d\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u662f\u6709\u6548\u7684\u5bf9\u8c61\u5f15\u7528\u3002"},
+
+        /*
+         * Note to translators:  An XPath expression was not of the type
+         * required in a particular context.  The substitution text is the
+         * expression that was in error.
+         */
+        {ErrorMsg.TYPE_CHECK_ERR,
+        "\u68c0\u67e5\u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684\u7c7b\u578b\u65f6\u51fa\u9519\u3002"},
+
+        /*
+         * Note to translators:  An XPath expression was not of the type
+         * required in a particular context.  However, the location of the
+         * problematic expression is unknown.
+         */
+        {ErrorMsg.TYPE_CHECK_UNK_LOC_ERR,
+        "\u68c0\u67e5\u672a\u77e5\u4f4d\u7f6e\u7684\u8868\u8fbe\u5f0f\u7c7b\u578b\u65f6\u51fa\u9519\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a command-
+         * line option that was not recognized.
+         */
+        {ErrorMsg.ILLEGAL_CMDLINE_OPTION_ERR,
+        "\u547d\u4ee4\u884c\u9009\u9879\u201c{0}\u201d\u65e0\u6548\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a command-
+         * line option.
+         */
+        {ErrorMsg.CMDLINE_OPT_MISSING_ARG_ERR,
+        "\u547d\u4ee4\u884c\u9009\u9879\u201c{0}\u201d\u7f3a\u5c11\u5fc5\u9700\u7684\u81ea\u53d8\u91cf\u3002"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text contains two error
+         * messages.  The spacing before the second substitution text indents
+         * it the same amount as the first in English.
+         */
+        {ErrorMsg.WARNING_PLUS_WRAPPED_MSG,
+        "\u8b66\u544a\uff1a\u201c{0}\u201d\n    \uff1a{1}"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text is an error message.
+         */
+        {ErrorMsg.WARNING_MSG,
+        "\u8b66\u544a\uff1a\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text contains two error
+         * messages.  The spacing before the second substitution text indents
+         * it the same amount as the first in English.
+         */
+        {ErrorMsg.FATAL_ERR_PLUS_WRAPPED_MSG,
+        "\u81f4\u547d\u9519\u8bef\uff1a\u201c{0}\u201d\n        \uff1a{1}"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text is an error message.
+         */
+        {ErrorMsg.FATAL_ERR_MSG,
+        "\u81f4\u547d\u9519\u8bef\uff1a\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text contains two error
+         * messages.  The spacing before the second substitution text indents
+         * it the same amount as the first in English.
+         */
+        {ErrorMsg.ERROR_PLUS_WRAPPED_MSG,
+        "\u9519\u8bef\uff1a{0}\u201c\n    \uff1a{1}"},
+
+        /*
+         * Note to translators:  This message is used to indicate the severity
+         * of another message.  The substitution text is an error message.
+         */
+        {ErrorMsg.ERROR_MSG,
+        "\u9519\u8bef\uff1a\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  The substitution text is the name of a class.
+         */
+        {ErrorMsg.TRANSFORM_WITH_TRANSLET_STR,
+        "\u4f7f\u7528 translet\u201c{0}\u201d\u8f6c\u6362"},
+
+        /*
+         * Note to translators:  The first substitution is the name of a class,
+         * while the second substitution is the name of a jar file.
+         */
+        {ErrorMsg.TRANSFORM_WITH_JAR_STR,
+        "\u4f7f\u7528 translet\u201c{0}\u201d\u4ece jar \u6587\u4ef6\u201c{1}\u201d\u8f6c\u6362"},
+
+        /*
+         * Note to translators:  "TransformerFactory" is the name of a Java
+         * interface and must not be translated.  The substitution text is
+         * the name of the class that could not be instantiated.
+         */
+        {ErrorMsg.COULD_NOT_CREATE_TRANS_FACT,
+        "\u65e0\u6cd5\u521b\u5efa TransformerFactory \u7c7b\u201c{0}\u201d\u7684\u5b9e\u4f8b\u3002"},
+
+        /*
+         * Note to translators:  This message is produced when the user
+         * specified a name for the translet class that contains characters
+         * that are not permitted in a Java class name.  The substitution
+         * text "{0}" specifies the name the user requested, while "{1}"
+         * specifies the name the processor used instead.
+         */
+        {ErrorMsg.TRANSLET_NAME_JAVA_CONFLICT,
+         "\u7531\u4e8e\u540d\u79f0\u201c{0}\u201d\u5305\u542b Java \u7c7b\u540d\u79f0\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528\u7684\u5b57\u7b26\uff0c\u56e0\u6b64\u4e0d\u80fd\u5c06\u5b83\u7528\u4f5c translet \u7c7b\u7684\u540d\u79f0\u3002\u4f7f\u7528\u540d\u79f0\u201c{1}\u201d\u6765\u4ee3\u66ff\u3002"},
+
+        /*
+         * Note to translators:  The following message is used as a header.
+         * All the error messages are collected together and displayed beneath
+         * this message.
+         */
+        {ErrorMsg.COMPILER_ERROR_KEY,
+        "\u7f16\u8bd1\u5668\u9519\u8bef\uff1a"},
+
+        /*
+         * Note to translators:  The following message is used as a header.
+         * All the warning messages are collected together and displayed
+         * beneath this message.
+         */
+        {ErrorMsg.COMPILER_WARNING_KEY,
+        "\u7f16\u8bd1\u5668\u8b66\u544a\uff1a"},
+
+        /*
+         * Note to translators:  The following message is used as a header.
+         * All the error messages that are produced when the stylesheet is
+         * applied to an input document are collected together and displayed
+         * beneath this message.  A 'translet' is the compiled form of a
+         * stylesheet (see above).
+         */
+        {ErrorMsg.RUNTIME_ERROR_KEY,
+        "Translet \u9519\u8bef\uff1a"},
+
+        /*
+         * Note to translators:  An attribute whose value is constrained to
+         * be a "QName" or a list of "QNames" had a value that was incorrect.
+         * 'QName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {ErrorMsg.INVALID_QNAME_ERR,
+        "\u503c\u5fc5\u987b\u4e3a QName \u6216\u4e3a\u7528\u7a7a\u683c\u5206\u5f00\u7684 QName \u5217\u8868\u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  An attribute whose value is required to
+         * be an "NCName".
+         * 'NCName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {ErrorMsg.INVALID_NCNAME_ERR,
+        "\u503c\u5fc5\u987b\u4e3a NCName \u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  An attribute with an incorrect value was
+         * encountered.  The permitted value is one of the literal values
+         * "xml", "html" or "text"; it is also permitted to have the form of
+         * a QName that is not also an NCName.  The terms "method",
+         * "xsl:output", "xml", "html" and "text" are keywords that must not
+         * be translated.  The term "qname-but-not-ncname" is an XML syntactic
+         * term.  The substitution text contains the actual value of the
+         * attribute.
+         */
+        {ErrorMsg.INVALID_METHOD_IN_OUTPUT,
+        "<xsl:output> \u5143\u7d20\u7684 method \u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d\u3002\u6b64\u503c\u5fc5\u987b\u4e3a\u201cxml\u201d\u3001\u201chtml\u201d\u3001\u201ctext\u201d \u6216 qname-but-not-ncname \u4e2d\u7684\u4e00\u4e2a"},
+
+        {ErrorMsg.JAXP_GET_FEATURE_NULL_NAME,
+        "\u5728 TransformerFactory.getFeature(String name) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},
+
+        {ErrorMsg.JAXP_SET_FEATURE_NULL_NAME,
+        "\u5728 TransformerFactory.setFeature(String name, boolean value) \u4e2d\u7279\u5f81\u540d\u4e0d\u80fd\u4e3a\u7a7a\u3002"},
+
+        {ErrorMsg.JAXP_UNSUPPORTED_FEATURE,
+        "\u65e0\u6cd5\u5bf9\u6b64 TransformerFactory \u8bbe\u7f6e\u7279\u5f81\u201c{0}\u201d\u3002"}
+
+    };
+    }
+
+}
diff --git a/src/org/apache/xalan/xsltc/compiler/util/InternalError.java b/src/org/apache/xalan/xsltc/compiler/util/InternalError.java
index 1544fc9..efe1c36 100644
--- a/src/org/apache/xalan/xsltc/compiler/util/InternalError.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/InternalError.java
@@ -1,36 +1,36 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id$

- */

-

-package org.apache.xalan.xsltc.compiler.util;

-

-/**

- * Marks a class of errors in which XSLTC has reached some incorrect internal

- * state from which it cannot recover.

- */

-public class InternalError extends Error {

-    /**

-     * Construct an <code>InternalError</code> with the specified error message.

-     * @param msg the error message

-     */

-    public InternalError(String msg) {

-        super(msg);

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.compiler.util;
+
+/**
+ * Marks a class of errors in which XSLTC has reached some incorrect internal
+ * state from which it cannot recover.
+ */
+public class InternalError extends Error {
+    /**
+     * Construct an <code>InternalError</code> with the specified error message.
+     * @param msg the error message
+     */
+    public InternalError(String msg) {
+        super(msg);
+    }
+}
diff --git a/src/org/apache/xalan/xsltc/compiler/util/MarkerInstruction.java b/src/org/apache/xalan/xsltc/compiler/util/MarkerInstruction.java
index 82dd09f..9a46641 100644
--- a/src/org/apache/xalan/xsltc/compiler/util/MarkerInstruction.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/MarkerInstruction.java
@@ -1,97 +1,97 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id$

- */

-

-package org.apache.xalan.xsltc.compiler.util;

-

-import java.io.DataOutputStream;

-import java.io.IOException;

-

-import org.apache.bcel.Constants;

-import org.apache.bcel.generic.ConstantPoolGen;

-import org.apache.bcel.generic.Instruction;

-import org.apache.bcel.generic.Visitor;

-

-/**

- * A special abstract dummy subclass of

- * {@link org.apache.bcel.generic.Instruction} used to mark locations of

- * interest in an {@link org.apache.bcel.generic.InstructionList}.  It and

- * its subclasses are only used as placeholders, and do not contribute to the

- * actual byte code instruction stream.

- */

-abstract class MarkerInstruction extends Instruction {

-    /**

-     * Zero-argument constructor.  Sets the opcode to an invalid value and 

-     * sets the length to zero, as it will not be written as part of the

-     * generated byte code.

-     */

-    public MarkerInstruction() {

-        super(Constants.UNDEFINED, (short) 0);

-    }

-

-    /**

-     * {@link org.apache.bcel.generic.Visitor}s will know nothing about this

-     * kind of {@link org.apche.bcel.generic.Instruction}, so this method does

-     * nothing.

-     */

-    public void accept(Visitor v) {

-    }

-

-    /**

-     * The number of JVM stack entries consumed by the instruction.

-     * This instruction is just a place holder, so it does not consume any

-     * stack entries.

-     * @param cpg The {@link org.apache.bcel.generic.ConstantPoolGen} for the

-     * current {@link org.apache.bcel.generic.ClassGen}

-     * @return <code>0</code> always 

-     */

-    final public int consumeStack(ConstantPoolGen cpg) {

-        return 0;

-    }

-    /**

-     * The number of JVM stack entries produced by the instruction.

-     * This instruction is just a place holder, so it does not produce any

-     * stack entries.

-     * @param cpg The {@link org.apache.bcel.generic.ConstantPoolGen} for the

-     * current {@link org.apache.bcel.generic.ClassGen}

-     * @return <code>0</code> always 

-     */

-    final public int produceStack(ConstantPoolGen cpg) {

-        return 0;

-    }

-

-    /**

-     * Produce a copy of the instruction.  By default a

-     * {@link MarkerInstruction} has no parameters, so the base implementation

-     * of {@link #copy()} returns the instruction itself.

-     * @return The instruction itself.

-     */

-    public Instruction copy() {

-        return this;

-    }

-    /**

-     * Dump instruction as byte code to stream out.  A {@link MarkerInstruction}

-     * has no effect on the generated byte code so it is never emitted to the

-     * output stream.

-     * @param out Output stream

-     */

-    final public void dump(DataOutputStream out) throws IOException {

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.compiler.util;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.apache.bcel.Constants;
+import org.apache.bcel.generic.ConstantPoolGen;
+import org.apache.bcel.generic.Instruction;
+import org.apache.bcel.generic.Visitor;
+
+/**
+ * A special abstract dummy subclass of
+ * {@link org.apache.bcel.generic.Instruction} used to mark locations of
+ * interest in an {@link org.apache.bcel.generic.InstructionList}.  It and
+ * its subclasses are only used as placeholders, and do not contribute to the
+ * actual byte code instruction stream.
+ */
+abstract class MarkerInstruction extends Instruction {
+    /**
+     * Zero-argument constructor.  Sets the opcode to an invalid value and 
+     * sets the length to zero, as it will not be written as part of the
+     * generated byte code.
+     */
+    public MarkerInstruction() {
+        super(Constants.UNDEFINED, (short) 0);
+    }
+
+    /**
+     * {@link org.apache.bcel.generic.Visitor}s will know nothing about this
+     * kind of {@link org.apche.bcel.generic.Instruction}, so this method does
+     * nothing.
+     */
+    public void accept(Visitor v) {
+    }
+
+    /**
+     * The number of JVM stack entries consumed by the instruction.
+     * This instruction is just a place holder, so it does not consume any
+     * stack entries.
+     * @param cpg The {@link org.apache.bcel.generic.ConstantPoolGen} for the
+     * current {@link org.apache.bcel.generic.ClassGen}
+     * @return <code>0</code> always 
+     */
+    final public int consumeStack(ConstantPoolGen cpg) {
+        return 0;
+    }
+    /**
+     * The number of JVM stack entries produced by the instruction.
+     * This instruction is just a place holder, so it does not produce any
+     * stack entries.
+     * @param cpg The {@link org.apache.bcel.generic.ConstantPoolGen} for the
+     * current {@link org.apache.bcel.generic.ClassGen}
+     * @return <code>0</code> always 
+     */
+    final public int produceStack(ConstantPoolGen cpg) {
+        return 0;
+    }
+
+    /**
+     * Produce a copy of the instruction.  By default a
+     * {@link MarkerInstruction} has no parameters, so the base implementation
+     * of {@link #copy()} returns the instruction itself.
+     * @return The instruction itself.
+     */
+    public Instruction copy() {
+        return this;
+    }
+    /**
+     * Dump instruction as byte code to stream out.  A {@link MarkerInstruction}
+     * has no effect on the generated byte code so it is never emitted to the
+     * output stream.
+     * @param out Output stream
+     */
+    final public void dump(DataOutputStream out) throws IOException {
+    }
+}
diff --git a/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkEnd.java b/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkEnd.java
index 6dc023c..f9e7734 100644
--- a/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkEnd.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkEnd.java
@@ -1,70 +1,70 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id$

- */

-

-package org.apache.xalan.xsltc.compiler.util;

-

-import org.apache.bcel.generic.Instruction;

-

-/**

- * <p>Marks the end of a region of byte code that can be copied into a new

- * method.  See the {@link OutlineableChunkStart} pseudo-instruction for

- * details.</p>

- */

-class OutlineableChunkEnd extends MarkerInstruction {

-    /**

-     * A constant instance of {@link OutlineableChunkEnd}.  As it has no fields,

-     * there should be no need to create an instance of this class. 

-     */

-    public static final Instruction OUTLINEABLECHUNKEND =

-                                                new OutlineableChunkEnd();

-

-    /**

-     * Private default constructor.  As it has no fields,

-     * there should be no need to create an instance of this class.  See

-     * {@link OutlineableChunkEnd#OUTLINEABLECHUNKEND}.

-     */

-    private OutlineableChunkEnd() {

-    }

-

-    /**

-     * Get the name of this instruction.  Used for debugging.

-     * @return the instruction name

-     */

-    public String getName() {

-        return OutlineableChunkEnd.class.getName();

-    }

-

-    /**

-     * Get the name of this instruction.  Used for debugging.

-     * @return the instruction name

-     */

-    public String toString() {

-        return getName();

-    }

-

-    /**

-     * Get the name of this instruction.  Used for debugging.

-     * @return the instruction name

-     */

-    public String toString(boolean verbose) {

-        return getName();

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.compiler.util;
+
+import org.apache.bcel.generic.Instruction;
+
+/**
+ * <p>Marks the end of a region of byte code that can be copied into a new
+ * method.  See the {@link OutlineableChunkStart} pseudo-instruction for
+ * details.</p>
+ */
+class OutlineableChunkEnd extends MarkerInstruction {
+    /**
+     * A constant instance of {@link OutlineableChunkEnd}.  As it has no fields,
+     * there should be no need to create an instance of this class. 
+     */
+    public static final Instruction OUTLINEABLECHUNKEND =
+                                                new OutlineableChunkEnd();
+
+    /**
+     * Private default constructor.  As it has no fields,
+     * there should be no need to create an instance of this class.  See
+     * {@link OutlineableChunkEnd#OUTLINEABLECHUNKEND}.
+     */
+    private OutlineableChunkEnd() {
+    }
+
+    /**
+     * Get the name of this instruction.  Used for debugging.
+     * @return the instruction name
+     */
+    public String getName() {
+        return OutlineableChunkEnd.class.getName();
+    }
+
+    /**
+     * Get the name of this instruction.  Used for debugging.
+     * @return the instruction name
+     */
+    public String toString() {
+        return getName();
+    }
+
+    /**
+     * Get the name of this instruction.  Used for debugging.
+     * @return the instruction name
+     */
+    public String toString(boolean verbose) {
+        return getName();
+    }
+}
diff --git a/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkStart.java b/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkStart.java
index 01bab2e..7121d6c 100644
--- a/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkStart.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/OutlineableChunkStart.java
@@ -1,79 +1,79 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id$

- */

-

-package org.apache.xalan.xsltc.compiler.util;

-

-import org.apache.bcel.generic.Instruction;

-

-/**

- * <p>This pseudo-instruction marks the beginning of a region of byte code that

- * can be copied into a new method, termed an "outlineable" chunk.  The size of

- * the Java stack must be the same at the start of the region as it is at the

- * end of the region, any value on the stack at the start of the region must not

- * be consumed by an instruction in the region of code, the region must not

- * contain a return instruction, no branch instruction in the region is

- * permitted to have a target that is outside the region, and no branch

- * instruction outside the region is permitted to have a target that is inside

- * the region.</p>

- * <p>The end of the region is marked by an {@link OutlineableChunkEnd}

- * pseudo-instruction.</p>

- * <p>Such a region of code may contain other outlineable regions.</p>

- */

-class OutlineableChunkStart extends MarkerInstruction {

-    /**

-     * A constant instance of {@link OutlineableChunkStart}.  As it has no fields,

-     * there should be no need to create an instance of this class. 

-     */

-    public static final Instruction OUTLINEABLECHUNKSTART =

-                                                new OutlineableChunkStart();

-

-    /**

-     * Private default constructor.  As it has no fields,

-     * there should be no need to create an instance of this class.  See

-     * {@link OutlineableChunkStart#OUTLINEABLECHUNKSTART}.

-     */

-    private OutlineableChunkStart() {

-    }

-

-    /**

-     * Get the name of this instruction.  Used for debugging.

-     * @return the instruction name

-     */

-    public String getName() {

-        return OutlineableChunkStart.class.getName();

-    }

-

-    /**

-     * Get the name of this instruction.  Used for debugging.

-     * @return the instruction name

-     */

-    public String toString() {

-        return getName();

-    }

-

-    /**

-     * Get the name of this instruction.  Used for debugging.

-     * @return the instruction name

-     */

-    public String toString(boolean verbose) {

-        return getName();

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.compiler.util;
+
+import org.apache.bcel.generic.Instruction;
+
+/**
+ * <p>This pseudo-instruction marks the beginning of a region of byte code that
+ * can be copied into a new method, termed an "outlineable" chunk.  The size of
+ * the Java stack must be the same at the start of the region as it is at the
+ * end of the region, any value on the stack at the start of the region must not
+ * be consumed by an instruction in the region of code, the region must not
+ * contain a return instruction, no branch instruction in the region is
+ * permitted to have a target that is outside the region, and no branch
+ * instruction outside the region is permitted to have a target that is inside
+ * the region.</p>
+ * <p>The end of the region is marked by an {@link OutlineableChunkEnd}
+ * pseudo-instruction.</p>
+ * <p>Such a region of code may contain other outlineable regions.</p>
+ */
+class OutlineableChunkStart extends MarkerInstruction {
+    /**
+     * A constant instance of {@link OutlineableChunkStart}.  As it has no fields,
+     * there should be no need to create an instance of this class. 
+     */
+    public static final Instruction OUTLINEABLECHUNKSTART =
+                                                new OutlineableChunkStart();
+
+    /**
+     * Private default constructor.  As it has no fields,
+     * there should be no need to create an instance of this class.  See
+     * {@link OutlineableChunkStart#OUTLINEABLECHUNKSTART}.
+     */
+    private OutlineableChunkStart() {
+    }
+
+    /**
+     * Get the name of this instruction.  Used for debugging.
+     * @return the instruction name
+     */
+    public String getName() {
+        return OutlineableChunkStart.class.getName();
+    }
+
+    /**
+     * Get the name of this instruction.  Used for debugging.
+     * @return the instruction name
+     */
+    public String toString() {
+        return getName();
+    }
+
+    /**
+     * Get the name of this instruction.  Used for debugging.
+     * @return the instruction name
+     */
+    public String toString(boolean verbose) {
+        return getName();
+    }
+}
diff --git a/src/org/apache/xalan/xsltc/dom/MultiValuedNodeHeapIterator.java b/src/org/apache/xalan/xsltc/dom/MultiValuedNodeHeapIterator.java
index 6206dd7..8d2de77 100644
--- a/src/org/apache/xalan/xsltc/dom/MultiValuedNodeHeapIterator.java
+++ b/src/org/apache/xalan/xsltc/dom/MultiValuedNodeHeapIterator.java
@@ -1,294 +1,294 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: UnionIterator.java 337874 2004-02-16 23:06:53Z minchau $

- */

-

-package org.apache.xalan.xsltc.dom;

-

-import org.apache.xalan.xsltc.DOM;

-import org.apache.xalan.xsltc.runtime.BasisLibrary;

-import org.apache.xml.dtm.DTMAxisIterator;

-import org.apache.xml.dtm.ref.DTMAxisIteratorBase;

-

-/**

- * <p><code>MultiValuedNodeHeapIterator</code> takes a set of multi-valued

- * heap nodes and produces a merged NodeSet in document order with duplicates

- * removed.</p>

- * <p>Each multi-valued heap node (which might be a

- * {@link org.apache.xml.dtm.DTMAxisIterator}, but that's  not necessary)

- * generates DTM node handles in document order.  The class

- * maintains the multi-valued heap nodes in a heap, not surprisingly, sorted by

- * the next DTM node handle available form the heap node.</p>

- * <p>After a DTM node is pulled from the heap node that's at the top of the

- * heap, the heap node is advanced to the next DTM node handle it makes

- * available, and the heap nature of the heap is restored to ensure the next

- * DTM node handle pulled is next in document order overall.

- *

- * @author Jacek Ambroziak

- * @author Santiago Pericas-Geertsen

- */

-public abstract class MultiValuedNodeHeapIterator extends DTMAxisIteratorBase {

-    /** wrapper for NodeIterators to support iterator

-	comparison on the value of their next() method

-    */

-

-    /**

-     * An abstract representation of a set of nodes that will be retrieved in

-     * document order.

-     */

-    public abstract class HeapNode implements Cloneable {

-	protected int _node, _markedNode;

-	protected boolean _isStartSet = false;

-		

-        /**

-         * Advance to the next node represented by this {@link HeapNode}

-         *

-         * @return the next DTM node.

-         */

-	public abstract int step();

-

-

-        /**

-         * Creates a deep copy of this {@link HeapNode}.  The clone is not

-         * reset from the current position of the original.

-         *

-         * @return the cloned heap node

-         */

-	public HeapNode cloneHeapNode() {

-            HeapNode clone;

-

-            try {

-                clone = (HeapNode) super.clone();

-            } catch (CloneNotSupportedException e) {

-                BasisLibrary.runTimeError(BasisLibrary.ITERATOR_CLONE_ERR,

-                                          e.toString());

-                return null;

-            }

-

-	    clone._node = _node;

-	    clone._markedNode = _node;

-

-	    return clone;

-	}

-

-        /**

-         * Remembers the current node for the next call to {@link #gotoMark()}.

-         */

-	public void setMark() {

-	    _markedNode = _node;

-	}

-

-        /**

-         * Restores the current node remembered by {@link #setMark()}.

-         */

-	public void gotoMark() {

-	    _node = _markedNode;

-	}

-

-        /**

-         * Performs a comparison of the two heap nodes

-         *

-         * @param heapNode the heap node against which to compare

-         * @return <code>true</code> if and only if the current node for this

-         *         heap node is before the current node of the argument heap

-         *         node in document order.

-         */

-        public abstract boolean isLessThan(HeapNode heapNode);

-

-        /**

-         * Sets context with respect to which this heap node is evaluated.

-         *

-         * @param node The new context node

-         * @return a {@link HeapNode} which may or may not be the same as

-         *         this <code>HeapNode</code>.

-         */

-        public abstract HeapNode setStartNode(int node);

-

-        /**

-         * Reset the heap node back to its beginning.

-         *

-         * @return a {@link HeapNode} which may or may not be the same as

-         *         this <code>HeapNode</code>.

-         */

-        public abstract HeapNode reset();

-    } // end of HeapNode

-

-    private static final int InitSize = 8;

-  

-    private int        _heapSize = 0;

-    private int        _size = InitSize;

-    private HeapNode[] _heap = new HeapNode[InitSize];

-    private int        _free = 0;

-  

-    // Last node returned by this MultiValuedNodeHeapIterator to the caller of

-    // next; used to prune duplicates

-    private int _returnedLast;

-

-    // cached returned last for use in gotoMark

-    private int _cachedReturnedLast = END;

-

-    // cached heap size for use in gotoMark

-    private int _cachedHeapSize;

-

-

-    public DTMAxisIterator cloneIterator() {

-	_isRestartable = false;

-	final HeapNode[] heapCopy = new HeapNode[_heap.length];

-	try {

-	    MultiValuedNodeHeapIterator clone =

-                    (MultiValuedNodeHeapIterator)super.clone();

-

-            for (int i = 0; i < _free; i++) {

-                heapCopy[i] = _heap[i].cloneHeapNode();

-            }

-	    clone.setRestartable(false);

-	    clone._heap = heapCopy;

-	    return clone.reset();

-	} 

-	catch (CloneNotSupportedException e) {

-	    BasisLibrary.runTimeError(BasisLibrary.ITERATOR_CLONE_ERR,

-				      e.toString());

-	    return null;

-	}

-    }

-    

-    protected void addHeapNode(HeapNode node) {

-	if (_free == _size) {

-	    HeapNode[] newArray = new HeapNode[_size *= 2];

-	    System.arraycopy(_heap, 0, newArray, 0, _free);

-	    _heap = newArray;

-	}

-	_heapSize++;

-	_heap[_free++] = node;

-    }

-  

-    public int next() {

-	while (_heapSize > 0) {

-	    final int smallest = _heap[0]._node;

-	    if (smallest == END) { // iterator _heap[0] is done

-		if (_heapSize > 1) {

-		    // Swap first and last (iterator must be restartable)

-		    final HeapNode temp = _heap[0];

-		    _heap[0] = _heap[--_heapSize];

-		    _heap[_heapSize] = temp;

-		}

-		else {

-		    return END;

-		}

-	    }

-	    else if (smallest == _returnedLast) {	// duplicate

-		_heap[0].step(); // value consumed

-	    }

-	    else {

-		_heap[0].step(); // value consumed

-		heapify(0);

-		return returnNode(_returnedLast = smallest);

-	    }

-	    // fallthrough if not returned above

-	    heapify(0);

-	}

-	return END;

-    }

-  

-    public DTMAxisIterator setStartNode(int node) {

-	if (_isRestartable) {

-	    _startNode = node;

-	    for (int i = 0; i < _free; i++) {

-         	if(!_heap[i]._isStartSet){

-        	   _heap[i].setStartNode(node);

-        	   _heap[i].step();	// to get the first node

-        	   _heap[i]._isStartSet = true;

-        	}

-	    }

-	    // build heap

-	    for (int i = (_heapSize = _free)/2; i >= 0; i--) {

-		heapify(i);

-	    }

-	    _returnedLast = END;

-	    return resetPosition();

-	}

-	return this;

-    }

-

-    protected void init() {

-        for (int i =0; i < _free; i++) {

-            _heap[i] = null;

-        }

-

-        _heapSize = 0;

-        _free = 0;

-    }

-

-    /* Build a heap in document order. put the smallest node on the top. 

-     * "smallest node" means the node before other nodes in document order

-     */

-    private void heapify(int i) {

-	for (int r, l, smallest;;) {

-	    r = (i + 1) << 1; l = r - 1;

-	    smallest = l < _heapSize 

-		&& _heap[l].isLessThan(_heap[i]) ? l : i;

-	    if (r < _heapSize && _heap[r].isLessThan(_heap[smallest])) {

-		smallest = r;

-	    }

-	    if (smallest != i) {

-		final HeapNode temp = _heap[smallest];

-		_heap[smallest] = _heap[i];

-		_heap[i] = temp;

-		i = smallest;

-	    } else {

-		break;

-            }

-	}

-    }

-

-    public void setMark() {

-	for (int i = 0; i < _free; i++) {

-	    _heap[i].setMark();

-	}

-	_cachedReturnedLast = _returnedLast;    

-	_cachedHeapSize = _heapSize;

-    }

-

-    public void gotoMark() {

-	for (int i = 0; i < _free; i++) {

-	    _heap[i].gotoMark();

-	}

-	// rebuild heap after call last() function. fix for bug 20913

-	for (int i = (_heapSize = _cachedHeapSize)/2; i >= 0; i--) {

-	    heapify(i);

-	}

-        _returnedLast = _cachedReturnedLast;    

-    }

-

-    public DTMAxisIterator reset() {

-	for (int i = 0; i < _free; i++) {

-	    _heap[i].reset();

-	    _heap[i].step();

-	}

-

-	// build heap

-	for (int i = (_heapSize = _free)/2; i >= 0; i--) {

-	    heapify(i);

-	}

-

-	_returnedLast = END;

-	return resetPosition();

-    }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.dom;
+
+import org.apache.xalan.xsltc.DOM;
+import org.apache.xalan.xsltc.runtime.BasisLibrary;
+import org.apache.xml.dtm.DTMAxisIterator;
+import org.apache.xml.dtm.ref.DTMAxisIteratorBase;
+
+/**
+ * <p><code>MultiValuedNodeHeapIterator</code> takes a set of multi-valued
+ * heap nodes and produces a merged NodeSet in document order with duplicates
+ * removed.</p>
+ * <p>Each multi-valued heap node (which might be a
+ * {@link org.apache.xml.dtm.DTMAxisIterator}, but that's  not necessary)
+ * generates DTM node handles in document order.  The class
+ * maintains the multi-valued heap nodes in a heap, not surprisingly, sorted by
+ * the next DTM node handle available form the heap node.</p>
+ * <p>After a DTM node is pulled from the heap node that's at the top of the
+ * heap, the heap node is advanced to the next DTM node handle it makes
+ * available, and the heap nature of the heap is restored to ensure the next
+ * DTM node handle pulled is next in document order overall.
+ *
+ * @author Jacek Ambroziak
+ * @author Santiago Pericas-Geertsen
+ */
+public abstract class MultiValuedNodeHeapIterator extends DTMAxisIteratorBase {
+    /** wrapper for NodeIterators to support iterator
+	comparison on the value of their next() method
+    */
+
+    /**
+     * An abstract representation of a set of nodes that will be retrieved in
+     * document order.
+     */
+    public abstract class HeapNode implements Cloneable {
+	protected int _node, _markedNode;
+	protected boolean _isStartSet = false;
+		
+        /**
+         * Advance to the next node represented by this {@link HeapNode}
+         *
+         * @return the next DTM node.
+         */
+	public abstract int step();
+
+
+        /**
+         * Creates a deep copy of this {@link HeapNode}.  The clone is not
+         * reset from the current position of the original.
+         *
+         * @return the cloned heap node
+         */
+	public HeapNode cloneHeapNode() {
+            HeapNode clone;
+
+            try {
+                clone = (HeapNode) super.clone();
+            } catch (CloneNotSupportedException e) {
+                BasisLibrary.runTimeError(BasisLibrary.ITERATOR_CLONE_ERR,
+                                          e.toString());
+                return null;
+            }
+
+	    clone._node = _node;
+	    clone._markedNode = _node;
+
+	    return clone;
+	}
+
+        /**
+         * Remembers the current node for the next call to {@link #gotoMark()}.
+         */
+	public void setMark() {
+	    _markedNode = _node;
+	}
+
+        /**
+         * Restores the current node remembered by {@link #setMark()}.
+         */
+	public void gotoMark() {
+	    _node = _markedNode;
+	}
+
+        /**
+         * Performs a comparison of the two heap nodes
+         *
+         * @param heapNode the heap node against which to compare
+         * @return <code>true</code> if and only if the current node for this
+         *         heap node is before the current node of the argument heap
+         *         node in document order.
+         */
+        public abstract boolean isLessThan(HeapNode heapNode);
+
+        /**
+         * Sets context with respect to which this heap node is evaluated.
+         *
+         * @param node The new context node
+         * @return a {@link HeapNode} which may or may not be the same as
+         *         this <code>HeapNode</code>.
+         */
+        public abstract HeapNode setStartNode(int node);
+
+        /**
+         * Reset the heap node back to its beginning.
+         *
+         * @return a {@link HeapNode} which may or may not be the same as
+         *         this <code>HeapNode</code>.
+         */
+        public abstract HeapNode reset();
+    } // end of HeapNode
+
+    private static final int InitSize = 8;
+  
+    private int        _heapSize = 0;
+    private int        _size = InitSize;
+    private HeapNode[] _heap = new HeapNode[InitSize];
+    private int        _free = 0;
+  
+    // Last node returned by this MultiValuedNodeHeapIterator to the caller of
+    // next; used to prune duplicates
+    private int _returnedLast;
+
+    // cached returned last for use in gotoMark
+    private int _cachedReturnedLast = END;
+
+    // cached heap size for use in gotoMark
+    private int _cachedHeapSize;
+
+
+    public DTMAxisIterator cloneIterator() {
+	_isRestartable = false;
+	final HeapNode[] heapCopy = new HeapNode[_heap.length];
+	try {
+	    MultiValuedNodeHeapIterator clone =
+                    (MultiValuedNodeHeapIterator)super.clone();
+
+            for (int i = 0; i < _free; i++) {
+                heapCopy[i] = _heap[i].cloneHeapNode();
+            }
+	    clone.setRestartable(false);
+	    clone._heap = heapCopy;
+	    return clone.reset();
+	} 
+	catch (CloneNotSupportedException e) {
+	    BasisLibrary.runTimeError(BasisLibrary.ITERATOR_CLONE_ERR,
+				      e.toString());
+	    return null;
+	}
+    }
+    
+    protected void addHeapNode(HeapNode node) {
+	if (_free == _size) {
+	    HeapNode[] newArray = new HeapNode[_size *= 2];
+	    System.arraycopy(_heap, 0, newArray, 0, _free);
+	    _heap = newArray;
+	}
+	_heapSize++;
+	_heap[_free++] = node;
+    }
+  
+    public int next() {
+	while (_heapSize > 0) {
+	    final int smallest = _heap[0]._node;
+	    if (smallest == END) { // iterator _heap[0] is done
+		if (_heapSize > 1) {
+		    // Swap first and last (iterator must be restartable)
+		    final HeapNode temp = _heap[0];
+		    _heap[0] = _heap[--_heapSize];
+		    _heap[_heapSize] = temp;
+		}
+		else {
+		    return END;
+		}
+	    }
+	    else if (smallest == _returnedLast) {	// duplicate
+		_heap[0].step(); // value consumed
+	    }
+	    else {
+		_heap[0].step(); // value consumed
+		heapify(0);
+		return returnNode(_returnedLast = smallest);
+	    }
+	    // fallthrough if not returned above
+	    heapify(0);
+	}
+	return END;
+    }
+  
+    public DTMAxisIterator setStartNode(int node) {
+	if (_isRestartable) {
+	    _startNode = node;
+	    for (int i = 0; i < _free; i++) {
+         	if(!_heap[i]._isStartSet){
+        	   _heap[i].setStartNode(node);
+        	   _heap[i].step();	// to get the first node
+        	   _heap[i]._isStartSet = true;
+        	}
+	    }
+	    // build heap
+	    for (int i = (_heapSize = _free)/2; i >= 0; i--) {
+		heapify(i);
+	    }
+	    _returnedLast = END;
+	    return resetPosition();
+	}
+	return this;
+    }
+
+    protected void init() {
+        for (int i =0; i < _free; i++) {
+            _heap[i] = null;
+        }
+
+        _heapSize = 0;
+        _free = 0;
+    }
+
+    /* Build a heap in document order. put the smallest node on the top. 
+     * "smallest node" means the node before other nodes in document order
+     */
+    private void heapify(int i) {
+	for (int r, l, smallest;;) {
+	    r = (i + 1) << 1; l = r - 1;
+	    smallest = l < _heapSize 
+		&& _heap[l].isLessThan(_heap[i]) ? l : i;
+	    if (r < _heapSize && _heap[r].isLessThan(_heap[smallest])) {
+		smallest = r;
+	    }
+	    if (smallest != i) {
+		final HeapNode temp = _heap[smallest];
+		_heap[smallest] = _heap[i];
+		_heap[i] = temp;
+		i = smallest;
+	    } else {
+		break;
+            }
+	}
+    }
+
+    public void setMark() {
+	for (int i = 0; i < _free; i++) {
+	    _heap[i].setMark();
+	}
+	_cachedReturnedLast = _returnedLast;    
+	_cachedHeapSize = _heapSize;
+    }
+
+    public void gotoMark() {
+	for (int i = 0; i < _free; i++) {
+	    _heap[i].gotoMark();
+	}
+	// rebuild heap after call last() function. fix for bug 20913
+	for (int i = (_heapSize = _cachedHeapSize)/2; i >= 0; i--) {
+	    heapify(i);
+	}
+        _returnedLast = _cachedReturnedLast;    
+    }
+
+    public DTMAxisIterator reset() {
+	for (int i = 0; i < _free; i++) {
+	    _heap[i].reset();
+	    _heap[i].step();
+	}
+
+	// build heap
+	for (int i = (_heapSize = _free)/2; i >= 0; i--) {
+	    heapify(i);
+	}
+
+	_returnedLast = END;
+	return resetPosition();
+    }
+
+}
diff --git a/src/org/apache/xalan/xsltc/runtime/ErrorMessages_sl.java b/src/org/apache/xalan/xsltc/runtime/ErrorMessages_sl.java
old mode 100755
new mode 100644
index cc24aa1..d57d65d
--- a/src/org/apache/xalan/xsltc/runtime/ErrorMessages_sl.java
+++ b/src/org/apache/xalan/xsltc/runtime/ErrorMessages_sl.java
@@ -1,285 +1,285 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: ErrorMessages_sl.java,v 1.11 2004/12/15 17:35:45 jycli Exp $

- */

-

-package org.apache.xalan.xsltc.runtime;

-

-import java.util.ListResourceBundle;

-

-/**

- * @author Morten Jorgensen

- */

-public class ErrorMessages_sl extends ListResourceBundle {

-

-/*

- * XSLTC run-time error messages.

- *

- * General notes to translators and definitions:

- *

- *   1) XSLTC is the name of the product.  It is an acronym for XML Stylesheet:

- *      Transformations Compiler

- *

- *   2) A stylesheet is a description of how to transform an input XML document

- *      into a resultant output XML document (or HTML document or text)

- *

- *   3) An axis is a particular "dimension" in a tree representation of an XML

- *      document; the nodes in the tree are divided along different axes.

- *      Traversing the "child" axis, for instance, means that the program

- *      would visit each child of a particular node; traversing the "descendant"

- *      axis means that the program would visit the child nodes of a particular

- *      node, their children, and so on until the leaf nodes of the tree are

- *      reached.

- *

- *   4) An iterator is an object that traverses nodes in a tree along a

- *      particular axis, one at a time.

- *

- *   5) An element is a mark-up tag in an XML document; an attribute is a

- *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *      "elem" is an element name, "attr" and "attr2" are attribute names with

- *      the values "val" and "val2", respectively.

- *

- *   6) A namespace declaration is a special attribute that is used to associate

- *      a prefix with a URI (the namespace).  The meanings of element names and

- *      attribute names that use that prefix are defined with respect to that

- *      namespace.

- *

- *   7) DOM is an acronym for Document Object Model.  It is a tree

- *      representation of an XML document.

- *

- *      SAX is an acronym for the Simple API for XML processing.  It is an API

- *      used inform an XML processor (in this case XSLTC) of the structure and

- *      content of an XML document.

- *

- *      Input to the stylesheet processor can come from an XML parser in the

- *      form of a DOM tree or through the SAX API.

- *

- *   8) DTD is a document type declaration.  It is a way of specifying the

- *      grammar for an XML file, the names and types of elements, attributes,

- *      etc.

- *

- *   9) Translet is an invented term that refers to the class file that contains

- *      the compiled form of a stylesheet.

- */

-

-    // These message should be read from a locale-specific resource bundle

-    /** Get the lookup table for error messages.

-     *

-     * @return The message lookup table.

-     */

-    public Object[][] getContents()

-    {

-      return new Object[][] {

-

-        /*

-         * Note to translators:  the substitution text in the following message

-         * is a class name.  Used for internal errors in the processor.

-         */

-        {BasisLibrary.RUN_TIME_INTERNAL_ERR,

-        "Notranja napaka izvajanja v ''{0}''"},

-

-        /*

-         * Note to translators:  <xsl:copy> is a keyword that should not be

-         * translated.

-         */

-        {BasisLibrary.RUN_TIME_COPY_ERR,

-        "Notranja napaka izvajanja pri izvajanju <xsl:copy>."},

-

-        /*

-         * Note to translators:  The substitution text refers to data types.

-         * The message is displayed if a value in a particular context needs to

-         * be converted to type {1}, but that's not possible for a value of type

-         * {0}.

-         */

-        {BasisLibrary.DATA_CONVERSION_ERR,

-        "Neveljavna pretvorba iz ''{0}'' v ''{1}''."},

-

-        /*

-         * Note to translators:  This message is displayed if the function named

-         * by the substitution text is not a function that is supported.  XSLTC

-         * is the acronym naming the product.

-         */

-        {BasisLibrary.EXTERNAL_FUNC_ERR,

-        "XSLTC ne podpira zunanje funkcije ''{0}''."},

-

-        /*

-         * Note to translators:  This message is displayed if two values are

-         * compared for equality, but the data type of one of the values is

-         * unknown.

-         */

-        {BasisLibrary.EQUALITY_EXPR_ERR,

-        "Neznan tip argumenta v izrazu enakovrednosti."},

-

-        /*

-         * Note to translators:  The substitution text for {0} will be a data

-         * type; the substitution text for {1} will be the name of a function.

-         * This is displayed if an argument of the particular data type is not

-         * permitted for a call to this function.

-         */

-        {BasisLibrary.INVALID_ARGUMENT_ERR,

-        "Neveljavna vrsta argumenta ''{0}'' pri klicu na ''{1}''"},

-

-        /*

-         * Note to translators:  There is way of specifying a format for a

-         * number using a pattern; the processor was unable to format the

-         * particular value using the specified pattern.

-         */

-        {BasisLibrary.FORMAT_NUMBER_ERR,

-        "Pokus nastavitve formata \u0161tevilke ''{0}'' z uporabo vzorca ''{1}''."},

-

-        /*

-         * Note to translators:  The following represents an internal error

-         * situation in XSLTC.  The processor was unable to create a copy of an

-         * iterator.  (See definition of iterator above.)

-         */

-        {BasisLibrary.ITERATOR_CLONE_ERR,

-        "Iteratorja ''{0}'' ni mogo\u010de klonirati."},

-

-        /*

-         * Note to translators:  The following represents an internal error

-         * situation in XSLTC.  The processor attempted to create an iterator

-         * for a particular axis (see definition above) that it does not

-         * support.

-         */

-        {BasisLibrary.AXIS_SUPPORT_ERR,

-        "Iterator za os ''{0}'' ni podprt."},

-

-        /*

-         * Note to translators:  The following represents an internal error

-         * situation in XSLTC.  The processor attempted to create an iterator

-         * for a particular axis (see definition above) that it does not

-         * support.

-         */

-        {BasisLibrary.TYPED_AXIS_SUPPORT_ERR,

-        "Iterator za tipizirano os ''{0}'' ni podprt."},

-

-        /*

-         * Note to translators:  This message is reported if the stylesheet

-         * being processed attempted to construct an XML document with an

-         * attribute in a place other than on an element.  The substitution text

-         * specifies the name of the attribute.

-         */

-        {BasisLibrary.STRAY_ATTRIBUTE_ERR,

-        "Atribut ''{0}'' zunaj elementa."},

-

-        /*

-         * Note to translators:  As with the preceding message, a namespace

-         * declaration has the form of an attribute and is only permitted to

-         * appear on an element.  The substitution text {0} is the namespace

-         * prefix and {1} is the URI that was being used in the erroneous

-         * namespace declaration.

-         */

-        {BasisLibrary.STRAY_NAMESPACE_ERR,

-        "Deklaracija imenskega prostora ''{0}''=''{1}'' je zunaj elementa."},

-

-        /*

-         * Note to translators:  The stylesheet contained a reference to a

-         * namespace prefix that was undefined.  The value of the substitution

-         * text is the name of the prefix.

-         */

-        {BasisLibrary.NAMESPACE_PREFIX_ERR,

-        "Imenski prostor za predpono ''{0}'' ni bil naveden."},

-

-        /*

-         * Note to translators:  The following represents an internal error.

-         * DOMAdapter is a Java class in XSLTC.

-         */

-        {BasisLibrary.DOM_ADAPTER_INIT_ERR,

-        "DOMAdapter ustvarjen z uporabo napa\u010dnega tipa izvornega DOM."},

-

-        /*

-         * Note to translators:  The following message indicates that the XML

-         * parser that is providing input to XSLTC cannot be used because it

-         * does not describe to XSLTC the structure of the input XML document's

-         * DTD.

-         */

-        {BasisLibrary.PARSER_DTD_SUPPORT_ERR,

-        "Uporabljeni raz\u010dlenjevalnik SAX ne obravnava dogodkov deklaracije DTD."},

-

-        /*

-         * Note to translators:  The following message indicates that the XML

-         * parser that is providing input to XSLTC cannot be used because it

-         * does not distinguish between ordinary XML attributes and namespace

-         * declarations.

-         */

-        {BasisLibrary.NAMESPACES_SUPPORT_ERR,

-        "Uporabljeni raz\u010dlenjevalnik SAX ne podpira imenskih prostorov XML."},

-

-        /*

-         * Note to translators:  The substitution text is the URI that was in

-         * error.

-         */

-        {BasisLibrary.CANT_RESOLVE_RELATIVE_URI_ERR,

-        "Ni mogo\u010de razre\u0161iti sklica URI ''{0}''."},

-

-         /*

-         * Note to translators:  The stylesheet contained an element that was

-         * not recognized as part of the XSL syntax.  The substitution text

-         * gives the element name.

-         */

-        {BasisLibrary.UNSUPPORTED_XSL_ERR,

-        "Nepodprt XSL element ''{0}''"},

-

-        /*

-         * Note to translators:  The stylesheet referred to an extension to the

-         * XSL syntax and indicated that it was defined by XSLTC, but XSLTC does

-         * not recognize the particular extension named.  The substitution text

-         * gives the extension name.

-         */

-        {BasisLibrary.UNSUPPORTED_EXT_ERR,

-        "Neprepoznana raz\u0161iritev XSLTC ''{0}''"},

-

-

-        /*

-         * Note to translators:  This error message is produced if the translet

-         * class was compiled using a newer version of XSLTC and deployed for

-         * execution with an older version of XSLTC.  The substitution text is

-         * the name of the translet class.

-         */

-        {BasisLibrary.UNKNOWN_TRANSLET_VERSION_ERR,

-        "Navedeni translet, ''{0}'', je bil ustvarjen z uporabo XSLTC novej\u0161e razli\u010dice, kot je trenutno uporabljana razli\u010dica izvajalnega okolja XSLTC. Slogovno datoteko morate ponovno prevesti ali pa uporabiti novej\u0161o razli\u010dico XSLTC-ja, da bi zagnali ta translet."},

-

-        /*

-         * Note to translators:  An attribute whose effective value is required

-         * to be a "QName" had a value that was incorrect.

-         * 'QName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {BasisLibrary.INVALID_QNAME_ERR,

-        "Atribut, katerega vrednost mora biti QName, je imel vrednost ''{0}''"},

-

-

-        /*

-         * Note to translators:  An attribute whose effective value is required

-         * to be a "NCName" had a value that was incorrect.

-         * 'NCName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {BasisLibrary.INVALID_NCNAME_ERR,

-        "Atribut, katerega vrednost mora biti NCName, je imel vrednost ''{0}''"},

-

-        {BasisLibrary.UNALLOWED_EXTENSION_FUNCTION_ERR,

-        "Uporaba raz\u0161iritvene funkcije ''{0}'' ni dovoljena, ko je funkcija varne obdelave nastavljena na True."},

-

-        {BasisLibrary.UNALLOWED_EXTENSION_ELEMENT_ERR,

-        "Uporaba raz\u0161iritvene elementa ''{0}'' ni dovoljena, ko je funkcija varne obdelave nastavljena na True."},

-    };

-    }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.runtime;
+
+import java.util.ListResourceBundle;
+
+/**
+ * @author Morten Jorgensen
+ */
+public class ErrorMessages_sl extends ListResourceBundle {
+
+/*
+ * XSLTC run-time error messages.
+ *
+ * General notes to translators and definitions:
+ *
+ *   1) XSLTC is the name of the product.  It is an acronym for XML Stylesheet:
+ *      Transformations Compiler
+ *
+ *   2) A stylesheet is a description of how to transform an input XML document
+ *      into a resultant output XML document (or HTML document or text)
+ *
+ *   3) An axis is a particular "dimension" in a tree representation of an XML
+ *      document; the nodes in the tree are divided along different axes.
+ *      Traversing the "child" axis, for instance, means that the program
+ *      would visit each child of a particular node; traversing the "descendant"
+ *      axis means that the program would visit the child nodes of a particular
+ *      node, their children, and so on until the leaf nodes of the tree are
+ *      reached.
+ *
+ *   4) An iterator is an object that traverses nodes in a tree along a
+ *      particular axis, one at a time.
+ *
+ *   5) An element is a mark-up tag in an XML document; an attribute is a
+ *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *      "elem" is an element name, "attr" and "attr2" are attribute names with
+ *      the values "val" and "val2", respectively.
+ *
+ *   6) A namespace declaration is a special attribute that is used to associate
+ *      a prefix with a URI (the namespace).  The meanings of element names and
+ *      attribute names that use that prefix are defined with respect to that
+ *      namespace.
+ *
+ *   7) DOM is an acronym for Document Object Model.  It is a tree
+ *      representation of an XML document.
+ *
+ *      SAX is an acronym for the Simple API for XML processing.  It is an API
+ *      used inform an XML processor (in this case XSLTC) of the structure and
+ *      content of an XML document.
+ *
+ *      Input to the stylesheet processor can come from an XML parser in the
+ *      form of a DOM tree or through the SAX API.
+ *
+ *   8) DTD is a document type declaration.  It is a way of specifying the
+ *      grammar for an XML file, the names and types of elements, attributes,
+ *      etc.
+ *
+ *   9) Translet is an invented term that refers to the class file that contains
+ *      the compiled form of a stylesheet.
+ */
+
+    // These message should be read from a locale-specific resource bundle
+    /** Get the lookup table for error messages.
+     *
+     * @return The message lookup table.
+     */
+    public Object[][] getContents()
+    {
+      return new Object[][] {
+
+        /*
+         * Note to translators:  the substitution text in the following message
+         * is a class name.  Used for internal errors in the processor.
+         */
+        {BasisLibrary.RUN_TIME_INTERNAL_ERR,
+        "Notranja napaka izvajanja v ''{0}''"},
+
+        /*
+         * Note to translators:  <xsl:copy> is a keyword that should not be
+         * translated.
+         */
+        {BasisLibrary.RUN_TIME_COPY_ERR,
+        "Notranja napaka izvajanja pri izvajanju <xsl:copy>."},
+
+        /*
+         * Note to translators:  The substitution text refers to data types.
+         * The message is displayed if a value in a particular context needs to
+         * be converted to type {1}, but that's not possible for a value of type
+         * {0}.
+         */
+        {BasisLibrary.DATA_CONVERSION_ERR,
+        "Neveljavna pretvorba iz ''{0}'' v ''{1}''."},
+
+        /*
+         * Note to translators:  This message is displayed if the function named
+         * by the substitution text is not a function that is supported.  XSLTC
+         * is the acronym naming the product.
+         */
+        {BasisLibrary.EXTERNAL_FUNC_ERR,
+        "XSLTC ne podpira zunanje funkcije ''{0}''."},
+
+        /*
+         * Note to translators:  This message is displayed if two values are
+         * compared for equality, but the data type of one of the values is
+         * unknown.
+         */
+        {BasisLibrary.EQUALITY_EXPR_ERR,
+        "Neznan tip argumenta v izrazu enakovrednosti."},
+
+        /*
+         * Note to translators:  The substitution text for {0} will be a data
+         * type; the substitution text for {1} will be the name of a function.
+         * This is displayed if an argument of the particular data type is not
+         * permitted for a call to this function.
+         */
+        {BasisLibrary.INVALID_ARGUMENT_ERR,
+        "Neveljavna vrsta argumenta ''{0}'' pri klicu na ''{1}''"},
+
+        /*
+         * Note to translators:  There is way of specifying a format for a
+         * number using a pattern; the processor was unable to format the
+         * particular value using the specified pattern.
+         */
+        {BasisLibrary.FORMAT_NUMBER_ERR,
+        "Pokus nastavitve formata \u0161tevilke ''{0}'' z uporabo vzorca ''{1}''."},
+
+        /*
+         * Note to translators:  The following represents an internal error
+         * situation in XSLTC.  The processor was unable to create a copy of an
+         * iterator.  (See definition of iterator above.)
+         */
+        {BasisLibrary.ITERATOR_CLONE_ERR,
+        "Iteratorja ''{0}'' ni mogo\u010de klonirati."},
+
+        /*
+         * Note to translators:  The following represents an internal error
+         * situation in XSLTC.  The processor attempted to create an iterator
+         * for a particular axis (see definition above) that it does not
+         * support.
+         */
+        {BasisLibrary.AXIS_SUPPORT_ERR,
+        "Iterator za os ''{0}'' ni podprt."},
+
+        /*
+         * Note to translators:  The following represents an internal error
+         * situation in XSLTC.  The processor attempted to create an iterator
+         * for a particular axis (see definition above) that it does not
+         * support.
+         */
+        {BasisLibrary.TYPED_AXIS_SUPPORT_ERR,
+        "Iterator za tipizirano os ''{0}'' ni podprt."},
+
+        /*
+         * Note to translators:  This message is reported if the stylesheet
+         * being processed attempted to construct an XML document with an
+         * attribute in a place other than on an element.  The substitution text
+         * specifies the name of the attribute.
+         */
+        {BasisLibrary.STRAY_ATTRIBUTE_ERR,
+        "Atribut ''{0}'' zunaj elementa."},
+
+        /*
+         * Note to translators:  As with the preceding message, a namespace
+         * declaration has the form of an attribute and is only permitted to
+         * appear on an element.  The substitution text {0} is the namespace
+         * prefix and {1} is the URI that was being used in the erroneous
+         * namespace declaration.
+         */
+        {BasisLibrary.STRAY_NAMESPACE_ERR,
+        "Deklaracija imenskega prostora ''{0}''=''{1}'' je zunaj elementa."},
+
+        /*
+         * Note to translators:  The stylesheet contained a reference to a
+         * namespace prefix that was undefined.  The value of the substitution
+         * text is the name of the prefix.
+         */
+        {BasisLibrary.NAMESPACE_PREFIX_ERR,
+        "Imenski prostor za predpono ''{0}'' ni bil naveden."},
+
+        /*
+         * Note to translators:  The following represents an internal error.
+         * DOMAdapter is a Java class in XSLTC.
+         */
+        {BasisLibrary.DOM_ADAPTER_INIT_ERR,
+        "DOMAdapter ustvarjen z uporabo napa\u010dnega tipa izvornega DOM."},
+
+        /*
+         * Note to translators:  The following message indicates that the XML
+         * parser that is providing input to XSLTC cannot be used because it
+         * does not describe to XSLTC the structure of the input XML document's
+         * DTD.
+         */
+        {BasisLibrary.PARSER_DTD_SUPPORT_ERR,
+        "Uporabljeni raz\u010dlenjevalnik SAX ne obravnava dogodkov deklaracije DTD."},
+
+        /*
+         * Note to translators:  The following message indicates that the XML
+         * parser that is providing input to XSLTC cannot be used because it
+         * does not distinguish between ordinary XML attributes and namespace
+         * declarations.
+         */
+        {BasisLibrary.NAMESPACES_SUPPORT_ERR,
+        "Uporabljeni raz\u010dlenjevalnik SAX ne podpira imenskih prostorov XML."},
+
+        /*
+         * Note to translators:  The substitution text is the URI that was in
+         * error.
+         */
+        {BasisLibrary.CANT_RESOLVE_RELATIVE_URI_ERR,
+        "Ni mogo\u010de razre\u0161iti sklica URI ''{0}''."},
+
+         /*
+         * Note to translators:  The stylesheet contained an element that was
+         * not recognized as part of the XSL syntax.  The substitution text
+         * gives the element name.
+         */
+        {BasisLibrary.UNSUPPORTED_XSL_ERR,
+        "Nepodprt XSL element ''{0}''"},
+
+        /*
+         * Note to translators:  The stylesheet referred to an extension to the
+         * XSL syntax and indicated that it was defined by XSLTC, but XSLTC does
+         * not recognize the particular extension named.  The substitution text
+         * gives the extension name.
+         */
+        {BasisLibrary.UNSUPPORTED_EXT_ERR,
+        "Neprepoznana raz\u0161iritev XSLTC ''{0}''"},
+
+
+        /*
+         * Note to translators:  This error message is produced if the translet
+         * class was compiled using a newer version of XSLTC and deployed for
+         * execution with an older version of XSLTC.  The substitution text is
+         * the name of the translet class.
+         */
+        {BasisLibrary.UNKNOWN_TRANSLET_VERSION_ERR,
+        "Navedeni translet, ''{0}'', je bil ustvarjen z uporabo XSLTC novej\u0161e razli\u010dice, kot je trenutno uporabljana razli\u010dica izvajalnega okolja XSLTC. Slogovno datoteko morate ponovno prevesti ali pa uporabiti novej\u0161o razli\u010dico XSLTC-ja, da bi zagnali ta translet."},
+
+        /*
+         * Note to translators:  An attribute whose effective value is required
+         * to be a "QName" had a value that was incorrect.
+         * 'QName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {BasisLibrary.INVALID_QNAME_ERR,
+        "Atribut, katerega vrednost mora biti QName, je imel vrednost ''{0}''"},
+
+
+        /*
+         * Note to translators:  An attribute whose effective value is required
+         * to be a "NCName" had a value that was incorrect.
+         * 'NCName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {BasisLibrary.INVALID_NCNAME_ERR,
+        "Atribut, katerega vrednost mora biti NCName, je imel vrednost ''{0}''"},
+
+        {BasisLibrary.UNALLOWED_EXTENSION_FUNCTION_ERR,
+        "Uporaba raz\u0161iritvene funkcije ''{0}'' ni dovoljena, ko je funkcija varne obdelave nastavljena na True."},
+
+        {BasisLibrary.UNALLOWED_EXTENSION_ELEMENT_ERR,
+        "Uporaba raz\u0161iritvene elementa ''{0}'' ni dovoljena, ko je funkcija varne obdelave nastavljena na True."},
+    };
+    }
+
+}
diff --git a/src/org/apache/xalan/xsltc/runtime/ErrorMessages_zh.java b/src/org/apache/xalan/xsltc/runtime/ErrorMessages_zh.java
old mode 100755
new mode 100644
index d58ff47..9bf2d65
--- a/src/org/apache/xalan/xsltc/runtime/ErrorMessages_zh.java
+++ b/src/org/apache/xalan/xsltc/runtime/ErrorMessages_zh.java
@@ -1,285 +1,285 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: ErrorMessages_zh.java 338081 2004-12-15 17:35:58Z jycli $

- */

-

-package org.apache.xalan.xsltc.runtime;

-

-import java.util.ListResourceBundle;

-

-/**

- * @author Morten Jorgensen

- */

-public class ErrorMessages_zh extends ListResourceBundle {

-

-/*

- * XSLTC run-time error messages.

- *

- * General notes to translators and definitions:

- *

- *   1) XSLTC is the name of the product.  It is an acronym for XML Stylesheet:

- *      Transformations Compiler

- *

- *   2) A stylesheet is a description of how to transform an input XML document

- *      into a resultant output XML document (or HTML document or text)

- *

- *   3) An axis is a particular "dimension" in a tree representation of an XML

- *      document; the nodes in the tree are divided along different axes.

- *      Traversing the "child" axis, for instance, means that the program

- *      would visit each child of a particular node; traversing the "descendant"

- *      axis means that the program would visit the child nodes of a particular

- *      node, their children, and so on until the leaf nodes of the tree are

- *      reached.

- *

- *   4) An iterator is an object that traverses nodes in a tree along a

- *      particular axis, one at a time.

- *

- *   5) An element is a mark-up tag in an XML document; an attribute is a

- *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *      "elem" is an element name, "attr" and "attr2" are attribute names with

- *      the values "val" and "val2", respectively.

- *

- *   6) A namespace declaration is a special attribute that is used to associate

- *      a prefix with a URI (the namespace).  The meanings of element names and

- *      attribute names that use that prefix are defined with respect to that

- *      namespace.

- *

- *   7) DOM is an acronym for Document Object Model.  It is a tree

- *      representation of an XML document.

- *

- *      SAX is an acronym for the Simple API for XML processing.  It is an API

- *      used inform an XML processor (in this case XSLTC) of the structure and

- *      content of an XML document.

- *

- *      Input to the stylesheet processor can come from an XML parser in the

- *      form of a DOM tree or through the SAX API.

- *

- *   8) DTD is a document type declaration.  It is a way of specifying the

- *      grammar for an XML file, the names and types of elements, attributes,

- *      etc.

- *

- *   9) Translet is an invented term that refers to the class file that contains

- *      the compiled form of a stylesheet.

- */

-

-    // These message should be read from a locale-specific resource bundle

-    /** Get the lookup table for error messages.

-     *

-     * @return The message lookup table.

-     */

-    public Object[][] getContents()

-    {

-      return new Object[][] {

-

-        /*

-         * Note to translators:  the substitution text in the following message

-         * is a class name.  Used for internal errors in the processor.

-         */

-        {BasisLibrary.RUN_TIME_INTERNAL_ERR,

-        "\u201c{0}\u201d\u4e2d\u51fa\u73b0\u8fd0\u884c\u65f6\u5185\u90e8\u9519\u8bef"},

-

-        /*

-         * Note to translators:  <xsl:copy> is a keyword that should not be

-         * translated.

-         */

-        {BasisLibrary.RUN_TIME_COPY_ERR,

-        "\u5728\u6267\u884c <xsl:copy> \u65f6\u53d1\u751f\u8fd0\u884c\u65f6\u9519\u8bef\u3002"},

-

-        /*

-         * Note to translators:  The substitution text refers to data types.

-         * The message is displayed if a value in a particular context needs to

-         * be converted to type {1}, but that's not possible for a value of type

-         * {0}.

-         */

-        {BasisLibrary.DATA_CONVERSION_ERR,

-        "\u4ece\u201c{0}\u201d\u5230\u201c{1}\u201d\u7684\u8f6c\u6362\u65e0\u6548\u3002"},

-

-        /*

-         * Note to translators:  This message is displayed if the function named

-         * by the substitution text is not a function that is supported.  XSLTC

-         * is the acronym naming the product.

-         */

-        {BasisLibrary.EXTERNAL_FUNC_ERR,

-        "XSLTC \u4e0d\u652f\u6301\u5916\u90e8\u51fd\u6570\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  This message is displayed if two values are

-         * compared for equality, but the data type of one of the values is

-         * unknown.

-         */

-        {BasisLibrary.EQUALITY_EXPR_ERR,

-        "\u7b49\u5f0f\u8868\u8fbe\u5f0f\u4e2d\u7684\u81ea\u53d8\u91cf\u7c7b\u578b\u672a\u77e5\u3002"},

-

-        /*

-         * Note to translators:  The substitution text for {0} will be a data

-         * type; the substitution text for {1} will be the name of a function.

-         * This is displayed if an argument of the particular data type is not

-         * permitted for a call to this function.

-         */

-        {BasisLibrary.INVALID_ARGUMENT_ERR,

-        "\u8c03\u7528\u201c{1}\u201d\u65f6\u4f7f\u7528\u7684\u53c2\u6570\u7c7b\u578b\u201c{0}\u201d\u65e0\u6548"},

-

-        /*

-         * Note to translators:  There is way of specifying a format for a

-         * number using a pattern; the processor was unable to format the

-         * particular value using the specified pattern.

-         */

-        {BasisLibrary.FORMAT_NUMBER_ERR,

-        "\u8bd5\u56fe\u4f7f\u7528\u6a21\u5f0f\u201c{1}\u201d\u4e3a\u6570\u5b57\u201c{0}\u201d\u7f16\u6392\u683c\u5f0f\u3002"},

-

-        /*

-         * Note to translators:  The following represents an internal error

-         * situation in XSLTC.  The processor was unable to create a copy of an

-         * iterator.  (See definition of iterator above.)

-         */

-        {BasisLibrary.ITERATOR_CLONE_ERR,

-        "\u65e0\u6cd5\u514b\u9686\u8fed\u4ee3\u5668\u201c{0}\u201d\u3002"},

-

-        /*

-         * Note to translators:  The following represents an internal error

-         * situation in XSLTC.  The processor attempted to create an iterator

-         * for a particular axis (see definition above) that it does not

-         * support.

-         */

-        {BasisLibrary.AXIS_SUPPORT_ERR,

-        "\u4e0d\u652f\u6301\u8f74\u201c{0}\u201d\u7684\u8fed\u4ee3\u5668\u3002"},

-

-        /*

-         * Note to translators:  The following represents an internal error

-         * situation in XSLTC.  The processor attempted to create an iterator

-         * for a particular axis (see definition above) that it does not

-         * support.

-         */

-        {BasisLibrary.TYPED_AXIS_SUPPORT_ERR,

-        "\u4e0d\u652f\u6301\u8f93\u5165\u7684\u8f74\u201c{0}\u201d\u7684\u8fed\u4ee3\u5668\u3002"},

-

-        /*

-         * Note to translators:  This message is reported if the stylesheet

-         * being processed attempted to construct an XML document with an

-         * attribute in a place other than on an element.  The substitution text

-         * specifies the name of the attribute.

-         */

-        {BasisLibrary.STRAY_ATTRIBUTE_ERR,

-        "\u5c5e\u6027\u201c{0}\u201d\u5728\u5143\u7d20\u5916\u3002"},

-

-        /*

-         * Note to translators:  As with the preceding message, a namespace

-         * declaration has the form of an attribute and is only permitted to

-         * appear on an element.  The substitution text {0} is the namespace

-         * prefix and {1} is the URI that was being used in the erroneous

-         * namespace declaration.

-         */

-        {BasisLibrary.STRAY_NAMESPACE_ERR,

-        "\u540d\u79f0\u7a7a\u95f4\u58f0\u660e\u201c{0}\u201d=\u201c{1}\u201d\u5728\u5143\u7d20\u5916\u3002"},

-

-        /*

-         * Note to translators:  The stylesheet contained a reference to a

-         * namespace prefix that was undefined.  The value of the substitution

-         * text is the name of the prefix.

-         */

-        {BasisLibrary.NAMESPACE_PREFIX_ERR,

-        "\u5c1a\u672a\u58f0\u660e\u524d\u7f00\u201c{0}\u201d\u7684\u540d\u79f0\u7a7a\u95f4\u3002"},

-

-        /*

-         * Note to translators:  The following represents an internal error.

-         * DOMAdapter is a Java class in XSLTC.

-         */

-        {BasisLibrary.DOM_ADAPTER_INIT_ERR,

-        "\u4f7f\u7528\u9519\u8bef\u7c7b\u578b\u7684\u6e90 DOM \u521b\u5efa\u4e86 DOMAdapter\u3002"},

-

-        /*

-         * Note to translators:  The following message indicates that the XML

-         * parser that is providing input to XSLTC cannot be used because it

-         * does not describe to XSLTC the structure of the input XML document's

-         * DTD.

-         */

-        {BasisLibrary.PARSER_DTD_SUPPORT_ERR,

-        "\u6b63\u5728\u4f7f\u7528\u7684 SAX \u89e3\u6790\u5668\u4e0d\u5904\u7406 DTD \u58f0\u660e\u4e8b\u4ef6\u3002"},

-

-        /*

-         * Note to translators:  The following message indicates that the XML

-         * parser that is providing input to XSLTC cannot be used because it

-         * does not distinguish between ordinary XML attributes and namespace

-         * declarations.

-         */

-        {BasisLibrary.NAMESPACES_SUPPORT_ERR,

-        "\u6b63\u5728\u4f7f\u7528\u7684 SAX \u89e3\u6790\u5668\u4e0d\u652f\u6301 XML \u540d\u79f0\u7a7a\u95f4\u3002"},

-

-        /*

-         * Note to translators:  The substitution text is the URI that was in

-         * error.

-         */

-        {BasisLibrary.CANT_RESOLVE_RELATIVE_URI_ERR,

-        "\u65e0\u6cd5\u89e3\u6790 URI \u5f15\u7528\u201c{0}\u201d\u3002"},

-

-         /*

-         * Note to translators:  The stylesheet contained an element that was

-         * not recognized as part of the XSL syntax.  The substitution text

-         * gives the element name.

-         */

-        {BasisLibrary.UNSUPPORTED_XSL_ERR,

-        "\u4e0d\u53d7\u652f\u6301\u7684 XSL \u5143\u7d20\u201c{0}\u201d"},

-

-        /*

-         * Note to translators:  The stylesheet referred to an extension to the

-         * XSL syntax and indicated that it was defined by XSLTC, but XSLTC does

-         * not recognize the particular extension named.  The substitution text

-         * gives the extension name.

-         */

-        {BasisLibrary.UNSUPPORTED_EXT_ERR,

-        "\u672a\u88ab\u8bc6\u522b\u7684 XSLTC \u6269\u5c55\u540d\u201c{0}\u201d"},

-

-

-        /*

-         * Note to translators:  This error message is produced if the translet

-         * class was compiled using a newer version of XSLTC and deployed for

-         * execution with an older version of XSLTC.  The substitution text is

-         * the name of the translet class.

-         */

-        {BasisLibrary.UNKNOWN_TRANSLET_VERSION_ERR,

-        "\u521b\u5efa\u6307\u5b9a\u7684 translet\u201c{0}\u201d\u65f6\uff0c\u4f7f\u7528\u7684 XSLTC \u7248\u672c\u6bd4\u6b63\u5728\u4f7f\u7528\u7684 XSLTC \u8fd0\u884c\u65f6\u7248\u672c\u66f4\u65b0\u3002\u60a8\u5fc5\u987b\u91cd\u65b0\u7f16\u8bd1\u6837\u5f0f\u8868\u6216\u4f7f\u7528\u66f4\u65b0\u7684 XSLTC \u7248\u672c\u6765\u8fd0\u884c\u6b64 translet\u3002"},

-

-        /*

-         * Note to translators:  An attribute whose effective value is required

-         * to be a "QName" had a value that was incorrect.

-         * 'QName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {BasisLibrary.INVALID_QNAME_ERR,

-        "\u503c\u5fc5\u987b\u4e3a QName \u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},

-

-

-        /*

-         * Note to translators:  An attribute whose effective value is required

-         * to be a "NCName" had a value that was incorrect.

-         * 'NCName' is an XML syntactic term that must not be translated.  The

-         * substitution text contains the actual value of the attribute.

-         */

-        {BasisLibrary.INVALID_NCNAME_ERR,

-        "\u503c\u5fc5\u987b\u4e3a NCName \u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},

-

-        {BasisLibrary.UNALLOWED_EXTENSION_FUNCTION_ERR,

-        "\u5f53\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u6269\u5c55\u51fd\u6570\u201c{0}\u201d\u3002"},

-

-        {BasisLibrary.UNALLOWED_EXTENSION_ELEMENT_ERR,

-        "\u5f53\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u6269\u5c55\u5143\u7d20\u201c{0}\u201d\u3002"},

-    };

-    }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xalan.xsltc.runtime;
+
+import java.util.ListResourceBundle;
+
+/**
+ * @author Morten Jorgensen
+ */
+public class ErrorMessages_zh extends ListResourceBundle {
+
+/*
+ * XSLTC run-time error messages.
+ *
+ * General notes to translators and definitions:
+ *
+ *   1) XSLTC is the name of the product.  It is an acronym for XML Stylesheet:
+ *      Transformations Compiler
+ *
+ *   2) A stylesheet is a description of how to transform an input XML document
+ *      into a resultant output XML document (or HTML document or text)
+ *
+ *   3) An axis is a particular "dimension" in a tree representation of an XML
+ *      document; the nodes in the tree are divided along different axes.
+ *      Traversing the "child" axis, for instance, means that the program
+ *      would visit each child of a particular node; traversing the "descendant"
+ *      axis means that the program would visit the child nodes of a particular
+ *      node, their children, and so on until the leaf nodes of the tree are
+ *      reached.
+ *
+ *   4) An iterator is an object that traverses nodes in a tree along a
+ *      particular axis, one at a time.
+ *
+ *   5) An element is a mark-up tag in an XML document; an attribute is a
+ *      modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *      "elem" is an element name, "attr" and "attr2" are attribute names with
+ *      the values "val" and "val2", respectively.
+ *
+ *   6) A namespace declaration is a special attribute that is used to associate
+ *      a prefix with a URI (the namespace).  The meanings of element names and
+ *      attribute names that use that prefix are defined with respect to that
+ *      namespace.
+ *
+ *   7) DOM is an acronym for Document Object Model.  It is a tree
+ *      representation of an XML document.
+ *
+ *      SAX is an acronym for the Simple API for XML processing.  It is an API
+ *      used inform an XML processor (in this case XSLTC) of the structure and
+ *      content of an XML document.
+ *
+ *      Input to the stylesheet processor can come from an XML parser in the
+ *      form of a DOM tree or through the SAX API.
+ *
+ *   8) DTD is a document type declaration.  It is a way of specifying the
+ *      grammar for an XML file, the names and types of elements, attributes,
+ *      etc.
+ *
+ *   9) Translet is an invented term that refers to the class file that contains
+ *      the compiled form of a stylesheet.
+ */
+
+    // These message should be read from a locale-specific resource bundle
+    /** Get the lookup table for error messages.
+     *
+     * @return The message lookup table.
+     */
+    public Object[][] getContents()
+    {
+      return new Object[][] {
+
+        /*
+         * Note to translators:  the substitution text in the following message
+         * is a class name.  Used for internal errors in the processor.
+         */
+        {BasisLibrary.RUN_TIME_INTERNAL_ERR,
+        "\u201c{0}\u201d\u4e2d\u51fa\u73b0\u8fd0\u884c\u65f6\u5185\u90e8\u9519\u8bef"},
+
+        /*
+         * Note to translators:  <xsl:copy> is a keyword that should not be
+         * translated.
+         */
+        {BasisLibrary.RUN_TIME_COPY_ERR,
+        "\u5728\u6267\u884c <xsl:copy> \u65f6\u53d1\u751f\u8fd0\u884c\u65f6\u9519\u8bef\u3002"},
+
+        /*
+         * Note to translators:  The substitution text refers to data types.
+         * The message is displayed if a value in a particular context needs to
+         * be converted to type {1}, but that's not possible for a value of type
+         * {0}.
+         */
+        {BasisLibrary.DATA_CONVERSION_ERR,
+        "\u4ece\u201c{0}\u201d\u5230\u201c{1}\u201d\u7684\u8f6c\u6362\u65e0\u6548\u3002"},
+
+        /*
+         * Note to translators:  This message is displayed if the function named
+         * by the substitution text is not a function that is supported.  XSLTC
+         * is the acronym naming the product.
+         */
+        {BasisLibrary.EXTERNAL_FUNC_ERR,
+        "XSLTC \u4e0d\u652f\u6301\u5916\u90e8\u51fd\u6570\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  This message is displayed if two values are
+         * compared for equality, but the data type of one of the values is
+         * unknown.
+         */
+        {BasisLibrary.EQUALITY_EXPR_ERR,
+        "\u7b49\u5f0f\u8868\u8fbe\u5f0f\u4e2d\u7684\u81ea\u53d8\u91cf\u7c7b\u578b\u672a\u77e5\u3002"},
+
+        /*
+         * Note to translators:  The substitution text for {0} will be a data
+         * type; the substitution text for {1} will be the name of a function.
+         * This is displayed if an argument of the particular data type is not
+         * permitted for a call to this function.
+         */
+        {BasisLibrary.INVALID_ARGUMENT_ERR,
+        "\u8c03\u7528\u201c{1}\u201d\u65f6\u4f7f\u7528\u7684\u53c2\u6570\u7c7b\u578b\u201c{0}\u201d\u65e0\u6548"},
+
+        /*
+         * Note to translators:  There is way of specifying a format for a
+         * number using a pattern; the processor was unable to format the
+         * particular value using the specified pattern.
+         */
+        {BasisLibrary.FORMAT_NUMBER_ERR,
+        "\u8bd5\u56fe\u4f7f\u7528\u6a21\u5f0f\u201c{1}\u201d\u4e3a\u6570\u5b57\u201c{0}\u201d\u7f16\u6392\u683c\u5f0f\u3002"},
+
+        /*
+         * Note to translators:  The following represents an internal error
+         * situation in XSLTC.  The processor was unable to create a copy of an
+         * iterator.  (See definition of iterator above.)
+         */
+        {BasisLibrary.ITERATOR_CLONE_ERR,
+        "\u65e0\u6cd5\u514b\u9686\u8fed\u4ee3\u5668\u201c{0}\u201d\u3002"},
+
+        /*
+         * Note to translators:  The following represents an internal error
+         * situation in XSLTC.  The processor attempted to create an iterator
+         * for a particular axis (see definition above) that it does not
+         * support.
+         */
+        {BasisLibrary.AXIS_SUPPORT_ERR,
+        "\u4e0d\u652f\u6301\u8f74\u201c{0}\u201d\u7684\u8fed\u4ee3\u5668\u3002"},
+
+        /*
+         * Note to translators:  The following represents an internal error
+         * situation in XSLTC.  The processor attempted to create an iterator
+         * for a particular axis (see definition above) that it does not
+         * support.
+         */
+        {BasisLibrary.TYPED_AXIS_SUPPORT_ERR,
+        "\u4e0d\u652f\u6301\u8f93\u5165\u7684\u8f74\u201c{0}\u201d\u7684\u8fed\u4ee3\u5668\u3002"},
+
+        /*
+         * Note to translators:  This message is reported if the stylesheet
+         * being processed attempted to construct an XML document with an
+         * attribute in a place other than on an element.  The substitution text
+         * specifies the name of the attribute.
+         */
+        {BasisLibrary.STRAY_ATTRIBUTE_ERR,
+        "\u5c5e\u6027\u201c{0}\u201d\u5728\u5143\u7d20\u5916\u3002"},
+
+        /*
+         * Note to translators:  As with the preceding message, a namespace
+         * declaration has the form of an attribute and is only permitted to
+         * appear on an element.  The substitution text {0} is the namespace
+         * prefix and {1} is the URI that was being used in the erroneous
+         * namespace declaration.
+         */
+        {BasisLibrary.STRAY_NAMESPACE_ERR,
+        "\u540d\u79f0\u7a7a\u95f4\u58f0\u660e\u201c{0}\u201d=\u201c{1}\u201d\u5728\u5143\u7d20\u5916\u3002"},
+
+        /*
+         * Note to translators:  The stylesheet contained a reference to a
+         * namespace prefix that was undefined.  The value of the substitution
+         * text is the name of the prefix.
+         */
+        {BasisLibrary.NAMESPACE_PREFIX_ERR,
+        "\u5c1a\u672a\u58f0\u660e\u524d\u7f00\u201c{0}\u201d\u7684\u540d\u79f0\u7a7a\u95f4\u3002"},
+
+        /*
+         * Note to translators:  The following represents an internal error.
+         * DOMAdapter is a Java class in XSLTC.
+         */
+        {BasisLibrary.DOM_ADAPTER_INIT_ERR,
+        "\u4f7f\u7528\u9519\u8bef\u7c7b\u578b\u7684\u6e90 DOM \u521b\u5efa\u4e86 DOMAdapter\u3002"},
+
+        /*
+         * Note to translators:  The following message indicates that the XML
+         * parser that is providing input to XSLTC cannot be used because it
+         * does not describe to XSLTC the structure of the input XML document's
+         * DTD.
+         */
+        {BasisLibrary.PARSER_DTD_SUPPORT_ERR,
+        "\u6b63\u5728\u4f7f\u7528\u7684 SAX \u89e3\u6790\u5668\u4e0d\u5904\u7406 DTD \u58f0\u660e\u4e8b\u4ef6\u3002"},
+
+        /*
+         * Note to translators:  The following message indicates that the XML
+         * parser that is providing input to XSLTC cannot be used because it
+         * does not distinguish between ordinary XML attributes and namespace
+         * declarations.
+         */
+        {BasisLibrary.NAMESPACES_SUPPORT_ERR,
+        "\u6b63\u5728\u4f7f\u7528\u7684 SAX \u89e3\u6790\u5668\u4e0d\u652f\u6301 XML \u540d\u79f0\u7a7a\u95f4\u3002"},
+
+        /*
+         * Note to translators:  The substitution text is the URI that was in
+         * error.
+         */
+        {BasisLibrary.CANT_RESOLVE_RELATIVE_URI_ERR,
+        "\u65e0\u6cd5\u89e3\u6790 URI \u5f15\u7528\u201c{0}\u201d\u3002"},
+
+         /*
+         * Note to translators:  The stylesheet contained an element that was
+         * not recognized as part of the XSL syntax.  The substitution text
+         * gives the element name.
+         */
+        {BasisLibrary.UNSUPPORTED_XSL_ERR,
+        "\u4e0d\u53d7\u652f\u6301\u7684 XSL \u5143\u7d20\u201c{0}\u201d"},
+
+        /*
+         * Note to translators:  The stylesheet referred to an extension to the
+         * XSL syntax and indicated that it was defined by XSLTC, but XSLTC does
+         * not recognize the particular extension named.  The substitution text
+         * gives the extension name.
+         */
+        {BasisLibrary.UNSUPPORTED_EXT_ERR,
+        "\u672a\u88ab\u8bc6\u522b\u7684 XSLTC \u6269\u5c55\u540d\u201c{0}\u201d"},
+
+
+        /*
+         * Note to translators:  This error message is produced if the translet
+         * class was compiled using a newer version of XSLTC and deployed for
+         * execution with an older version of XSLTC.  The substitution text is
+         * the name of the translet class.
+         */
+        {BasisLibrary.UNKNOWN_TRANSLET_VERSION_ERR,
+        "\u521b\u5efa\u6307\u5b9a\u7684 translet\u201c{0}\u201d\u65f6\uff0c\u4f7f\u7528\u7684 XSLTC \u7248\u672c\u6bd4\u6b63\u5728\u4f7f\u7528\u7684 XSLTC \u8fd0\u884c\u65f6\u7248\u672c\u66f4\u65b0\u3002\u60a8\u5fc5\u987b\u91cd\u65b0\u7f16\u8bd1\u6837\u5f0f\u8868\u6216\u4f7f\u7528\u66f4\u65b0\u7684 XSLTC \u7248\u672c\u6765\u8fd0\u884c\u6b64 translet\u3002"},
+
+        /*
+         * Note to translators:  An attribute whose effective value is required
+         * to be a "QName" had a value that was incorrect.
+         * 'QName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {BasisLibrary.INVALID_QNAME_ERR,
+        "\u503c\u5fc5\u987b\u4e3a QName \u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},
+
+
+        /*
+         * Note to translators:  An attribute whose effective value is required
+         * to be a "NCName" had a value that was incorrect.
+         * 'NCName' is an XML syntactic term that must not be translated.  The
+         * substitution text contains the actual value of the attribute.
+         */
+        {BasisLibrary.INVALID_NCNAME_ERR,
+        "\u503c\u5fc5\u987b\u4e3a NCName \u7684\u5c5e\u6027\u5177\u6709\u503c\u201c{0}\u201d"},
+
+        {BasisLibrary.UNALLOWED_EXTENSION_FUNCTION_ERR,
+        "\u5f53\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u6269\u5c55\u51fd\u6570\u201c{0}\u201d\u3002"},
+
+        {BasisLibrary.UNALLOWED_EXTENSION_ELEMENT_ERR,
+        "\u5f53\u5b89\u5168\u5904\u7406\u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u6269\u5c55\u5143\u7d20\u201c{0}\u201d\u3002"},
+    };
+    }
+
+}
diff --git a/src/org/apache/xalan/xsltc/runtime/InternalRuntimeError.java b/src/org/apache/xalan/xsltc/runtime/InternalRuntimeError.java
old mode 100755
new mode 100644
diff --git a/src/org/apache/xml/res/XMLErrorResources_sl.java b/src/org/apache/xml/res/XMLErrorResources_sl.java
old mode 100755
new mode 100644
index c79e716..fb1ba12
--- a/src/org/apache/xml/res/XMLErrorResources_sl.java
+++ b/src/org/apache/xml/res/XMLErrorResources_sl.java
@@ -1,431 +1,431 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: XMLErrorResources_sl.java,v 1.9 2004/12/16 19:29:01 minchau Exp $

- */

-

-package org.apache.xml.res;

-

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * Set up error messages.

- * We build a two dimensional array of message keys and

- * message strings. In order to add a new message here,

- * you need to first add a String constant. And you need

- * to enter key, value pair as part of the contents

- * array. You also need to update MAX_CODE for error strings

- * and MAX_WARNING for warnings ( Needed for only information

- * purpose )

- */

-public class XMLErrorResources_sl extends ListResourceBundle

-{

-

-/*

- * This file contains error and warning messages related to Xalan Error

- * Handling.

- *

- *  General notes to translators:

- *

- *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of

- *     components.

- *     XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *     XSLTC is an acronym for XSLT Compiler.

- *

- *  2) A stylesheet is a description of how to transform an input XML document

- *     into a resultant XML document (or HTML document or text).  The

- *     stylesheet itself is described in the form of an XML document.

- *

- *  3) A template is a component of a stylesheet that is used to match a

- *     particular portion of an input document and specifies the form of the

- *     corresponding portion of the output document.

- *

- *  4) An element is a mark-up tag in an XML document; an attribute is a

- *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *     "elem" is an element name, "attr" and "attr2" are attribute names with

- *     the values "val" and "val2", respectively.

- *

- *  5) A namespace declaration is a special attribute that is used to associate

- *     a prefix with a URI (the namespace).  The meanings of element names and

- *     attribute names that use that prefix are defined with respect to that

- *     namespace.

- *

- *  6) "Translet" is an invented term that describes the class file that

- *     results from compiling an XML stylesheet into a Java class.

- *

- *  7) XPath is a specification that describes a notation for identifying

- *     nodes in a tree-structured representation of an XML document.  An

- *     instance of that notation is referred to as an XPath expression.

- *

- */

-

-  /*

-   * Message keys

-   */

-  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";

-  public static final String ER_CANNOT_OVERWRITE_CAUSE = "ER_CANNOT_OVERWRITE_CAUSE";

-  public static final String ER_NO_DEFAULT_IMPL = "ER_NO_DEFAULT_IMPL";

-  public static final String ER_CHUNKEDINTARRAY_NOT_SUPPORTED = "ER_CHUNKEDINTARRAY_NOT_SUPPORTED";

-  public static final String ER_OFFSET_BIGGER_THAN_SLOT = "ER_OFFSET_BIGGER_THAN_SLOT";

-  public static final String ER_COROUTINE_NOT_AVAIL = "ER_COROUTINE_NOT_AVAIL";

-  public static final String ER_COROUTINE_CO_EXIT = "ER_COROUTINE_CO_EXIT";

-  public static final String ER_COJOINROUTINESET_FAILED = "ER_COJOINROUTINESET_FAILED";

-  public static final String ER_COROUTINE_PARAM = "ER_COROUTINE_PARAM";

-  public static final String ER_PARSER_DOTERMINATE_ANSWERS = "ER_PARSER_DOTERMINATE_ANSWERS";

-  public static final String ER_NO_PARSE_CALL_WHILE_PARSING = "ER_NO_PARSE_CALL_WHILE_PARSING";

-  public static final String ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED";

-  public static final String ER_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_ITERATOR_AXIS_NOT_IMPLEMENTED";

-  public static final String ER_ITERATOR_CLONE_NOT_SUPPORTED = "ER_ITERATOR_CLONE_NOT_SUPPORTED";

-  public static final String ER_UNKNOWN_AXIS_TYPE = "ER_UNKNOWN_AXIS_TYPE";

-  public static final String ER_AXIS_NOT_SUPPORTED = "ER_AXIS_NOT_SUPPORTED";

-  public static final String ER_NO_DTMIDS_AVAIL = "ER_NO_DTMIDS_AVAIL";

-  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";

-  public static final String ER_NODE_NON_NULL = "ER_NODE_NON_NULL";

-  public static final String ER_COULD_NOT_RESOLVE_NODE = "ER_COULD_NOT_RESOLVE_NODE";

-  public static final String ER_STARTPARSE_WHILE_PARSING = "ER_STARTPARSE_WHILE_PARSING";

-  public static final String ER_STARTPARSE_NEEDS_SAXPARSER = "ER_STARTPARSE_NEEDS_SAXPARSER";

-  public static final String ER_COULD_NOT_INIT_PARSER = "ER_COULD_NOT_INIT_PARSER";

-  public static final String ER_EXCEPTION_CREATING_POOL = "ER_EXCEPTION_CREATING_POOL";

-  public static final String ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE = "ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE";

-  public static final String ER_SCHEME_REQUIRED = "ER_SCHEME_REQUIRED";

-  public static final String ER_NO_SCHEME_IN_URI = "ER_NO_SCHEME_IN_URI";

-  public static final String ER_NO_SCHEME_INURI = "ER_NO_SCHEME_INURI";

-  public static final String ER_PATH_INVALID_CHAR = "ER_PATH_INVALID_CHAR";

-  public static final String ER_SCHEME_FROM_NULL_STRING = "ER_SCHEME_FROM_NULL_STRING";

-  public static final String ER_SCHEME_NOT_CONFORMANT = "ER_SCHEME_NOT_CONFORMANT";

-  public static final String ER_HOST_ADDRESS_NOT_WELLFORMED = "ER_HOST_ADDRESS_NOT_WELLFORMED";

-  public static final String ER_PORT_WHEN_HOST_NULL = "ER_PORT_WHEN_HOST_NULL";

-  public static final String ER_INVALID_PORT = "ER_INVALID_PORT";

-  public static final String ER_FRAG_FOR_GENERIC_URI ="ER_FRAG_FOR_GENERIC_URI";

-  public static final String ER_FRAG_WHEN_PATH_NULL = "ER_FRAG_WHEN_PATH_NULL";

-  public static final String ER_FRAG_INVALID_CHAR = "ER_FRAG_INVALID_CHAR";

-  public static final String ER_PARSER_IN_USE = "ER_PARSER_IN_USE";

-  public static final String ER_CANNOT_CHANGE_WHILE_PARSING = "ER_CANNOT_CHANGE_WHILE_PARSING";

-  public static final String ER_SELF_CAUSATION_NOT_PERMITTED = "ER_SELF_CAUSATION_NOT_PERMITTED";

-  public static final String ER_NO_USERINFO_IF_NO_HOST = "ER_NO_USERINFO_IF_NO_HOST";

-  public static final String ER_NO_PORT_IF_NO_HOST = "ER_NO_PORT_IF_NO_HOST";

-  public static final String ER_NO_QUERY_STRING_IN_PATH = "ER_NO_QUERY_STRING_IN_PATH";

-  public static final String ER_NO_FRAGMENT_STRING_IN_PATH = "ER_NO_FRAGMENT_STRING_IN_PATH";

-  public static final String ER_CANNOT_INIT_URI_EMPTY_PARMS = "ER_CANNOT_INIT_URI_EMPTY_PARMS";

-  public static final String ER_METHOD_NOT_SUPPORTED ="ER_METHOD_NOT_SUPPORTED";

-  public static final String ER_INCRSAXSRCFILTER_NOT_RESTARTABLE = "ER_INCRSAXSRCFILTER_NOT_RESTARTABLE";

-  public static final String ER_XMLRDR_NOT_BEFORE_STARTPARSE = "ER_XMLRDR_NOT_BEFORE_STARTPARSE";

-  public static final String ER_AXIS_TRAVERSER_NOT_SUPPORTED = "ER_AXIS_TRAVERSER_NOT_SUPPORTED";

-  public static final String ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER = "ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER";

-  public static final String ER_SYSTEMID_UNKNOWN = "ER_SYSTEMID_UNKNOWN";

-  public static final String ER_LOCATION_UNKNOWN = "ER_LOCATION_UNKNOWN";

-  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";

-  public static final String ER_CREATEDOCUMENT_NOT_SUPPORTED = "ER_CREATEDOCUMENT_NOT_SUPPORTED";

-  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT";

-  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT";

-  public static final String ER_CANT_OUTPUT_TEXT_BEFORE_DOC = "ER_CANT_OUTPUT_TEXT_BEFORE_DOC";

-  public static final String ER_CANT_HAVE_MORE_THAN_ONE_ROOT = "ER_CANT_HAVE_MORE_THAN_ONE_ROOT";

-  public static final String ER_ARG_LOCALNAME_NULL = "ER_ARG_LOCALNAME_NULL";

-  public static final String ER_ARG_LOCALNAME_INVALID = "ER_ARG_LOCALNAME_INVALID";

-  public static final String ER_ARG_PREFIX_INVALID = "ER_ARG_PREFIX_INVALID";

-  public static final String ER_NAME_CANT_START_WITH_COLON = "ER_NAME_CANT_START_WITH_COLON";

-

-  /*

-   * Now fill in the message text.

-   * Then fill in the message text for that message code in the

-   * array. Use the new error code as the index into the array.

-   */

-

-  // Error messages...

-

-  /**

-   * Get the lookup table for error messages

-   *

-   * @return The association list.

-   */

-  public Object[][] getContents()

-  {

-    return new Object[][] {

-

-  /** Error message ID that has a null message, but takes in a single object.    */

-    {"ER0000" , "{0}" },

-

-    { ER_FUNCTION_NOT_SUPPORTED,

-      "Funkcija ni podprta!"},

-

-    { ER_CANNOT_OVERWRITE_CAUSE,

-      "Vzroka ni mogo\u010de prepisati"},

-

-    { ER_NO_DEFAULT_IMPL,

-      "Privzete implementacije ni mogo\u010de najti "},

-

-    { ER_CHUNKEDINTARRAY_NOT_SUPPORTED,

-      "ChunkedIntArray({0}) trenutno ni podprt"},

-

-    { ER_OFFSET_BIGGER_THAN_SLOT,

-      "Odmik ve\u010dji od re\u017ee"},

-

-    { ER_COROUTINE_NOT_AVAIL,

-      "Sorutina ni na voljo, id={0}"},

-

-    { ER_COROUTINE_CO_EXIT,

-      "CoroutineManager je prejel zahtevo co_exit()"},

-

-    { ER_COJOINROUTINESET_FAILED,

-      "co_joinCoroutineSet() je spodletela"},

-

-    { ER_COROUTINE_PARAM,

-      "Napaka parametra sorutine ({0})"},

-

-    { ER_PARSER_DOTERMINATE_ANSWERS,

-      "\nNEPRI\u010cAKOVANO: Odgovor raz\u010dlenjevalnika doTerminate je {0}"},

-

-    { ER_NO_PARSE_CALL_WHILE_PARSING,

-      "med raz\u010dlenjevanjem klic raz\u010dlenitve ni mo\u017een"},

-

-    { ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED,

-      "Napaka: dolo\u010den iterator za os {0} ni implementiran"},

-

-    { ER_ITERATOR_AXIS_NOT_IMPLEMENTED,

-      "Napaka: iterator za os {0} ni implementiran "},

-

-    { ER_ITERATOR_CLONE_NOT_SUPPORTED,

-      "Klon iteratorja ni podprt"},

-

-    { ER_UNKNOWN_AXIS_TYPE,

-      "Neznan pre\u010dni tip osi: {0}"},

-

-    { ER_AXIS_NOT_SUPPORTED,

-      "Pre\u010dnik osi ni podprt: {0}"},

-

-    { ER_NO_DTMIDS_AVAIL,

-      "Na voljo ni ve\u010d DTM ID-jev"},

-

-    { ER_NOT_SUPPORTED,

-      "Ni podprto: {0}"},

-

-    { ER_NODE_NON_NULL,

-      "Vozli\u0161\u010de ne sme biti NULL za getDTMHandleFromNode"},

-

-    { ER_COULD_NOT_RESOLVE_NODE,

-      "Ne morem razre\u0161iti vozli\u0161\u010da v obravnavo"},

-

-    { ER_STARTPARSE_WHILE_PARSING,

-       "Med raz\u010dlenjevanjem klic startParse ni mogo\u010d"},

-

-    { ER_STARTPARSE_NEEDS_SAXPARSER,

-       "startParse potrebuje ne-NULL SAXParser"},

-

-    { ER_COULD_NOT_INIT_PARSER,

-       "parserja ni mogo\u010de inicializirati z"},

-

-    { ER_EXCEPTION_CREATING_POOL,

-       "izjema pri ustvarjanju novega primerka za zalogo"},

-

-    { ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,

-       "Pot vsebuje neveljavno zaporedje za izhod"},

-

-    { ER_SCHEME_REQUIRED,

-       "Zahtevana je shema!"},

-

-    { ER_NO_SCHEME_IN_URI,

-       "Ne najdem sheme v URI: {0}"},

-

-    { ER_NO_SCHEME_INURI,

-       "Ne najdem sheme v URI"},

-

-    { ER_PATH_INVALID_CHAR,

-       "Pot vsebuje neveljaven znak: {0}"},

-

-    { ER_SCHEME_FROM_NULL_STRING,

-       "Ne morem nastaviti sheme iz niza NULL"},

-

-    { ER_SCHEME_NOT_CONFORMANT,

-       "Shema ni skladna."},

-

-    { ER_HOST_ADDRESS_NOT_WELLFORMED,

-       "Naslov gostitelja ni pravilno oblikovan"},

-

-    { ER_PORT_WHEN_HOST_NULL,

-       "Ko je gostitelj NULL, nastavitev vrat ni mogo\u010da"},

-

-    { ER_INVALID_PORT,

-       "Neveljavna \u0161tevilka vrat"},

-

-    { ER_FRAG_FOR_GENERIC_URI,

-       "Fragment je lahko nastavljen samo za splo\u0161ni URI"},

-

-    { ER_FRAG_WHEN_PATH_NULL,

-       "Ko je pot NULL, nastavitev fragmenta ni mogo\u010da"},

-

-    { ER_FRAG_INVALID_CHAR,

-       "Fragment vsebuje neveljaven znak"},

-

-    { ER_PARSER_IN_USE,

-      "Raz\u010dlenjevalnik je \u017ee v uporabi"},

-

-    { ER_CANNOT_CHANGE_WHILE_PARSING,

-      "Med raz\u010dlenjevanjem ni mogo\u010de spremeniti {0} {1}"},

-

-    { ER_SELF_CAUSATION_NOT_PERMITTED,

-      "Samopovzro\u010ditev ni dovoljena"},

-

-    { ER_NO_USERINFO_IF_NO_HOST,

-      "Informacije o uporabniku ne morejo biti navedene, \u010de ni naveden gostitelj"},

-

-    { ER_NO_PORT_IF_NO_HOST,

-      "Vrata ne morejo biti navedena, \u010de ni naveden gostitelj"},

-

-    { ER_NO_QUERY_STRING_IN_PATH,

-      "Poizvedbeni niz ne more biti naveden v nizu poti in poizvedbenem nizu"},

-

-    { ER_NO_FRAGMENT_STRING_IN_PATH,

-      "Fragment ne more biti hkrati naveden v poti in v fragmentu"},

-

-    { ER_CANNOT_INIT_URI_EMPTY_PARMS,

-      "Ne morem inicializirat URI-ja s praznimi parametri"},

-

-    { ER_METHOD_NOT_SUPPORTED,

-      "Metoda ni ve\u010d podprta "},

-

-    { ER_INCRSAXSRCFILTER_NOT_RESTARTABLE,

-      "IncrementalSAXSource_Filter v tem trenutku ni mogo\u010de ponovno zagnati"},

-

-    { ER_XMLRDR_NOT_BEFORE_STARTPARSE,

-      "XMLReader ne pred zahtevo za startParse"},

-

-    { ER_AXIS_TRAVERSER_NOT_SUPPORTED,

-      "Pre\u010dnik osi ni podprt: {0}"},

-

-    { ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER,

-      "ListingErrorHandler ustvarjen s PrintWriter NULL!"},

-

-    { ER_SYSTEMID_UNKNOWN,

-      "Neznan sistemski ID"},

-

-    { ER_LOCATION_UNKNOWN,

-      "Mesto napake neznano"},

-

-    { ER_PREFIX_MUST_RESOLVE,

-      "Predpona se mora razre\u0161iti v imenski prostor: {0}"},

-

-    { ER_CREATEDOCUMENT_NOT_SUPPORTED,

-      "createDocument() ni podprt v XPathContext!"},

-

-    { ER_CHILD_HAS_NO_OWNER_DOCUMENT,

-      "Podrejeni predmet atributa nima lastni\u0161kega dokumenta!"},

-

-    { ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT,

-      "Podrejeni predmet atributa nima elementa lastni\u0161kega dokumenta!"},

-

-    { ER_CANT_OUTPUT_TEXT_BEFORE_DOC,

-      "Opozorilo: besedila ne morem prikazati pred elementom dokumenta!  Ignoriram..."},

-

-    { ER_CANT_HAVE_MORE_THAN_ONE_ROOT,

-      "Na DOM-u ne more biti ve\u010d kot en koren!"},

-

-    { ER_ARG_LOCALNAME_NULL,

-       "Argument 'lokalno ime' je NULL"},

-

-    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName

-    // The localname is the portion after the optional colon; the message indicates

-    // that there is a problem with that part of the QNAME.

-    { ER_ARG_LOCALNAME_INVALID,

-       "Lokalno ime v QNAME bi moralo biti veljavno NCIme"},

-

-    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName

-    // The prefix is the portion before the optional colon; the message indicates

-    // that there is a problem with that part of the QNAME.

-    { ER_ARG_PREFIX_INVALID,

-       "Predpona v QNAME bi morala biti valjavno NCIme"},

-

-    { ER_NAME_CANT_START_WITH_COLON,

-      "Ime se ne more za\u010deti z dvopi\u010djem"},

-

-    { "BAD_CODE", "Parameter za ustvariSporo\u010dilo presega meje"},

-    { "FORMAT_FAILED", "Med klicem messageFormat naletel na izjemo"},

-    { "line", "Vrstica #"},

-    { "column","Stolpec #"}

-

-

-  };

-  }

-

-  /**

-   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior

-   *   of ResourceBundle.getBundle().

-   *

-   *   @param className the name of the class that implements the resource bundle.

-   *   @return the ResourceBundle

-   *   @throws MissingResourceException

-   */

-  public static final XMLErrorResources loadResourceBundle(String className)

-          throws MissingResourceException

-  {

-

-    Locale locale = Locale.getDefault();

-    String suffix = getResourceSuffix(locale);

-

-    try

-    {

-

-      // first try with the given locale

-      return (XMLErrorResources) ResourceBundle.getBundle(className

-              + suffix, locale);

-    }

-    catch (MissingResourceException e)

-    {

-      try  // try to fall back to en_US if we can't load

-      {

-

-        // Since we can't find the localized property file,

-        // fall back to en_US.

-        return (XMLErrorResources) ResourceBundle.getBundle(className,

-                new Locale("sl", "SL"));

-      }

-      catch (MissingResourceException e2)

-      {

-

-        // Now we are really in trouble.

-        // very bad, definitely very bad...not going to get very far

-        throw new MissingResourceException(

-          "Could not load any resource bundles.", className, "");

-      }

-    }

-  }

-

-  /**

-   * Return the resource file suffic for the indicated locale

-   * For most locales, this will be based the language code.  However

-   * for Chinese, we do distinguish between Taiwan and PRC

-   *

-   * @param locale the locale

-   * @return an String suffix which canbe appended to a resource name

-   */

-  private static final String getResourceSuffix(Locale locale)

-  {

-

-    String suffix = "_" + locale.getLanguage();

-    String country = locale.getCountry();

-

-    if (country.equals("TW"))

-      suffix += "_" + country;

-

-    return suffix;

-  }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.res;
+
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Set up error messages.
+ * We build a two dimensional array of message keys and
+ * message strings. In order to add a new message here,
+ * you need to first add a String constant. And you need
+ * to enter key, value pair as part of the contents
+ * array. You also need to update MAX_CODE for error strings
+ * and MAX_WARNING for warnings ( Needed for only information
+ * purpose )
+ */
+public class XMLErrorResources_sl extends ListResourceBundle
+{
+
+/*
+ * This file contains error and warning messages related to Xalan Error
+ * Handling.
+ *
+ *  General notes to translators:
+ *
+ *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
+ *     components.
+ *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *     XSLTC is an acronym for XSLT Compiler.
+ *
+ *  2) A stylesheet is a description of how to transform an input XML document
+ *     into a resultant XML document (or HTML document or text).  The
+ *     stylesheet itself is described in the form of an XML document.
+ *
+ *  3) A template is a component of a stylesheet that is used to match a
+ *     particular portion of an input document and specifies the form of the
+ *     corresponding portion of the output document.
+ *
+ *  4) An element is a mark-up tag in an XML document; an attribute is a
+ *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *     "elem" is an element name, "attr" and "attr2" are attribute names with
+ *     the values "val" and "val2", respectively.
+ *
+ *  5) A namespace declaration is a special attribute that is used to associate
+ *     a prefix with a URI (the namespace).  The meanings of element names and
+ *     attribute names that use that prefix are defined with respect to that
+ *     namespace.
+ *
+ *  6) "Translet" is an invented term that describes the class file that
+ *     results from compiling an XML stylesheet into a Java class.
+ *
+ *  7) XPath is a specification that describes a notation for identifying
+ *     nodes in a tree-structured representation of an XML document.  An
+ *     instance of that notation is referred to as an XPath expression.
+ *
+ */
+
+  /*
+   * Message keys
+   */
+  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";
+  public static final String ER_CANNOT_OVERWRITE_CAUSE = "ER_CANNOT_OVERWRITE_CAUSE";
+  public static final String ER_NO_DEFAULT_IMPL = "ER_NO_DEFAULT_IMPL";
+  public static final String ER_CHUNKEDINTARRAY_NOT_SUPPORTED = "ER_CHUNKEDINTARRAY_NOT_SUPPORTED";
+  public static final String ER_OFFSET_BIGGER_THAN_SLOT = "ER_OFFSET_BIGGER_THAN_SLOT";
+  public static final String ER_COROUTINE_NOT_AVAIL = "ER_COROUTINE_NOT_AVAIL";
+  public static final String ER_COROUTINE_CO_EXIT = "ER_COROUTINE_CO_EXIT";
+  public static final String ER_COJOINROUTINESET_FAILED = "ER_COJOINROUTINESET_FAILED";
+  public static final String ER_COROUTINE_PARAM = "ER_COROUTINE_PARAM";
+  public static final String ER_PARSER_DOTERMINATE_ANSWERS = "ER_PARSER_DOTERMINATE_ANSWERS";
+  public static final String ER_NO_PARSE_CALL_WHILE_PARSING = "ER_NO_PARSE_CALL_WHILE_PARSING";
+  public static final String ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED";
+  public static final String ER_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_ITERATOR_AXIS_NOT_IMPLEMENTED";
+  public static final String ER_ITERATOR_CLONE_NOT_SUPPORTED = "ER_ITERATOR_CLONE_NOT_SUPPORTED";
+  public static final String ER_UNKNOWN_AXIS_TYPE = "ER_UNKNOWN_AXIS_TYPE";
+  public static final String ER_AXIS_NOT_SUPPORTED = "ER_AXIS_NOT_SUPPORTED";
+  public static final String ER_NO_DTMIDS_AVAIL = "ER_NO_DTMIDS_AVAIL";
+  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";
+  public static final String ER_NODE_NON_NULL = "ER_NODE_NON_NULL";
+  public static final String ER_COULD_NOT_RESOLVE_NODE = "ER_COULD_NOT_RESOLVE_NODE";
+  public static final String ER_STARTPARSE_WHILE_PARSING = "ER_STARTPARSE_WHILE_PARSING";
+  public static final String ER_STARTPARSE_NEEDS_SAXPARSER = "ER_STARTPARSE_NEEDS_SAXPARSER";
+  public static final String ER_COULD_NOT_INIT_PARSER = "ER_COULD_NOT_INIT_PARSER";
+  public static final String ER_EXCEPTION_CREATING_POOL = "ER_EXCEPTION_CREATING_POOL";
+  public static final String ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE = "ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE";
+  public static final String ER_SCHEME_REQUIRED = "ER_SCHEME_REQUIRED";
+  public static final String ER_NO_SCHEME_IN_URI = "ER_NO_SCHEME_IN_URI";
+  public static final String ER_NO_SCHEME_INURI = "ER_NO_SCHEME_INURI";
+  public static final String ER_PATH_INVALID_CHAR = "ER_PATH_INVALID_CHAR";
+  public static final String ER_SCHEME_FROM_NULL_STRING = "ER_SCHEME_FROM_NULL_STRING";
+  public static final String ER_SCHEME_NOT_CONFORMANT = "ER_SCHEME_NOT_CONFORMANT";
+  public static final String ER_HOST_ADDRESS_NOT_WELLFORMED = "ER_HOST_ADDRESS_NOT_WELLFORMED";
+  public static final String ER_PORT_WHEN_HOST_NULL = "ER_PORT_WHEN_HOST_NULL";
+  public static final String ER_INVALID_PORT = "ER_INVALID_PORT";
+  public static final String ER_FRAG_FOR_GENERIC_URI ="ER_FRAG_FOR_GENERIC_URI";
+  public static final String ER_FRAG_WHEN_PATH_NULL = "ER_FRAG_WHEN_PATH_NULL";
+  public static final String ER_FRAG_INVALID_CHAR = "ER_FRAG_INVALID_CHAR";
+  public static final String ER_PARSER_IN_USE = "ER_PARSER_IN_USE";
+  public static final String ER_CANNOT_CHANGE_WHILE_PARSING = "ER_CANNOT_CHANGE_WHILE_PARSING";
+  public static final String ER_SELF_CAUSATION_NOT_PERMITTED = "ER_SELF_CAUSATION_NOT_PERMITTED";
+  public static final String ER_NO_USERINFO_IF_NO_HOST = "ER_NO_USERINFO_IF_NO_HOST";
+  public static final String ER_NO_PORT_IF_NO_HOST = "ER_NO_PORT_IF_NO_HOST";
+  public static final String ER_NO_QUERY_STRING_IN_PATH = "ER_NO_QUERY_STRING_IN_PATH";
+  public static final String ER_NO_FRAGMENT_STRING_IN_PATH = "ER_NO_FRAGMENT_STRING_IN_PATH";
+  public static final String ER_CANNOT_INIT_URI_EMPTY_PARMS = "ER_CANNOT_INIT_URI_EMPTY_PARMS";
+  public static final String ER_METHOD_NOT_SUPPORTED ="ER_METHOD_NOT_SUPPORTED";
+  public static final String ER_INCRSAXSRCFILTER_NOT_RESTARTABLE = "ER_INCRSAXSRCFILTER_NOT_RESTARTABLE";
+  public static final String ER_XMLRDR_NOT_BEFORE_STARTPARSE = "ER_XMLRDR_NOT_BEFORE_STARTPARSE";
+  public static final String ER_AXIS_TRAVERSER_NOT_SUPPORTED = "ER_AXIS_TRAVERSER_NOT_SUPPORTED";
+  public static final String ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER = "ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER";
+  public static final String ER_SYSTEMID_UNKNOWN = "ER_SYSTEMID_UNKNOWN";
+  public static final String ER_LOCATION_UNKNOWN = "ER_LOCATION_UNKNOWN";
+  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
+  public static final String ER_CREATEDOCUMENT_NOT_SUPPORTED = "ER_CREATEDOCUMENT_NOT_SUPPORTED";
+  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT";
+  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT";
+  public static final String ER_CANT_OUTPUT_TEXT_BEFORE_DOC = "ER_CANT_OUTPUT_TEXT_BEFORE_DOC";
+  public static final String ER_CANT_HAVE_MORE_THAN_ONE_ROOT = "ER_CANT_HAVE_MORE_THAN_ONE_ROOT";
+  public static final String ER_ARG_LOCALNAME_NULL = "ER_ARG_LOCALNAME_NULL";
+  public static final String ER_ARG_LOCALNAME_INVALID = "ER_ARG_LOCALNAME_INVALID";
+  public static final String ER_ARG_PREFIX_INVALID = "ER_ARG_PREFIX_INVALID";
+  public static final String ER_NAME_CANT_START_WITH_COLON = "ER_NAME_CANT_START_WITH_COLON";
+
+  /*
+   * Now fill in the message text.
+   * Then fill in the message text for that message code in the
+   * array. Use the new error code as the index into the array.
+   */
+
+  // Error messages...
+
+  /**
+   * Get the lookup table for error messages
+   *
+   * @return The association list.
+   */
+  public Object[][] getContents()
+  {
+    return new Object[][] {
+
+  /** Error message ID that has a null message, but takes in a single object.    */
+    {"ER0000" , "{0}" },
+
+    { ER_FUNCTION_NOT_SUPPORTED,
+      "Funkcija ni podprta!"},
+
+    { ER_CANNOT_OVERWRITE_CAUSE,
+      "Vzroka ni mogo\u010de prepisati"},
+
+    { ER_NO_DEFAULT_IMPL,
+      "Privzete implementacije ni mogo\u010de najti "},
+
+    { ER_CHUNKEDINTARRAY_NOT_SUPPORTED,
+      "ChunkedIntArray({0}) trenutno ni podprt"},
+
+    { ER_OFFSET_BIGGER_THAN_SLOT,
+      "Odmik ve\u010dji od re\u017ee"},
+
+    { ER_COROUTINE_NOT_AVAIL,
+      "Sorutina ni na voljo, id={0}"},
+
+    { ER_COROUTINE_CO_EXIT,
+      "CoroutineManager je prejel zahtevo co_exit()"},
+
+    { ER_COJOINROUTINESET_FAILED,
+      "co_joinCoroutineSet() je spodletela"},
+
+    { ER_COROUTINE_PARAM,
+      "Napaka parametra sorutine ({0})"},
+
+    { ER_PARSER_DOTERMINATE_ANSWERS,
+      "\nNEPRI\u010cAKOVANO: Odgovor raz\u010dlenjevalnika doTerminate je {0}"},
+
+    { ER_NO_PARSE_CALL_WHILE_PARSING,
+      "med raz\u010dlenjevanjem klic raz\u010dlenitve ni mo\u017een"},
+
+    { ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED,
+      "Napaka: dolo\u010den iterator za os {0} ni implementiran"},
+
+    { ER_ITERATOR_AXIS_NOT_IMPLEMENTED,
+      "Napaka: iterator za os {0} ni implementiran "},
+
+    { ER_ITERATOR_CLONE_NOT_SUPPORTED,
+      "Klon iteratorja ni podprt"},
+
+    { ER_UNKNOWN_AXIS_TYPE,
+      "Neznan pre\u010dni tip osi: {0}"},
+
+    { ER_AXIS_NOT_SUPPORTED,
+      "Pre\u010dnik osi ni podprt: {0}"},
+
+    { ER_NO_DTMIDS_AVAIL,
+      "Na voljo ni ve\u010d DTM ID-jev"},
+
+    { ER_NOT_SUPPORTED,
+      "Ni podprto: {0}"},
+
+    { ER_NODE_NON_NULL,
+      "Vozli\u0161\u010de ne sme biti NULL za getDTMHandleFromNode"},
+
+    { ER_COULD_NOT_RESOLVE_NODE,
+      "Ne morem razre\u0161iti vozli\u0161\u010da v obravnavo"},
+
+    { ER_STARTPARSE_WHILE_PARSING,
+       "Med raz\u010dlenjevanjem klic startParse ni mogo\u010d"},
+
+    { ER_STARTPARSE_NEEDS_SAXPARSER,
+       "startParse potrebuje ne-NULL SAXParser"},
+
+    { ER_COULD_NOT_INIT_PARSER,
+       "parserja ni mogo\u010de inicializirati z"},
+
+    { ER_EXCEPTION_CREATING_POOL,
+       "izjema pri ustvarjanju novega primerka za zalogo"},
+
+    { ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,
+       "Pot vsebuje neveljavno zaporedje za izhod"},
+
+    { ER_SCHEME_REQUIRED,
+       "Zahtevana je shema!"},
+
+    { ER_NO_SCHEME_IN_URI,
+       "Ne najdem sheme v URI: {0}"},
+
+    { ER_NO_SCHEME_INURI,
+       "Ne najdem sheme v URI"},
+
+    { ER_PATH_INVALID_CHAR,
+       "Pot vsebuje neveljaven znak: {0}"},
+
+    { ER_SCHEME_FROM_NULL_STRING,
+       "Ne morem nastaviti sheme iz niza NULL"},
+
+    { ER_SCHEME_NOT_CONFORMANT,
+       "Shema ni skladna."},
+
+    { ER_HOST_ADDRESS_NOT_WELLFORMED,
+       "Naslov gostitelja ni pravilno oblikovan"},
+
+    { ER_PORT_WHEN_HOST_NULL,
+       "Ko je gostitelj NULL, nastavitev vrat ni mogo\u010da"},
+
+    { ER_INVALID_PORT,
+       "Neveljavna \u0161tevilka vrat"},
+
+    { ER_FRAG_FOR_GENERIC_URI,
+       "Fragment je lahko nastavljen samo za splo\u0161ni URI"},
+
+    { ER_FRAG_WHEN_PATH_NULL,
+       "Ko je pot NULL, nastavitev fragmenta ni mogo\u010da"},
+
+    { ER_FRAG_INVALID_CHAR,
+       "Fragment vsebuje neveljaven znak"},
+
+    { ER_PARSER_IN_USE,
+      "Raz\u010dlenjevalnik je \u017ee v uporabi"},
+
+    { ER_CANNOT_CHANGE_WHILE_PARSING,
+      "Med raz\u010dlenjevanjem ni mogo\u010de spremeniti {0} {1}"},
+
+    { ER_SELF_CAUSATION_NOT_PERMITTED,
+      "Samopovzro\u010ditev ni dovoljena"},
+
+    { ER_NO_USERINFO_IF_NO_HOST,
+      "Informacije o uporabniku ne morejo biti navedene, \u010de ni naveden gostitelj"},
+
+    { ER_NO_PORT_IF_NO_HOST,
+      "Vrata ne morejo biti navedena, \u010de ni naveden gostitelj"},
+
+    { ER_NO_QUERY_STRING_IN_PATH,
+      "Poizvedbeni niz ne more biti naveden v nizu poti in poizvedbenem nizu"},
+
+    { ER_NO_FRAGMENT_STRING_IN_PATH,
+      "Fragment ne more biti hkrati naveden v poti in v fragmentu"},
+
+    { ER_CANNOT_INIT_URI_EMPTY_PARMS,
+      "Ne morem inicializirat URI-ja s praznimi parametri"},
+
+    { ER_METHOD_NOT_SUPPORTED,
+      "Metoda ni ve\u010d podprta "},
+
+    { ER_INCRSAXSRCFILTER_NOT_RESTARTABLE,
+      "IncrementalSAXSource_Filter v tem trenutku ni mogo\u010de ponovno zagnati"},
+
+    { ER_XMLRDR_NOT_BEFORE_STARTPARSE,
+      "XMLReader ne pred zahtevo za startParse"},
+
+    { ER_AXIS_TRAVERSER_NOT_SUPPORTED,
+      "Pre\u010dnik osi ni podprt: {0}"},
+
+    { ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER,
+      "ListingErrorHandler ustvarjen s PrintWriter NULL!"},
+
+    { ER_SYSTEMID_UNKNOWN,
+      "Neznan sistemski ID"},
+
+    { ER_LOCATION_UNKNOWN,
+      "Mesto napake neznano"},
+
+    { ER_PREFIX_MUST_RESOLVE,
+      "Predpona se mora razre\u0161iti v imenski prostor: {0}"},
+
+    { ER_CREATEDOCUMENT_NOT_SUPPORTED,
+      "createDocument() ni podprt v XPathContext!"},
+
+    { ER_CHILD_HAS_NO_OWNER_DOCUMENT,
+      "Podrejeni predmet atributa nima lastni\u0161kega dokumenta!"},
+
+    { ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT,
+      "Podrejeni predmet atributa nima elementa lastni\u0161kega dokumenta!"},
+
+    { ER_CANT_OUTPUT_TEXT_BEFORE_DOC,
+      "Opozorilo: besedila ne morem prikazati pred elementom dokumenta!  Ignoriram..."},
+
+    { ER_CANT_HAVE_MORE_THAN_ONE_ROOT,
+      "Na DOM-u ne more biti ve\u010d kot en koren!"},
+
+    { ER_ARG_LOCALNAME_NULL,
+       "Argument 'lokalno ime' je NULL"},
+
+    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName
+    // The localname is the portion after the optional colon; the message indicates
+    // that there is a problem with that part of the QNAME.
+    { ER_ARG_LOCALNAME_INVALID,
+       "Lokalno ime v QNAME bi moralo biti veljavno NCIme"},
+
+    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName
+    // The prefix is the portion before the optional colon; the message indicates
+    // that there is a problem with that part of the QNAME.
+    { ER_ARG_PREFIX_INVALID,
+       "Predpona v QNAME bi morala biti valjavno NCIme"},
+
+    { ER_NAME_CANT_START_WITH_COLON,
+      "Ime se ne more za\u010deti z dvopi\u010djem"},
+
+    { "BAD_CODE", "Parameter za ustvariSporo\u010dilo presega meje"},
+    { "FORMAT_FAILED", "Med klicem messageFormat naletel na izjemo"},
+    { "line", "Vrstica #"},
+    { "column","Stolpec #"}
+
+
+  };
+  }
+
+  /**
+   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior
+   *   of ResourceBundle.getBundle().
+   *
+   *   @param className the name of the class that implements the resource bundle.
+   *   @return the ResourceBundle
+   *   @throws MissingResourceException
+   */
+  public static final XMLErrorResources loadResourceBundle(String className)
+          throws MissingResourceException
+  {
+
+    Locale locale = Locale.getDefault();
+    String suffix = getResourceSuffix(locale);
+
+    try
+    {
+
+      // first try with the given locale
+      return (XMLErrorResources) ResourceBundle.getBundle(className
+              + suffix, locale);
+    }
+    catch (MissingResourceException e)
+    {
+      try  // try to fall back to en_US if we can't load
+      {
+
+        // Since we can't find the localized property file,
+        // fall back to en_US.
+        return (XMLErrorResources) ResourceBundle.getBundle(className,
+                new Locale("sl", "SL"));
+      }
+      catch (MissingResourceException e2)
+      {
+
+        // Now we are really in trouble.
+        // very bad, definitely very bad...not going to get very far
+        throw new MissingResourceException(
+          "Could not load any resource bundles.", className, "");
+      }
+    }
+  }
+
+  /**
+   * Return the resource file suffic for the indicated locale
+   * For most locales, this will be based the language code.  However
+   * for Chinese, we do distinguish between Taiwan and PRC
+   *
+   * @param locale the locale
+   * @return an String suffix which canbe appended to a resource name
+   */
+  private static final String getResourceSuffix(Locale locale)
+  {
+
+    String suffix = "_" + locale.getLanguage();
+    String country = locale.getCountry();
+
+    if (country.equals("TW"))
+      suffix += "_" + country;
+
+    return suffix;
+  }
+
+}
diff --git a/src/org/apache/xml/res/XMLErrorResources_zh.java b/src/org/apache/xml/res/XMLErrorResources_zh.java
old mode 100755
new mode 100644
index 8ce724e..a24012e
--- a/src/org/apache/xml/res/XMLErrorResources_zh.java
+++ b/src/org/apache/xml/res/XMLErrorResources_zh.java
@@ -1,430 +1,430 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: XMLErrorResources_zh.java 338081 2004-12-15 17:35:58Z jycli $

- */

-package org.apache.xml.res;

-

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * Set up error messages.

- * We build a two dimensional array of message keys and

- * message strings. In order to add a new message here,

- * you need to first add a String constant. And you need

- * to enter key, value pair as part of the contents

- * array. You also need to update MAX_CODE for error strings

- * and MAX_WARNING for warnings ( Needed for only information

- * purpose )

- */

-public class XMLErrorResources_zh extends ListResourceBundle

-{

-

-/*

- * This file contains error and warning messages related to Xalan Error

- * Handling.

- *

- *  General notes to translators:

- *

- *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of

- *     components.

- *     XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *     XSLTC is an acronym for XSLT Compiler.

- *

- *  2) A stylesheet is a description of how to transform an input XML document

- *     into a resultant XML document (or HTML document or text).  The

- *     stylesheet itself is described in the form of an XML document.

- *

- *  3) A template is a component of a stylesheet that is used to match a

- *     particular portion of an input document and specifies the form of the

- *     corresponding portion of the output document.

- *

- *  4) An element is a mark-up tag in an XML document; an attribute is a

- *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *     "elem" is an element name, "attr" and "attr2" are attribute names with

- *     the values "val" and "val2", respectively.

- *

- *  5) A namespace declaration is a special attribute that is used to associate

- *     a prefix with a URI (the namespace).  The meanings of element names and

- *     attribute names that use that prefix are defined with respect to that

- *     namespace.

- *

- *  6) "Translet" is an invented term that describes the class file that

- *     results from compiling an XML stylesheet into a Java class.

- *

- *  7) XPath is a specification that describes a notation for identifying

- *     nodes in a tree-structured representation of an XML document.  An

- *     instance of that notation is referred to as an XPath expression.

- *

- */

-

-  /*

-   * Message keys

-   */

-  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";

-  public static final String ER_CANNOT_OVERWRITE_CAUSE = "ER_CANNOT_OVERWRITE_CAUSE";

-  public static final String ER_NO_DEFAULT_IMPL = "ER_NO_DEFAULT_IMPL";

-  public static final String ER_CHUNKEDINTARRAY_NOT_SUPPORTED = "ER_CHUNKEDINTARRAY_NOT_SUPPORTED";

-  public static final String ER_OFFSET_BIGGER_THAN_SLOT = "ER_OFFSET_BIGGER_THAN_SLOT";

-  public static final String ER_COROUTINE_NOT_AVAIL = "ER_COROUTINE_NOT_AVAIL";

-  public static final String ER_COROUTINE_CO_EXIT = "ER_COROUTINE_CO_EXIT";

-  public static final String ER_COJOINROUTINESET_FAILED = "ER_COJOINROUTINESET_FAILED";

-  public static final String ER_COROUTINE_PARAM = "ER_COROUTINE_PARAM";

-  public static final String ER_PARSER_DOTERMINATE_ANSWERS = "ER_PARSER_DOTERMINATE_ANSWERS";

-  public static final String ER_NO_PARSE_CALL_WHILE_PARSING = "ER_NO_PARSE_CALL_WHILE_PARSING";

-  public static final String ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED";

-  public static final String ER_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_ITERATOR_AXIS_NOT_IMPLEMENTED";

-  public static final String ER_ITERATOR_CLONE_NOT_SUPPORTED = "ER_ITERATOR_CLONE_NOT_SUPPORTED";

-  public static final String ER_UNKNOWN_AXIS_TYPE = "ER_UNKNOWN_AXIS_TYPE";

-  public static final String ER_AXIS_NOT_SUPPORTED = "ER_AXIS_NOT_SUPPORTED";

-  public static final String ER_NO_DTMIDS_AVAIL = "ER_NO_DTMIDS_AVAIL";

-  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";

-  public static final String ER_NODE_NON_NULL = "ER_NODE_NON_NULL";

-  public static final String ER_COULD_NOT_RESOLVE_NODE = "ER_COULD_NOT_RESOLVE_NODE";

-  public static final String ER_STARTPARSE_WHILE_PARSING = "ER_STARTPARSE_WHILE_PARSING";

-  public static final String ER_STARTPARSE_NEEDS_SAXPARSER = "ER_STARTPARSE_NEEDS_SAXPARSER";

-  public static final String ER_COULD_NOT_INIT_PARSER = "ER_COULD_NOT_INIT_PARSER";

-  public static final String ER_EXCEPTION_CREATING_POOL = "ER_EXCEPTION_CREATING_POOL";

-  public static final String ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE = "ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE";

-  public static final String ER_SCHEME_REQUIRED = "ER_SCHEME_REQUIRED";

-  public static final String ER_NO_SCHEME_IN_URI = "ER_NO_SCHEME_IN_URI";

-  public static final String ER_NO_SCHEME_INURI = "ER_NO_SCHEME_INURI";

-  public static final String ER_PATH_INVALID_CHAR = "ER_PATH_INVALID_CHAR";

-  public static final String ER_SCHEME_FROM_NULL_STRING = "ER_SCHEME_FROM_NULL_STRING";

-  public static final String ER_SCHEME_NOT_CONFORMANT = "ER_SCHEME_NOT_CONFORMANT";

-  public static final String ER_HOST_ADDRESS_NOT_WELLFORMED = "ER_HOST_ADDRESS_NOT_WELLFORMED";

-  public static final String ER_PORT_WHEN_HOST_NULL = "ER_PORT_WHEN_HOST_NULL";

-  public static final String ER_INVALID_PORT = "ER_INVALID_PORT";

-  public static final String ER_FRAG_FOR_GENERIC_URI ="ER_FRAG_FOR_GENERIC_URI";

-  public static final String ER_FRAG_WHEN_PATH_NULL = "ER_FRAG_WHEN_PATH_NULL";

-  public static final String ER_FRAG_INVALID_CHAR = "ER_FRAG_INVALID_CHAR";

-  public static final String ER_PARSER_IN_USE = "ER_PARSER_IN_USE";

-  public static final String ER_CANNOT_CHANGE_WHILE_PARSING = "ER_CANNOT_CHANGE_WHILE_PARSING";

-  public static final String ER_SELF_CAUSATION_NOT_PERMITTED = "ER_SELF_CAUSATION_NOT_PERMITTED";

-  public static final String ER_NO_USERINFO_IF_NO_HOST = "ER_NO_USERINFO_IF_NO_HOST";

-  public static final String ER_NO_PORT_IF_NO_HOST = "ER_NO_PORT_IF_NO_HOST";

-  public static final String ER_NO_QUERY_STRING_IN_PATH = "ER_NO_QUERY_STRING_IN_PATH";

-  public static final String ER_NO_FRAGMENT_STRING_IN_PATH = "ER_NO_FRAGMENT_STRING_IN_PATH";

-  public static final String ER_CANNOT_INIT_URI_EMPTY_PARMS = "ER_CANNOT_INIT_URI_EMPTY_PARMS";

-  public static final String ER_METHOD_NOT_SUPPORTED ="ER_METHOD_NOT_SUPPORTED";

-  public static final String ER_INCRSAXSRCFILTER_NOT_RESTARTABLE = "ER_INCRSAXSRCFILTER_NOT_RESTARTABLE";

-  public static final String ER_XMLRDR_NOT_BEFORE_STARTPARSE = "ER_XMLRDR_NOT_BEFORE_STARTPARSE";

-  public static final String ER_AXIS_TRAVERSER_NOT_SUPPORTED = "ER_AXIS_TRAVERSER_NOT_SUPPORTED";

-  public static final String ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER = "ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER";

-  public static final String ER_SYSTEMID_UNKNOWN = "ER_SYSTEMID_UNKNOWN";

-  public static final String ER_LOCATION_UNKNOWN = "ER_LOCATION_UNKNOWN";

-  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";

-  public static final String ER_CREATEDOCUMENT_NOT_SUPPORTED = "ER_CREATEDOCUMENT_NOT_SUPPORTED";

-  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT";

-  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT";

-  public static final String ER_CANT_OUTPUT_TEXT_BEFORE_DOC = "ER_CANT_OUTPUT_TEXT_BEFORE_DOC";

-  public static final String ER_CANT_HAVE_MORE_THAN_ONE_ROOT = "ER_CANT_HAVE_MORE_THAN_ONE_ROOT";

-  public static final String ER_ARG_LOCALNAME_NULL = "ER_ARG_LOCALNAME_NULL";

-  public static final String ER_ARG_LOCALNAME_INVALID = "ER_ARG_LOCALNAME_INVALID";

-  public static final String ER_ARG_PREFIX_INVALID = "ER_ARG_PREFIX_INVALID";

-  public static final String ER_NAME_CANT_START_WITH_COLON = "ER_NAME_CANT_START_WITH_COLON";

-

-  /*

-   * Now fill in the message text.

-   * Then fill in the message text for that message code in the

-   * array. Use the new error code as the index into the array.

-   */

-

-  // Error messages...

-

-  /**

-   * Get the lookup table for error messages

-   *

-   * @return The association list.

-   */

-  public Object[][] getContents()

-  {

-    return new Object[][] {

-

-  /** Error message ID that has a null message, but takes in a single object.    */

-    {"ER0000" , "{0}" },

-

-    { ER_FUNCTION_NOT_SUPPORTED,

-      "\u51fd\u6570\u4e0d\u53d7\u652f\u6301\uff01"},

-

-    { ER_CANNOT_OVERWRITE_CAUSE,

-      "\u65e0\u6cd5\u8986\u76d6\u539f\u56e0"},

-

-    { ER_NO_DEFAULT_IMPL,

-      "\u627e\u4e0d\u5230\u7f3a\u7701\u5b9e\u73b0"},

-

-    { ER_CHUNKEDINTARRAY_NOT_SUPPORTED,

-      "\u5f53\u524d\u4e0d\u652f\u6301 ChunkedIntArray({0})"},

-

-    { ER_OFFSET_BIGGER_THAN_SLOT,

-      "\u504f\u79fb\u5927\u4e8e\u69fd"},

-

-    { ER_COROUTINE_NOT_AVAIL,

-      "\u534f\u540c\u7a0b\u5e8f\u4e0d\u53ef\u7528\uff0cid={0}"},

-

-    { ER_COROUTINE_CO_EXIT,

-      "CoroutineManager \u63a5\u6536\u5230 co_exit() \u8bf7\u6c42"},

-

-    { ER_COJOINROUTINESET_FAILED,

-      "co_joinCoroutineSet() \u5931\u8d25"},

-

-    { ER_COROUTINE_PARAM,

-      "\u534f\u540c\u7a0b\u5e8f\u53c2\u6570\u9519\u8bef\uff08{0}\uff09"},

-

-    { ER_PARSER_DOTERMINATE_ANSWERS,

-      "\n\u610f\u5916\uff1a\u89e3\u6790\u5668 doTerminate \u5e94\u7b54 {0}"},

-

-    { ER_NO_PARSE_CALL_WHILE_PARSING,

-      "\u89e3\u6790\u65f6\u53ef\u80fd\u6ca1\u6709\u8c03\u7528 parse"},

-

-    { ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED,

-      "\u9519\u8bef\uff1a\u6ca1\u6709\u5b9e\u73b0\u4e3a\u8f74 {0} \u8f93\u5165\u7684\u8fed\u4ee3\u5668"},

-

-    { ER_ITERATOR_AXIS_NOT_IMPLEMENTED,

-      "\u9519\u8bef\uff1a\u6ca1\u6709\u5b9e\u73b0\u8f74 {0} \u7684\u8fed\u4ee3\u5668"},

-

-    { ER_ITERATOR_CLONE_NOT_SUPPORTED,

-      "\u4e0d\u652f\u6301\u8fed\u4ee3\u5668\u514b\u9686"},

-

-    { ER_UNKNOWN_AXIS_TYPE,

-      "\u672a\u77e5\u7684\u8f74\u904d\u5386\u7c7b\u578b\uff1a{0}"},

-

-    { ER_AXIS_NOT_SUPPORTED,

-      "\u4e0d\u652f\u6301\u8f74\u904d\u5386\u7a0b\u5e8f\uff1a{0}"},

-

-    { ER_NO_DTMIDS_AVAIL,

-      "\u65e0\u66f4\u591a\u7684 DTM \u6807\u8bc6\u53ef\u7528"},

-

-    { ER_NOT_SUPPORTED,

-      "\u4e0d\u652f\u6301\uff1a{0}"},

-

-    { ER_NODE_NON_NULL,

-      "\u5bf9\u4e8e getDTMHandleFromNode\uff0c\u8282\u70b9\u5fc5\u987b\u662f\u975e\u7a7a\u7684"},

-

-    { ER_COULD_NOT_RESOLVE_NODE,

-      "\u65e0\u6cd5\u5c06\u8282\u70b9\u89e3\u6790\u5230\u53e5\u67c4"},

-

-    { ER_STARTPARSE_WHILE_PARSING,

-       "\u89e3\u6790\u65f6\u53ef\u80fd\u6ca1\u6709\u8c03\u7528 startParse"},

-

-    { ER_STARTPARSE_NEEDS_SAXPARSER,

-       "startParse \u9700\u8981\u975e\u7a7a\u7684 SAXParser"},

-

-    { ER_COULD_NOT_INIT_PARSER,

-       "\u65e0\u6cd5\u7528\u4ee5\u4e0b\u5de5\u5177\u521d\u59cb\u5316\u89e3\u6790\u5668"},

-

-    { ER_EXCEPTION_CREATING_POOL,

-       "\u4e3a\u6c60\u521b\u5efa\u65b0\u5b9e\u4f8b\u65f6\u53d1\u751f\u5f02\u5e38"},

-

-    { ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,

-       "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u8f6c\u4e49\u5e8f\u5217"},

-

-    { ER_SCHEME_REQUIRED,

-       "\u6a21\u5f0f\u662f\u5fc5\u9700\u7684\uff01"},

-

-    { ER_NO_SCHEME_IN_URI,

-       "URI {0} \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u6a21\u5f0f"},

-

-    { ER_NO_SCHEME_INURI,

-       "URI \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u6a21\u5f0f"},

-

-    { ER_PATH_INVALID_CHAR,

-       "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26\uff1a{0}"},

-

-    { ER_SCHEME_FROM_NULL_STRING,

-       "\u65e0\u6cd5\u4ece\u7a7a\u5b57\u7b26\u4e32\u8bbe\u7f6e\u6a21\u5f0f"},

-

-    { ER_SCHEME_NOT_CONFORMANT,

-       "\u6a21\u5f0f\u4e0d\u4e00\u81f4\u3002"},

-

-    { ER_HOST_ADDRESS_NOT_WELLFORMED,

-       "\u4e3b\u673a\u4e0d\u662f\u683c\u5f0f\u6b63\u786e\u7684\u5730\u5740"},

-

-    { ER_PORT_WHEN_HOST_NULL,

-       "\u4e3b\u673a\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7aef\u53e3"},

-

-    { ER_INVALID_PORT,

-       "\u7aef\u53e3\u53f7\u65e0\u6548"},

-

-    { ER_FRAG_FOR_GENERIC_URI,

-       "\u53ea\u80fd\u4e3a\u7c7b\u5c5e URI \u8bbe\u7f6e\u7247\u6bb5"},

-

-    { ER_FRAG_WHEN_PATH_NULL,

-       "\u8def\u5f84\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7247\u6bb5"},

-

-    { ER_FRAG_INVALID_CHAR,

-       "\u7247\u6bb5\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26"},

-

-    { ER_PARSER_IN_USE,

-      "\u89e3\u6790\u5668\u5df2\u5728\u4f7f\u7528"},

-

-    { ER_CANNOT_CHANGE_WHILE_PARSING,

-      "\u89e3\u6790\u65f6\u65e0\u6cd5\u66f4\u6539 {0} {1}"},

-

-    { ER_SELF_CAUSATION_NOT_PERMITTED,

-      "\u4e0d\u5141\u8bb8\u81ea\u89e6\u53d1"},

-

-    { ER_NO_USERINFO_IF_NO_HOST,

-      "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7528\u6237\u4fe1\u606f"},

-

-    { ER_NO_PORT_IF_NO_HOST,

-      "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7aef\u53e3"},

-

-    { ER_NO_QUERY_STRING_IN_PATH,

-      "\u8def\u5f84\u548c\u67e5\u8be2\u5b57\u7b26\u4e32\u4e2d\u4e0d\u80fd\u6307\u5b9a\u67e5\u8be2\u5b57\u7b26\u4e32"},

-

-    { ER_NO_FRAGMENT_STRING_IN_PATH,

-      "\u8def\u5f84\u548c\u7247\u6bb5\u4e2d\u90fd\u4e0d\u80fd\u6307\u5b9a\u7247\u6bb5"},

-

-    { ER_CANNOT_INIT_URI_EMPTY_PARMS,

-      "\u4e0d\u80fd\u4ee5\u7a7a\u53c2\u6570\u521d\u59cb\u5316 URI"},

-

-    { ER_METHOD_NOT_SUPPORTED,

-      "\u5c1a\u4e0d\u652f\u6301\u65b9\u6cd5"},

-

-    { ER_INCRSAXSRCFILTER_NOT_RESTARTABLE,

-      "\u5f53\u524d\u4e0d\u53ef\u91cd\u65b0\u542f\u52a8 IncrementalSAXSource_Filter"},

-

-    { ER_XMLRDR_NOT_BEFORE_STARTPARSE,

-      "XMLReader \u4e0d\u5728 startParse \u8bf7\u6c42\u4e4b\u524d"},

-

-    { ER_AXIS_TRAVERSER_NOT_SUPPORTED,

-      "\u4e0d\u652f\u6301\u8f74\u904d\u5386\u7a0b\u5e8f\uff1a{0}"},

-

-    { ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER,

-      "\u4ee5\u7a7a\u7684 PrintWriter \u521b\u5efa\u4e86 ListingErrorHandler\uff01"},

-

-    { ER_SYSTEMID_UNKNOWN,

-      "SystemId \u672a\u77e5"},

-

-    { ER_LOCATION_UNKNOWN,

-      "\u9519\u8bef\u4f4d\u7f6e\u672a\u77e5"},

-

-    { ER_PREFIX_MUST_RESOLVE,

-      "\u524d\u7f00\u5fc5\u987b\u89e3\u6790\u4e3a\u540d\u79f0\u7a7a\u95f4\uff1a{0}"},

-

-    { ER_CREATEDOCUMENT_NOT_SUPPORTED,

-      "XPathContext \u4e2d\u4e0d\u652f\u6301 createDocument()\uff01"},

-

-    { ER_CHILD_HAS_NO_OWNER_DOCUMENT,

-      "\u5b50\u5c5e\u6027\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},

-

-    { ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT,

-      "\u5b50\u5c5e\u6027\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\u5143\u7d20\uff01"},

-

-    { ER_CANT_OUTPUT_TEXT_BEFORE_DOC,

-      "\u8b66\u544a\uff1a\u65e0\u6cd5\u5728\u8bb0\u5f55\u5143\u7d20\u524d\u8f93\u51fa\u6587\u672c\uff01\u5ffd\u7565..."},

-

-    { ER_CANT_HAVE_MORE_THAN_ONE_ROOT,

-      "DOM \u4e0a\u4e0d\u80fd\u6709\u591a\u4e2a\u6839\uff01"},

-

-    { ER_ARG_LOCALNAME_NULL,

-       "\u81ea\u53d8\u91cf\u201clocalName\u201d\u4e3a\u7a7a"},

-

-    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName

-    // The localname is the portion after the optional colon; the message indicates

-    // that there is a problem with that part of the QNAME.

-    { ER_ARG_LOCALNAME_INVALID,

-       "QNAME \u4e2d\u7684\u672c\u5730\u540d\u5e94\u5f53\u662f\u6709\u6548\u7684 NCName"},

-

-    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName

-    // The prefix is the portion before the optional colon; the message indicates

-    // that there is a problem with that part of the QNAME.

-    { ER_ARG_PREFIX_INVALID,

-       "QNAME \u4e2d\u7684\u524d\u7f00\u5e94\u5f53\u662f\u6709\u6548\u7684 NCName"},

-

-    { ER_NAME_CANT_START_WITH_COLON,

-      "\u540d\u79f0\u4e0d\u80fd\u4ee5\u5192\u53f7\u5f00\u5934"},

-

-    { "BAD_CODE", "createMessage \u7684\u53c2\u6570\u8d85\u51fa\u8303\u56f4"},

-    { "FORMAT_FAILED", "\u5728 messageFormat \u8c03\u7528\u8fc7\u7a0b\u4e2d\u629b\u51fa\u4e86\u5f02\u5e38"},

-    { "line", "\u884c\u53f7"},

-    { "column","\u5217\u53f7"}

-

-

-  };

-  }

-

-  /**

-   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior

-   *   of ResourceBundle.getBundle().

-   *

-   *   @param className the name of the class that implements the resource bundle.

-   *   @return the ResourceBundle

-   *   @throws MissingResourceException

-   */

-  public static final XMLErrorResources loadResourceBundle(String className)

-          throws MissingResourceException

-  {

-

-    Locale locale = Locale.getDefault();

-    String suffix = getResourceSuffix(locale);

-

-    try

-    {

-

-      // first try with the given locale

-      return (XMLErrorResources) ResourceBundle.getBundle(className

-              + suffix, locale);

-    }

-    catch (MissingResourceException e)

-    {

-      try  // try to fall back to en_US if we can't load

-      {

-

-        // Since we can't find the localized property file,

-        // fall back to en_US.

-        return (XMLErrorResources) ResourceBundle.getBundle(className,

-                new Locale("zh", "CN"));

-      }

-      catch (MissingResourceException e2)

-      {

-

-        // Now we are really in trouble.

-        // very bad, definitely very bad...not going to get very far

-        throw new MissingResourceException(

-          "Could not load any resource bundles.", className, "");

-      }

-    }

-  }

-

-  /**

-   * Return the resource file suffic for the indicated locale

-   * For most locales, this will be based the language code.  However

-   * for Chinese, we do distinguish between Taiwan and PRC

-   *

-   * @param locale the locale

-   * @return an String suffix which canbe appended to a resource name

-   */

-  private static final String getResourceSuffix(Locale locale)

-  {

-

-    String suffix = "_" + locale.getLanguage();

-    String country = locale.getCountry();

-

-    if (country.equals("TW"))

-      suffix += "_" + country;

-

-    return suffix;

-  }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xml.res;
+
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Set up error messages.
+ * We build a two dimensional array of message keys and
+ * message strings. In order to add a new message here,
+ * you need to first add a String constant. And you need
+ * to enter key, value pair as part of the contents
+ * array. You also need to update MAX_CODE for error strings
+ * and MAX_WARNING for warnings ( Needed for only information
+ * purpose )
+ */
+public class XMLErrorResources_zh extends ListResourceBundle
+{
+
+/*
+ * This file contains error and warning messages related to Xalan Error
+ * Handling.
+ *
+ *  General notes to translators:
+ *
+ *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
+ *     components.
+ *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *     XSLTC is an acronym for XSLT Compiler.
+ *
+ *  2) A stylesheet is a description of how to transform an input XML document
+ *     into a resultant XML document (or HTML document or text).  The
+ *     stylesheet itself is described in the form of an XML document.
+ *
+ *  3) A template is a component of a stylesheet that is used to match a
+ *     particular portion of an input document and specifies the form of the
+ *     corresponding portion of the output document.
+ *
+ *  4) An element is a mark-up tag in an XML document; an attribute is a
+ *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *     "elem" is an element name, "attr" and "attr2" are attribute names with
+ *     the values "val" and "val2", respectively.
+ *
+ *  5) A namespace declaration is a special attribute that is used to associate
+ *     a prefix with a URI (the namespace).  The meanings of element names and
+ *     attribute names that use that prefix are defined with respect to that
+ *     namespace.
+ *
+ *  6) "Translet" is an invented term that describes the class file that
+ *     results from compiling an XML stylesheet into a Java class.
+ *
+ *  7) XPath is a specification that describes a notation for identifying
+ *     nodes in a tree-structured representation of an XML document.  An
+ *     instance of that notation is referred to as an XPath expression.
+ *
+ */
+
+  /*
+   * Message keys
+   */
+  public static final String ER_FUNCTION_NOT_SUPPORTED = "ER_FUNCTION_NOT_SUPPORTED";
+  public static final String ER_CANNOT_OVERWRITE_CAUSE = "ER_CANNOT_OVERWRITE_CAUSE";
+  public static final String ER_NO_DEFAULT_IMPL = "ER_NO_DEFAULT_IMPL";
+  public static final String ER_CHUNKEDINTARRAY_NOT_SUPPORTED = "ER_CHUNKEDINTARRAY_NOT_SUPPORTED";
+  public static final String ER_OFFSET_BIGGER_THAN_SLOT = "ER_OFFSET_BIGGER_THAN_SLOT";
+  public static final String ER_COROUTINE_NOT_AVAIL = "ER_COROUTINE_NOT_AVAIL";
+  public static final String ER_COROUTINE_CO_EXIT = "ER_COROUTINE_CO_EXIT";
+  public static final String ER_COJOINROUTINESET_FAILED = "ER_COJOINROUTINESET_FAILED";
+  public static final String ER_COROUTINE_PARAM = "ER_COROUTINE_PARAM";
+  public static final String ER_PARSER_DOTERMINATE_ANSWERS = "ER_PARSER_DOTERMINATE_ANSWERS";
+  public static final String ER_NO_PARSE_CALL_WHILE_PARSING = "ER_NO_PARSE_CALL_WHILE_PARSING";
+  public static final String ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED";
+  public static final String ER_ITERATOR_AXIS_NOT_IMPLEMENTED = "ER_ITERATOR_AXIS_NOT_IMPLEMENTED";
+  public static final String ER_ITERATOR_CLONE_NOT_SUPPORTED = "ER_ITERATOR_CLONE_NOT_SUPPORTED";
+  public static final String ER_UNKNOWN_AXIS_TYPE = "ER_UNKNOWN_AXIS_TYPE";
+  public static final String ER_AXIS_NOT_SUPPORTED = "ER_AXIS_NOT_SUPPORTED";
+  public static final String ER_NO_DTMIDS_AVAIL = "ER_NO_DTMIDS_AVAIL";
+  public static final String ER_NOT_SUPPORTED = "ER_NOT_SUPPORTED";
+  public static final String ER_NODE_NON_NULL = "ER_NODE_NON_NULL";
+  public static final String ER_COULD_NOT_RESOLVE_NODE = "ER_COULD_NOT_RESOLVE_NODE";
+  public static final String ER_STARTPARSE_WHILE_PARSING = "ER_STARTPARSE_WHILE_PARSING";
+  public static final String ER_STARTPARSE_NEEDS_SAXPARSER = "ER_STARTPARSE_NEEDS_SAXPARSER";
+  public static final String ER_COULD_NOT_INIT_PARSER = "ER_COULD_NOT_INIT_PARSER";
+  public static final String ER_EXCEPTION_CREATING_POOL = "ER_EXCEPTION_CREATING_POOL";
+  public static final String ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE = "ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE";
+  public static final String ER_SCHEME_REQUIRED = "ER_SCHEME_REQUIRED";
+  public static final String ER_NO_SCHEME_IN_URI = "ER_NO_SCHEME_IN_URI";
+  public static final String ER_NO_SCHEME_INURI = "ER_NO_SCHEME_INURI";
+  public static final String ER_PATH_INVALID_CHAR = "ER_PATH_INVALID_CHAR";
+  public static final String ER_SCHEME_FROM_NULL_STRING = "ER_SCHEME_FROM_NULL_STRING";
+  public static final String ER_SCHEME_NOT_CONFORMANT = "ER_SCHEME_NOT_CONFORMANT";
+  public static final String ER_HOST_ADDRESS_NOT_WELLFORMED = "ER_HOST_ADDRESS_NOT_WELLFORMED";
+  public static final String ER_PORT_WHEN_HOST_NULL = "ER_PORT_WHEN_HOST_NULL";
+  public static final String ER_INVALID_PORT = "ER_INVALID_PORT";
+  public static final String ER_FRAG_FOR_GENERIC_URI ="ER_FRAG_FOR_GENERIC_URI";
+  public static final String ER_FRAG_WHEN_PATH_NULL = "ER_FRAG_WHEN_PATH_NULL";
+  public static final String ER_FRAG_INVALID_CHAR = "ER_FRAG_INVALID_CHAR";
+  public static final String ER_PARSER_IN_USE = "ER_PARSER_IN_USE";
+  public static final String ER_CANNOT_CHANGE_WHILE_PARSING = "ER_CANNOT_CHANGE_WHILE_PARSING";
+  public static final String ER_SELF_CAUSATION_NOT_PERMITTED = "ER_SELF_CAUSATION_NOT_PERMITTED";
+  public static final String ER_NO_USERINFO_IF_NO_HOST = "ER_NO_USERINFO_IF_NO_HOST";
+  public static final String ER_NO_PORT_IF_NO_HOST = "ER_NO_PORT_IF_NO_HOST";
+  public static final String ER_NO_QUERY_STRING_IN_PATH = "ER_NO_QUERY_STRING_IN_PATH";
+  public static final String ER_NO_FRAGMENT_STRING_IN_PATH = "ER_NO_FRAGMENT_STRING_IN_PATH";
+  public static final String ER_CANNOT_INIT_URI_EMPTY_PARMS = "ER_CANNOT_INIT_URI_EMPTY_PARMS";
+  public static final String ER_METHOD_NOT_SUPPORTED ="ER_METHOD_NOT_SUPPORTED";
+  public static final String ER_INCRSAXSRCFILTER_NOT_RESTARTABLE = "ER_INCRSAXSRCFILTER_NOT_RESTARTABLE";
+  public static final String ER_XMLRDR_NOT_BEFORE_STARTPARSE = "ER_XMLRDR_NOT_BEFORE_STARTPARSE";
+  public static final String ER_AXIS_TRAVERSER_NOT_SUPPORTED = "ER_AXIS_TRAVERSER_NOT_SUPPORTED";
+  public static final String ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER = "ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER";
+  public static final String ER_SYSTEMID_UNKNOWN = "ER_SYSTEMID_UNKNOWN";
+  public static final String ER_LOCATION_UNKNOWN = "ER_LOCATION_UNKNOWN";
+  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
+  public static final String ER_CREATEDOCUMENT_NOT_SUPPORTED = "ER_CREATEDOCUMENT_NOT_SUPPORTED";
+  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT";
+  public static final String ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT = "ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT";
+  public static final String ER_CANT_OUTPUT_TEXT_BEFORE_DOC = "ER_CANT_OUTPUT_TEXT_BEFORE_DOC";
+  public static final String ER_CANT_HAVE_MORE_THAN_ONE_ROOT = "ER_CANT_HAVE_MORE_THAN_ONE_ROOT";
+  public static final String ER_ARG_LOCALNAME_NULL = "ER_ARG_LOCALNAME_NULL";
+  public static final String ER_ARG_LOCALNAME_INVALID = "ER_ARG_LOCALNAME_INVALID";
+  public static final String ER_ARG_PREFIX_INVALID = "ER_ARG_PREFIX_INVALID";
+  public static final String ER_NAME_CANT_START_WITH_COLON = "ER_NAME_CANT_START_WITH_COLON";
+
+  /*
+   * Now fill in the message text.
+   * Then fill in the message text for that message code in the
+   * array. Use the new error code as the index into the array.
+   */
+
+  // Error messages...
+
+  /**
+   * Get the lookup table for error messages
+   *
+   * @return The association list.
+   */
+  public Object[][] getContents()
+  {
+    return new Object[][] {
+
+  /** Error message ID that has a null message, but takes in a single object.    */
+    {"ER0000" , "{0}" },
+
+    { ER_FUNCTION_NOT_SUPPORTED,
+      "\u51fd\u6570\u4e0d\u53d7\u652f\u6301\uff01"},
+
+    { ER_CANNOT_OVERWRITE_CAUSE,
+      "\u65e0\u6cd5\u8986\u76d6\u539f\u56e0"},
+
+    { ER_NO_DEFAULT_IMPL,
+      "\u627e\u4e0d\u5230\u7f3a\u7701\u5b9e\u73b0"},
+
+    { ER_CHUNKEDINTARRAY_NOT_SUPPORTED,
+      "\u5f53\u524d\u4e0d\u652f\u6301 ChunkedIntArray({0})"},
+
+    { ER_OFFSET_BIGGER_THAN_SLOT,
+      "\u504f\u79fb\u5927\u4e8e\u69fd"},
+
+    { ER_COROUTINE_NOT_AVAIL,
+      "\u534f\u540c\u7a0b\u5e8f\u4e0d\u53ef\u7528\uff0cid={0}"},
+
+    { ER_COROUTINE_CO_EXIT,
+      "CoroutineManager \u63a5\u6536\u5230 co_exit() \u8bf7\u6c42"},
+
+    { ER_COJOINROUTINESET_FAILED,
+      "co_joinCoroutineSet() \u5931\u8d25"},
+
+    { ER_COROUTINE_PARAM,
+      "\u534f\u540c\u7a0b\u5e8f\u53c2\u6570\u9519\u8bef\uff08{0}\uff09"},
+
+    { ER_PARSER_DOTERMINATE_ANSWERS,
+      "\n\u610f\u5916\uff1a\u89e3\u6790\u5668 doTerminate \u5e94\u7b54 {0}"},
+
+    { ER_NO_PARSE_CALL_WHILE_PARSING,
+      "\u89e3\u6790\u65f6\u53ef\u80fd\u6ca1\u6709\u8c03\u7528 parse"},
+
+    { ER_TYPED_ITERATOR_AXIS_NOT_IMPLEMENTED,
+      "\u9519\u8bef\uff1a\u6ca1\u6709\u5b9e\u73b0\u4e3a\u8f74 {0} \u8f93\u5165\u7684\u8fed\u4ee3\u5668"},
+
+    { ER_ITERATOR_AXIS_NOT_IMPLEMENTED,
+      "\u9519\u8bef\uff1a\u6ca1\u6709\u5b9e\u73b0\u8f74 {0} \u7684\u8fed\u4ee3\u5668"},
+
+    { ER_ITERATOR_CLONE_NOT_SUPPORTED,
+      "\u4e0d\u652f\u6301\u8fed\u4ee3\u5668\u514b\u9686"},
+
+    { ER_UNKNOWN_AXIS_TYPE,
+      "\u672a\u77e5\u7684\u8f74\u904d\u5386\u7c7b\u578b\uff1a{0}"},
+
+    { ER_AXIS_NOT_SUPPORTED,
+      "\u4e0d\u652f\u6301\u8f74\u904d\u5386\u7a0b\u5e8f\uff1a{0}"},
+
+    { ER_NO_DTMIDS_AVAIL,
+      "\u65e0\u66f4\u591a\u7684 DTM \u6807\u8bc6\u53ef\u7528"},
+
+    { ER_NOT_SUPPORTED,
+      "\u4e0d\u652f\u6301\uff1a{0}"},
+
+    { ER_NODE_NON_NULL,
+      "\u5bf9\u4e8e getDTMHandleFromNode\uff0c\u8282\u70b9\u5fc5\u987b\u662f\u975e\u7a7a\u7684"},
+
+    { ER_COULD_NOT_RESOLVE_NODE,
+      "\u65e0\u6cd5\u5c06\u8282\u70b9\u89e3\u6790\u5230\u53e5\u67c4"},
+
+    { ER_STARTPARSE_WHILE_PARSING,
+       "\u89e3\u6790\u65f6\u53ef\u80fd\u6ca1\u6709\u8c03\u7528 startParse"},
+
+    { ER_STARTPARSE_NEEDS_SAXPARSER,
+       "startParse \u9700\u8981\u975e\u7a7a\u7684 SAXParser"},
+
+    { ER_COULD_NOT_INIT_PARSER,
+       "\u65e0\u6cd5\u7528\u4ee5\u4e0b\u5de5\u5177\u521d\u59cb\u5316\u89e3\u6790\u5668"},
+
+    { ER_EXCEPTION_CREATING_POOL,
+       "\u4e3a\u6c60\u521b\u5efa\u65b0\u5b9e\u4f8b\u65f6\u53d1\u751f\u5f02\u5e38"},
+
+    { ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,
+       "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u8f6c\u4e49\u5e8f\u5217"},
+
+    { ER_SCHEME_REQUIRED,
+       "\u6a21\u5f0f\u662f\u5fc5\u9700\u7684\uff01"},
+
+    { ER_NO_SCHEME_IN_URI,
+       "URI {0} \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u6a21\u5f0f"},
+
+    { ER_NO_SCHEME_INURI,
+       "URI \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u6a21\u5f0f"},
+
+    { ER_PATH_INVALID_CHAR,
+       "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26\uff1a{0}"},
+
+    { ER_SCHEME_FROM_NULL_STRING,
+       "\u65e0\u6cd5\u4ece\u7a7a\u5b57\u7b26\u4e32\u8bbe\u7f6e\u6a21\u5f0f"},
+
+    { ER_SCHEME_NOT_CONFORMANT,
+       "\u6a21\u5f0f\u4e0d\u4e00\u81f4\u3002"},
+
+    { ER_HOST_ADDRESS_NOT_WELLFORMED,
+       "\u4e3b\u673a\u4e0d\u662f\u683c\u5f0f\u6b63\u786e\u7684\u5730\u5740"},
+
+    { ER_PORT_WHEN_HOST_NULL,
+       "\u4e3b\u673a\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7aef\u53e3"},
+
+    { ER_INVALID_PORT,
+       "\u7aef\u53e3\u53f7\u65e0\u6548"},
+
+    { ER_FRAG_FOR_GENERIC_URI,
+       "\u53ea\u80fd\u4e3a\u7c7b\u5c5e URI \u8bbe\u7f6e\u7247\u6bb5"},
+
+    { ER_FRAG_WHEN_PATH_NULL,
+       "\u8def\u5f84\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7247\u6bb5"},
+
+    { ER_FRAG_INVALID_CHAR,
+       "\u7247\u6bb5\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26"},
+
+    { ER_PARSER_IN_USE,
+      "\u89e3\u6790\u5668\u5df2\u5728\u4f7f\u7528"},
+
+    { ER_CANNOT_CHANGE_WHILE_PARSING,
+      "\u89e3\u6790\u65f6\u65e0\u6cd5\u66f4\u6539 {0} {1}"},
+
+    { ER_SELF_CAUSATION_NOT_PERMITTED,
+      "\u4e0d\u5141\u8bb8\u81ea\u89e6\u53d1"},
+
+    { ER_NO_USERINFO_IF_NO_HOST,
+      "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7528\u6237\u4fe1\u606f"},
+
+    { ER_NO_PORT_IF_NO_HOST,
+      "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7aef\u53e3"},
+
+    { ER_NO_QUERY_STRING_IN_PATH,
+      "\u8def\u5f84\u548c\u67e5\u8be2\u5b57\u7b26\u4e32\u4e2d\u4e0d\u80fd\u6307\u5b9a\u67e5\u8be2\u5b57\u7b26\u4e32"},
+
+    { ER_NO_FRAGMENT_STRING_IN_PATH,
+      "\u8def\u5f84\u548c\u7247\u6bb5\u4e2d\u90fd\u4e0d\u80fd\u6307\u5b9a\u7247\u6bb5"},
+
+    { ER_CANNOT_INIT_URI_EMPTY_PARMS,
+      "\u4e0d\u80fd\u4ee5\u7a7a\u53c2\u6570\u521d\u59cb\u5316 URI"},
+
+    { ER_METHOD_NOT_SUPPORTED,
+      "\u5c1a\u4e0d\u652f\u6301\u65b9\u6cd5"},
+
+    { ER_INCRSAXSRCFILTER_NOT_RESTARTABLE,
+      "\u5f53\u524d\u4e0d\u53ef\u91cd\u65b0\u542f\u52a8 IncrementalSAXSource_Filter"},
+
+    { ER_XMLRDR_NOT_BEFORE_STARTPARSE,
+      "XMLReader \u4e0d\u5728 startParse \u8bf7\u6c42\u4e4b\u524d"},
+
+    { ER_AXIS_TRAVERSER_NOT_SUPPORTED,
+      "\u4e0d\u652f\u6301\u8f74\u904d\u5386\u7a0b\u5e8f\uff1a{0}"},
+
+    { ER_ERRORHANDLER_CREATED_WITH_NULL_PRINTWRITER,
+      "\u4ee5\u7a7a\u7684 PrintWriter \u521b\u5efa\u4e86 ListingErrorHandler\uff01"},
+
+    { ER_SYSTEMID_UNKNOWN,
+      "SystemId \u672a\u77e5"},
+
+    { ER_LOCATION_UNKNOWN,
+      "\u9519\u8bef\u4f4d\u7f6e\u672a\u77e5"},
+
+    { ER_PREFIX_MUST_RESOLVE,
+      "\u524d\u7f00\u5fc5\u987b\u89e3\u6790\u4e3a\u540d\u79f0\u7a7a\u95f4\uff1a{0}"},
+
+    { ER_CREATEDOCUMENT_NOT_SUPPORTED,
+      "XPathContext \u4e2d\u4e0d\u652f\u6301 createDocument()\uff01"},
+
+    { ER_CHILD_HAS_NO_OWNER_DOCUMENT,
+      "\u5b50\u5c5e\u6027\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},
+
+    { ER_CHILD_HAS_NO_OWNER_DOCUMENT_ELEMENT,
+      "\u5b50\u5c5e\u6027\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\u5143\u7d20\uff01"},
+
+    { ER_CANT_OUTPUT_TEXT_BEFORE_DOC,
+      "\u8b66\u544a\uff1a\u65e0\u6cd5\u5728\u8bb0\u5f55\u5143\u7d20\u524d\u8f93\u51fa\u6587\u672c\uff01\u5ffd\u7565..."},
+
+    { ER_CANT_HAVE_MORE_THAN_ONE_ROOT,
+      "DOM \u4e0a\u4e0d\u80fd\u6709\u591a\u4e2a\u6839\uff01"},
+
+    { ER_ARG_LOCALNAME_NULL,
+       "\u81ea\u53d8\u91cf\u201clocalName\u201d\u4e3a\u7a7a"},
+
+    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName
+    // The localname is the portion after the optional colon; the message indicates
+    // that there is a problem with that part of the QNAME.
+    { ER_ARG_LOCALNAME_INVALID,
+       "QNAME \u4e2d\u7684\u672c\u5730\u540d\u5e94\u5f53\u662f\u6709\u6548\u7684 NCName"},
+
+    // Note to translators:  A QNAME has the syntactic form [NCName:]NCName
+    // The prefix is the portion before the optional colon; the message indicates
+    // that there is a problem with that part of the QNAME.
+    { ER_ARG_PREFIX_INVALID,
+       "QNAME \u4e2d\u7684\u524d\u7f00\u5e94\u5f53\u662f\u6709\u6548\u7684 NCName"},
+
+    { ER_NAME_CANT_START_WITH_COLON,
+      "\u540d\u79f0\u4e0d\u80fd\u4ee5\u5192\u53f7\u5f00\u5934"},
+
+    { "BAD_CODE", "createMessage \u7684\u53c2\u6570\u8d85\u51fa\u8303\u56f4"},
+    { "FORMAT_FAILED", "\u5728 messageFormat \u8c03\u7528\u8fc7\u7a0b\u4e2d\u629b\u51fa\u4e86\u5f02\u5e38"},
+    { "line", "\u884c\u53f7"},
+    { "column","\u5217\u53f7"}
+
+
+  };
+  }
+
+  /**
+   *   Return a named ResourceBundle for a particular locale.  This method mimics the behavior
+   *   of ResourceBundle.getBundle().
+   *
+   *   @param className the name of the class that implements the resource bundle.
+   *   @return the ResourceBundle
+   *   @throws MissingResourceException
+   */
+  public static final XMLErrorResources loadResourceBundle(String className)
+          throws MissingResourceException
+  {
+
+    Locale locale = Locale.getDefault();
+    String suffix = getResourceSuffix(locale);
+
+    try
+    {
+
+      // first try with the given locale
+      return (XMLErrorResources) ResourceBundle.getBundle(className
+              + suffix, locale);
+    }
+    catch (MissingResourceException e)
+    {
+      try  // try to fall back to en_US if we can't load
+      {
+
+        // Since we can't find the localized property file,
+        // fall back to en_US.
+        return (XMLErrorResources) ResourceBundle.getBundle(className,
+                new Locale("zh", "CN"));
+      }
+      catch (MissingResourceException e2)
+      {
+
+        // Now we are really in trouble.
+        // very bad, definitely very bad...not going to get very far
+        throw new MissingResourceException(
+          "Could not load any resource bundles.", className, "");
+      }
+    }
+  }
+
+  /**
+   * Return the resource file suffic for the indicated locale
+   * For most locales, this will be based the language code.  However
+   * for Chinese, we do distinguish between Taiwan and PRC
+   *
+   * @param locale the locale
+   * @return an String suffix which canbe appended to a resource name
+   */
+  private static final String getResourceSuffix(Locale locale)
+  {
+
+    String suffix = "_" + locale.getLanguage();
+    String country = locale.getCountry();
+
+    if (country.equals("TW"))
+      suffix += "_" + country;
+
+    return suffix;
+  }
+
+}
diff --git a/src/org/apache/xml/serializer/DOM3Serializer.java b/src/org/apache/xml/serializer/DOM3Serializer.java
index df0e1fd..82e6470 100644
--- a/src/org/apache/xml/serializer/DOM3Serializer.java
+++ b/src/org/apache/xml/serializer/DOM3Serializer.java
@@ -1,170 +1,170 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id$

- */

-

-package org.apache.xml.serializer;

-

-import java.io.IOException;

-

-import org.w3c.dom.DOMErrorHandler;

-import org.w3c.dom.Node;

-import org.w3c.dom.ls.LSSerializerFilter;

-

-/**

- * This interface is not intended to be used

- * by an end user, but rather by an XML parser that is implementing the DOM 

- * Level 3 Load and Save APIs.

- * <p>

- * 

- * See the DOM Level 3 Load and Save interface at <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer">LSSeializer</a>.

- * 

- * For a list of configuration parameters for DOM Level 3 see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">DOMConfiguration</a>.

- * For additional configuration parameters available with the DOM Level 3 Load and Save API LSSerializer see

- * <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer-config">LSerializer config</a>.

- * <p>

- * The following example uses a DOM3Serializer indirectly, through an an XML

- * parser that uses this class as part of its implementation of the DOM Level 3

- * Load and Save APIs, and is the prefered way to serialize with DOM Level 3 APIs.

- * <p>

- * Example:

- * <pre>

- *    public class TestDOM3 {

- *

- *    public static void main(String args[]) throws Exception {

- *        // Get document to serialize

- *        TestDOM3 test = new TestDOM3();

- *        

- *        // Serialize using standard DOM Level 3 Load/Save APIs        

- *        System.out.println(test.testDOM3LS());

- *    }

- *

- *    public org.w3c.dom.Document getDocument() throws Exception {

- *        // Create a simple DOM Document.

- *        javax.xml.parsers.DocumentBuilderFactory factory = 

- *            javax.xml.parsers.DocumentBuilderFactory.newInstance();

- *        javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();

- *        byte[] bytes = "<parent><child/></parent>".getBytes();

- *        java.io.InputStream is = new java.io.ByteArrayInputStream(bytes);

- *        org.w3c.dom.Document doc = builder.parse(is);

- *        return doc;

- *    }

- *    

- *    //

- *    // This method uses standard DOM Level 3 Load Save APIs:

- *    //   org.w3c.dom.bootstrap.DOMImplementationRegistry

- *    //   org.w3c.dom.ls.DOMImplementationLS

- *    //   org.w3c.dom.ls.DOMImplementationLS

- *    //   org.w3c.dom.ls.LSSerializer

- *    //   org.w3c.dom.DOMConfiguration

- *    //   

- *    // The only thing non-standard in this method is the value set for the

- *    // name of the class implementing the DOM Level 3 Load Save APIs,

- *    // which in this case is:

- *    //   org.apache.xerces.dom.DOMImplementationSourceImpl

- *    //

- *

- *    public String testDOM3LS() throws Exception {

- *        

- *        // Get a simple DOM Document that will be serialized.

- *        org.w3c.dom.Document docToSerialize = getDocument();

- *

- *        // Get a factory (DOMImplementationLS) for creating a Load and Save object.

- *        org.w3c.dom.ls.DOMImplementationLS impl = 

- *            (org.w3c.dom.ls.DOMImplementationLS) 

- *            org.w3c.dom.bootstrap.DOMImplementationRegistry.newInstance().getDOMImplementation("LS");

- *

- *        // Use the factory to create an object (LSSerializer) used to 

- *        // write out or save the document.

- *        org.w3c.dom.ls.LSSerializer writer = impl.createLSSerializer();

- *        org.w3c.dom.DOMConfiguration config = writer.getDomConfig();

- *        config.setParameter("format-pretty-print", Boolean.TRUE);

- *        

- *        // Use the LSSerializer to write out or serialize the document to a String.

- *        String serializedXML = writer.writeToString(docToSerialize);

- *        return serializedXML;

- *    }

- *    

- *    }  // end of class TestDOM3

- * </pre>

- * 

- * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">DOMConfiguration</a>

- * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer-config">LSSerializer</a>

- * @see org.apache.xml.serializer.Serializer

- * @see org.apache.xml.serializer.DOMSerializer

- * 

- * @xsl.usage advanced

- *

- */

-public interface DOM3Serializer {

-    /**

-     * Serializes the Level 3 DOM node. Throws an exception only if an I/O

-     * exception occured while serializing.

-     * 

-     * This interface is a public API.

-     *

-     * @param node the Level 3 DOM node to serialize

-     * @throws IOException if an I/O exception occured while serializing

-     */

-    public void serializeDOM3(Node node) throws IOException;

-

-    /**

-     * Sets a DOMErrorHandler on the DOM Level 3 Serializer.

-     * 

-     * This interface is a public API.

-     *

-     * @param handler the Level 3 DOMErrorHandler

-     */

-    public void setErrorHandler(DOMErrorHandler handler);

-

-    /**

-     * Returns a DOMErrorHandler set on the DOM Level 3 Serializer.

-     * 

-     * This interface is a public API.

-     *

-     * @return A Level 3 DOMErrorHandler

-     */

-    public DOMErrorHandler getErrorHandler();

-

-    /**

-     * Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes

-     * during serialization.

-     * 

-     * This interface is a public API.

-     *

-     * @param filter the Level 3 LSSerializerFilter

-     */

-    public void setNodeFilter(LSSerializerFilter filter);

-

-    /**

-     * Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes

-     * during serialization.

-     * 

-     * This interface is a public API.

-     *

-     * @return The Level 3 LSSerializerFilter

-     */

-    public LSSerializerFilter getNodeFilter();

-

-    /**

-     * Sets the end-of-line sequence of characters to be used during serialization

-     * @param newLine The end-of-line sequence of characters to be used during serialization

-     */

-    public void setNewLine(char[] newLine);

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer;
+
+import java.io.IOException;
+
+import org.w3c.dom.DOMErrorHandler;
+import org.w3c.dom.Node;
+import org.w3c.dom.ls.LSSerializerFilter;
+
+/**
+ * This interface is not intended to be used
+ * by an end user, but rather by an XML parser that is implementing the DOM 
+ * Level 3 Load and Save APIs.
+ * <p>
+ * 
+ * See the DOM Level 3 Load and Save interface at <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer">LSSeializer</a>.
+ * 
+ * For a list of configuration parameters for DOM Level 3 see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">DOMConfiguration</a>.
+ * For additional configuration parameters available with the DOM Level 3 Load and Save API LSSerializer see
+ * <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer-config">LSerializer config</a>.
+ * <p>
+ * The following example uses a DOM3Serializer indirectly, through an an XML
+ * parser that uses this class as part of its implementation of the DOM Level 3
+ * Load and Save APIs, and is the prefered way to serialize with DOM Level 3 APIs.
+ * <p>
+ * Example:
+ * <pre>
+ *    public class TestDOM3 {
+ *
+ *    public static void main(String args[]) throws Exception {
+ *        // Get document to serialize
+ *        TestDOM3 test = new TestDOM3();
+ *        
+ *        // Serialize using standard DOM Level 3 Load/Save APIs        
+ *        System.out.println(test.testDOM3LS());
+ *    }
+ *
+ *    public org.w3c.dom.Document getDocument() throws Exception {
+ *        // Create a simple DOM Document.
+ *        javax.xml.parsers.DocumentBuilderFactory factory = 
+ *            javax.xml.parsers.DocumentBuilderFactory.newInstance();
+ *        javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();
+ *        byte[] bytes = "<parent><child/></parent>".getBytes();
+ *        java.io.InputStream is = new java.io.ByteArrayInputStream(bytes);
+ *        org.w3c.dom.Document doc = builder.parse(is);
+ *        return doc;
+ *    }
+ *    
+ *    //
+ *    // This method uses standard DOM Level 3 Load Save APIs:
+ *    //   org.w3c.dom.bootstrap.DOMImplementationRegistry
+ *    //   org.w3c.dom.ls.DOMImplementationLS
+ *    //   org.w3c.dom.ls.DOMImplementationLS
+ *    //   org.w3c.dom.ls.LSSerializer
+ *    //   org.w3c.dom.DOMConfiguration
+ *    //   
+ *    // The only thing non-standard in this method is the value set for the
+ *    // name of the class implementing the DOM Level 3 Load Save APIs,
+ *    // which in this case is:
+ *    //   org.apache.xerces.dom.DOMImplementationSourceImpl
+ *    //
+ *
+ *    public String testDOM3LS() throws Exception {
+ *        
+ *        // Get a simple DOM Document that will be serialized.
+ *        org.w3c.dom.Document docToSerialize = getDocument();
+ *
+ *        // Get a factory (DOMImplementationLS) for creating a Load and Save object.
+ *        org.w3c.dom.ls.DOMImplementationLS impl = 
+ *            (org.w3c.dom.ls.DOMImplementationLS) 
+ *            org.w3c.dom.bootstrap.DOMImplementationRegistry.newInstance().getDOMImplementation("LS");
+ *
+ *        // Use the factory to create an object (LSSerializer) used to 
+ *        // write out or save the document.
+ *        org.w3c.dom.ls.LSSerializer writer = impl.createLSSerializer();
+ *        org.w3c.dom.DOMConfiguration config = writer.getDomConfig();
+ *        config.setParameter("format-pretty-print", Boolean.TRUE);
+ *        
+ *        // Use the LSSerializer to write out or serialize the document to a String.
+ *        String serializedXML = writer.writeToString(docToSerialize);
+ *        return serializedXML;
+ *    }
+ *    
+ *    }  // end of class TestDOM3
+ * </pre>
+ * 
+ * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">DOMConfiguration</a>
+ * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer-config">LSSerializer</a>
+ * @see org.apache.xml.serializer.Serializer
+ * @see org.apache.xml.serializer.DOMSerializer
+ * 
+ * @xsl.usage advanced
+ *
+ */
+public interface DOM3Serializer {
+    /**
+     * Serializes the Level 3 DOM node. Throws an exception only if an I/O
+     * exception occured while serializing.
+     * 
+     * This interface is a public API.
+     *
+     * @param node the Level 3 DOM node to serialize
+     * @throws IOException if an I/O exception occured while serializing
+     */
+    public void serializeDOM3(Node node) throws IOException;
+
+    /**
+     * Sets a DOMErrorHandler on the DOM Level 3 Serializer.
+     * 
+     * This interface is a public API.
+     *
+     * @param handler the Level 3 DOMErrorHandler
+     */
+    public void setErrorHandler(DOMErrorHandler handler);
+
+    /**
+     * Returns a DOMErrorHandler set on the DOM Level 3 Serializer.
+     * 
+     * This interface is a public API.
+     *
+     * @return A Level 3 DOMErrorHandler
+     */
+    public DOMErrorHandler getErrorHandler();
+
+    /**
+     * Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes
+     * during serialization.
+     * 
+     * This interface is a public API.
+     *
+     * @param filter the Level 3 LSSerializerFilter
+     */
+    public void setNodeFilter(LSSerializerFilter filter);
+
+    /**
+     * Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes
+     * during serialization.
+     * 
+     * This interface is a public API.
+     *
+     * @return The Level 3 LSSerializerFilter
+     */
+    public LSSerializerFilter getNodeFilter();
+
+    /**
+     * Sets the end-of-line sequence of characters to be used during serialization
+     * @param newLine The end-of-line sequence of characters to be used during serialization
+     */
+    public void setNewLine(char[] newLine);
+}
diff --git a/src/org/apache/xml/serializer/dom3/DOM3SerializerImpl.java b/src/org/apache/xml/serializer/dom3/DOM3SerializerImpl.java
index fcc9882..3f765d9 100644
--- a/src/org/apache/xml/serializer/dom3/DOM3SerializerImpl.java
+++ b/src/org/apache/xml/serializer/dom3/DOM3SerializerImpl.java
@@ -1,158 +1,158 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import java.io.IOException;

-

-import org.apache.xml.serializer.DOM3Serializer;

-import org.apache.xml.serializer.SerializationHandler;

-import org.apache.xml.serializer.utils.WrappedRuntimeException;

-import org.w3c.dom.DOMErrorHandler;

-import org.w3c.dom.Node;

-import org.w3c.dom.ls.LSSerializerFilter;

-

-/**

- * This class implements the DOM3Serializer interface.

- * 

- * @xsl.usage internal

- */

-public final class DOM3SerializerImpl implements DOM3Serializer {

-

-    /**

-     * Private class members

-     */

-    // The DOMErrorHandler

-    private DOMErrorHandler fErrorHandler;

-

-    // A LSSerializerFilter

-    private LSSerializerFilter fSerializerFilter;

-

-    // A LSSerializerFilter

-    private String fNewLine;

-

-    // A SerializationHandler ex. an instance of ToXMLStream

-    private SerializationHandler fSerializationHandler;

-

-    /**

-     * Constructor

-     * 

-     * @param handler An instance of the SerializationHandler interface. 

-     */

-    public DOM3SerializerImpl(SerializationHandler handler) {

-        fSerializationHandler = handler;

-    }

-

-    // Public memebers

-

-    /**

-     * Returns a DOMErrorHandler set on the DOM Level 3 Serializer.

-     * 

-     * This interface is a public API.

-     *

-     * @return A Level 3 DOMErrorHandler

-     */

-    public DOMErrorHandler getErrorHandler() {

-        return fErrorHandler;

-    }

-

-    /**

-     * Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes

-     * during serialization.

-     * 

-     * This interface is a public API.

-     *

-     * @return The Level 3 LSSerializerFilter

-     */

-    public LSSerializerFilter getNodeFilter() {

-        return fSerializerFilter;

-    }

-    

-    /**

-     * Gets the end-of-line sequence of characters to be used during serialization.

-     */

-    public char[] getNewLine() {

-        return (fNewLine != null) ? fNewLine.toCharArray() : null;

-    }

-

-    /**

-     * Serializes the Level 3 DOM node by creating an instance of DOM3TreeWalker

-     * which traverses the DOM tree and invokes handler events to serialize

-     * the DOM NOde. Throws an exception only if an I/O exception occured

-     * while serializing.

-     * This interface is a public API.

-     *

-     * @param node the Level 3 DOM node to serialize

-     * @throws IOException if an I/O exception occured while serializing

-     */

-    public void serializeDOM3(Node node) throws IOException {

-        try {

-            DOM3TreeWalker walker = new DOM3TreeWalker(fSerializationHandler,

-                    fErrorHandler, fSerializerFilter, fNewLine);

-

-            walker.traverse(node);

-        } catch (org.xml.sax.SAXException se) {

-            throw new WrappedRuntimeException(se);

-        }

-    }

-

-    /**

-     * Sets a DOMErrorHandler on the DOM Level 3 Serializer.

-     * 

-     * This interface is a public API.

-     *

-     * @param handler the Level 3 DOMErrorHandler

-     */

-    public void setErrorHandler(DOMErrorHandler handler) {

-        fErrorHandler = handler;

-    }

-

-    /**

-     * Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes

-     * during serialization.

-     * 

-     * This interface is a public API.

-     *

-     * @param filter the Level 3 LSSerializerFilter

-     */

-    public void setNodeFilter(LSSerializerFilter filter) {

-        fSerializerFilter = filter;

-    }

-

-    /**

-     * Sets a SerializationHandler on the DOM Serializer.

-     * 

-     * This interface is a public API.

-     *

-     * @param handler An instance of SerializationHandler

-     */

-    public void setSerializationHandler(SerializationHandler handler) {

-        fSerializationHandler = handler;

-    }

-

-    /**

-     * Sets the end-of-line sequence of characters to be used during serialization.

-     * @param newLine The end-of-line sequence of characters to be used during serialization.

-     */

-    public void setNewLine(char[] newLine) {

-        fNewLine = (newLine != null) ? new String(newLine) : null;

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import java.io.IOException;
+
+import org.apache.xml.serializer.DOM3Serializer;
+import org.apache.xml.serializer.SerializationHandler;
+import org.apache.xml.serializer.utils.WrappedRuntimeException;
+import org.w3c.dom.DOMErrorHandler;
+import org.w3c.dom.Node;
+import org.w3c.dom.ls.LSSerializerFilter;
+
+/**
+ * This class implements the DOM3Serializer interface.
+ * 
+ * @xsl.usage internal
+ */
+public final class DOM3SerializerImpl implements DOM3Serializer {
+
+    /**
+     * Private class members
+     */
+    // The DOMErrorHandler
+    private DOMErrorHandler fErrorHandler;
+
+    // A LSSerializerFilter
+    private LSSerializerFilter fSerializerFilter;
+
+    // A LSSerializerFilter
+    private String fNewLine;
+
+    // A SerializationHandler ex. an instance of ToXMLStream
+    private SerializationHandler fSerializationHandler;
+
+    /**
+     * Constructor
+     * 
+     * @param handler An instance of the SerializationHandler interface. 
+     */
+    public DOM3SerializerImpl(SerializationHandler handler) {
+        fSerializationHandler = handler;
+    }
+
+    // Public memebers
+
+    /**
+     * Returns a DOMErrorHandler set on the DOM Level 3 Serializer.
+     * 
+     * This interface is a public API.
+     *
+     * @return A Level 3 DOMErrorHandler
+     */
+    public DOMErrorHandler getErrorHandler() {
+        return fErrorHandler;
+    }
+
+    /**
+     * Returns a LSSerializerFilter set on the DOM Level 3 Serializer to filter nodes
+     * during serialization.
+     * 
+     * This interface is a public API.
+     *
+     * @return The Level 3 LSSerializerFilter
+     */
+    public LSSerializerFilter getNodeFilter() {
+        return fSerializerFilter;
+    }
+    
+    /**
+     * Gets the end-of-line sequence of characters to be used during serialization.
+     */
+    public char[] getNewLine() {
+        return (fNewLine != null) ? fNewLine.toCharArray() : null;
+    }
+
+    /**
+     * Serializes the Level 3 DOM node by creating an instance of DOM3TreeWalker
+     * which traverses the DOM tree and invokes handler events to serialize
+     * the DOM NOde. Throws an exception only if an I/O exception occured
+     * while serializing.
+     * This interface is a public API.
+     *
+     * @param node the Level 3 DOM node to serialize
+     * @throws IOException if an I/O exception occured while serializing
+     */
+    public void serializeDOM3(Node node) throws IOException {
+        try {
+            DOM3TreeWalker walker = new DOM3TreeWalker(fSerializationHandler,
+                    fErrorHandler, fSerializerFilter, fNewLine);
+
+            walker.traverse(node);
+        } catch (org.xml.sax.SAXException se) {
+            throw new WrappedRuntimeException(se);
+        }
+    }
+
+    /**
+     * Sets a DOMErrorHandler on the DOM Level 3 Serializer.
+     * 
+     * This interface is a public API.
+     *
+     * @param handler the Level 3 DOMErrorHandler
+     */
+    public void setErrorHandler(DOMErrorHandler handler) {
+        fErrorHandler = handler;
+    }
+
+    /**
+     * Sets a LSSerializerFilter on the DOM Level 3 Serializer to filter nodes
+     * during serialization.
+     * 
+     * This interface is a public API.
+     *
+     * @param filter the Level 3 LSSerializerFilter
+     */
+    public void setNodeFilter(LSSerializerFilter filter) {
+        fSerializerFilter = filter;
+    }
+
+    /**
+     * Sets a SerializationHandler on the DOM Serializer.
+     * 
+     * This interface is a public API.
+     *
+     * @param handler An instance of SerializationHandler
+     */
+    public void setSerializationHandler(SerializationHandler handler) {
+        fSerializationHandler = handler;
+    }
+
+    /**
+     * Sets the end-of-line sequence of characters to be used during serialization.
+     * @param newLine The end-of-line sequence of characters to be used during serialization.
+     */
+    public void setNewLine(char[] newLine) {
+        fNewLine = (newLine != null) ? new String(newLine) : null;
+    }
+}
diff --git a/src/org/apache/xml/serializer/dom3/DOM3TreeWalker.java b/src/org/apache/xml/serializer/dom3/DOM3TreeWalker.java
index 0b62423..643b885 100644
--- a/src/org/apache/xml/serializer/dom3/DOM3TreeWalker.java
+++ b/src/org/apache/xml/serializer/dom3/DOM3TreeWalker.java
@@ -1,2149 +1,2149 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import java.io.File;

-import java.io.IOException;

-import java.io.Writer;

-import java.util.Enumeration;

-import java.util.Hashtable;

-import java.util.Properties;

-

-import org.apache.xml.serializer.dom3.NamespaceSupport;

-import org.apache.xml.serializer.OutputPropertiesFactory;

-import org.apache.xml.serializer.SerializationHandler;

-import org.apache.xml.serializer.utils.MsgKey;

-import org.apache.xml.serializer.utils.Utils;

-import org.apache.xml.serializer.utils.XML11Char;

-import org.apache.xml.serializer.utils.XMLChar;

-import org.w3c.dom.Attr;

-import org.w3c.dom.CDATASection;

-import org.w3c.dom.Comment;

-import org.w3c.dom.DOMError;

-import org.w3c.dom.DOMErrorHandler;

-import org.w3c.dom.Document;

-import org.w3c.dom.DocumentType;

-import org.w3c.dom.Element;

-import org.w3c.dom.Entity;

-import org.w3c.dom.EntityReference;

-import org.w3c.dom.NamedNodeMap;

-import org.w3c.dom.Node;

-import org.w3c.dom.NodeList;

-import org.w3c.dom.ProcessingInstruction;

-import org.w3c.dom.Text;

-import org.w3c.dom.ls.LSSerializerFilter;

-import org.w3c.dom.traversal.NodeFilter;

-import org.xml.sax.Locator;

-import org.xml.sax.SAXException;

-import org.xml.sax.ext.LexicalHandler;

-import org.xml.sax.helpers.LocatorImpl;

-

-/**

- * Built on org.apache.xml.serializer.TreeWalker and adds functionality to

- * traverse and serialize a DOM Node (Level 2 or Level 3) as specified in 

- * the DOM Level 3 LS Recommedation by evaluating and applying DOMConfiguration 

- * parameters and filters if any during serialization.

- *   

- * @xsl.usage internal

- */

-final class DOM3TreeWalker {

-

-    /**

-     * The SerializationHandler, it extends ContentHandler and when

-     * this class is instantiated via the constructor provided, a

-     * SerializationHandler object is passed to it.

-     */

-    private SerializationHandler fSerializer = null;

-

-    /** We do not need DOM2Helper since DOM Level 3 LS applies to DOM Level 2 or newer */

-

-    /** Locator object for this TreeWalker          */

-    private LocatorImpl fLocator = new LocatorImpl();

-

-    /** ErrorHandler */

-    private DOMErrorHandler fErrorHandler = null;

-

-    /** LSSerializerFilter */

-    private LSSerializerFilter fFilter = null;

-

-    /** If the serializer is an instance of a LexicalHandler */

-    private LexicalHandler fLexicalHandler = null;

-

-    private int fWhatToShowFilter;

-

-    /** New Line character to use in serialization */

-    private String fNewLine = null;

-

-    /** DOMConfiguration Properties */

-    private Properties fDOMConfigProperties = null;

-

-    /** Keeps track if we are in an entity reference when entities=true */

-    private boolean fInEntityRef = false;

-

-    /** Stores the version of the XML document to be serialize */

-    private String fXMLVersion = null;

-

-    /** XML Version, default 1.0 */

-    private boolean fIsXMLVersion11 = false;

-

-    /** Is the Node a Level 3 DOM node */

-    private boolean fIsLevel3DOM = false;

-

-    /** DOM Configuration Parameters */

-    private int fFeatures = 0;

-

-    /** Flag indicating whether following text to be processed is raw text          */

-    boolean fNextIsRaw = false;

-

-    // 

-    private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";

-

-    //

-    private static final String XMLNS_PREFIX = "xmlns";

-

-    // 

-    private static final String XML_URI = "http://www.w3.org/XML/1998/namespace";

-

-    // 

-    private static final String XML_PREFIX = "xml";

-

-    /** stores namespaces in scope */

-    protected NamespaceSupport fNSBinder;

-

-    /** stores all namespace bindings on the current element */

-    protected NamespaceSupport fLocalNSBinder;

-    

-    /** stores the current element depth */

-    private int fElementDepth = 0;

-

-    // ***********************************************************************

-    // DOMConfiguration paramter settings 

-    // ***********************************************************************

-    // Parameter canonical-form, true [optional] - NOT SUPPORTED 

-    private final static int CANONICAL = 0x1 << 0;

-

-    // Parameter cdata-sections, true [required] (default)

-    private final static int CDATA = 0x1 << 1;

-

-    // Parameter check-character-normalization, true [optional] - NOT SUPPORTED 

-    private final static int CHARNORMALIZE = 0x1 << 2;

-

-    // Parameter comments, true [required] (default)

-    private final static int COMMENTS = 0x1 << 3;

-

-    // Parameter datatype-normalization, true [optional] - NOT SUPPORTED

-    private final static int DTNORMALIZE = 0x1 << 4;

-

-    // Parameter element-content-whitespace, true [required] (default) - value - false [optional] NOT SUPPORTED

-    private final static int ELEM_CONTENT_WHITESPACE = 0x1 << 5;

-

-    // Parameter entities, true [required] (default)

-    private final static int ENTITIES = 0x1 << 6;

-

-    // Parameter infoset, true [required] (default), false has no effect --> True has no effect for the serializer

-    private final static int INFOSET = 0x1 << 7;

-

-    // Parameter namespaces, true [required] (default)

-    private final static int NAMESPACES = 0x1 << 8;

-

-    // Parameter namespace-declarations, true [required] (default)

-    private final static int NAMESPACEDECLS = 0x1 << 9;

-

-    // Parameter normalize-characters, true [optional] - NOT SUPPORTED

-    private final static int NORMALIZECHARS = 0x1 << 10;

-

-    // Parameter split-cdata-sections, true [required] (default)

-    private final static int SPLITCDATA = 0x1 << 11;

-

-    // Parameter validate, true [optional] - NOT SUPPORTED

-    private final static int VALIDATE = 0x1 << 12;

-

-    // Parameter validate-if-schema, true [optional] - NOT SUPPORTED

-    private final static int SCHEMAVALIDATE = 0x1 << 13;

-

-    // Parameter split-cdata-sections, true [required] (default)

-    private final static int WELLFORMED = 0x1 << 14;

-

-    // Parameter discard-default-content, true [required] (default)

-    // Not sure how this will be used in level 2 Documents

-    private final static int DISCARDDEFAULT = 0x1 << 15;

-

-    // Parameter format-pretty-print, true [optional] 

-    private final static int PRETTY_PRINT = 0x1 << 16;

-

-    // Parameter ignore-unknown-character-denormalizations, true [required] (default)

-    // We currently do not support XML 1.1 character normalization

-    private final static int IGNORE_CHAR_DENORMALIZE = 0x1 << 17;

-

-    // Parameter discard-default-content, true [required] (default)

-    private final static int XMLDECL = 0x1 << 18;

-

-    /**

-     * Constructor.

-     * @param   contentHandler serialHandler The implemention of the SerializationHandler interface

-     */

-    DOM3TreeWalker(

-        SerializationHandler serialHandler,

-        DOMErrorHandler errHandler,

-        LSSerializerFilter filter,

-        String newLine) {

-        fSerializer = serialHandler;

-        //fErrorHandler = errHandler == null ? new DOMErrorHandlerImpl() : errHandler; // Should we be using the default?

-        fErrorHandler = errHandler;

-        fFilter = filter;

-        fLexicalHandler = null;

-        fNewLine = newLine;

-

-        fNSBinder = new NamespaceSupport();

-        fLocalNSBinder = new NamespaceSupport();

-        

-        fDOMConfigProperties = fSerializer.getOutputFormat();

-        fSerializer.setDocumentLocator(fLocator);

-        initProperties(fDOMConfigProperties);

-        

-        try {

-            // Bug see Bugzilla  26741

-            fLocator.setSystemId(

-                System.getProperty("user.dir") + File.separator + "dummy.xsl");

-        } catch (SecurityException se) { // user.dir not accessible from applet

-

-        }

-    }

-

-    /**

-     * Perform a pre-order traversal non-recursive style.  

-     *

-     * Note that TreeWalker assumes that the subtree is intended to represent 

-     * a complete (though not necessarily well-formed) document and, during a 

-     * traversal, startDocument and endDocument will always be issued to the 

-     * SAX listener.

-     *  

-     * @param pos Node in the tree where to start traversal

-     *

-     * @throws TransformerException

-     */

-    public void traverse(Node pos) throws org.xml.sax.SAXException {

-        this.fSerializer.startDocument();

-

-        // Determine if the Node is a DOM Level 3 Core Node.

-        if (pos.getNodeType() != Node.DOCUMENT_NODE) {

-            Document ownerDoc = pos.getOwnerDocument();

-            if (ownerDoc != null

-                && ownerDoc.getImplementation().hasFeature("Core", "3.0")) {

-                fIsLevel3DOM = true;

-            }

-        } else {

-            if (((Document) pos)

-                .getImplementation()

-                .hasFeature("Core", "3.0")) {

-                fIsLevel3DOM = true;

-            }

-        }

-

-        if (fSerializer instanceof LexicalHandler) {

-            fLexicalHandler = ((LexicalHandler) this.fSerializer);

-        }

-

-        if (fFilter != null)

-            fWhatToShowFilter = fFilter.getWhatToShow();

-

-        Node top = pos;

-

-        while (null != pos) {

-            startNode(pos);

-

-            Node nextNode = null;

-

-            nextNode = pos.getFirstChild();

-

-            while (null == nextNode) {

-                endNode(pos);

-

-                if (top.equals(pos))

-                    break;

-

-                nextNode = pos.getNextSibling();

-

-                if (null == nextNode) {

-                    pos = pos.getParentNode();

-

-                    if ((null == pos) || (top.equals(pos))) {

-                        if (null != pos)

-                            endNode(pos);

-

-                        nextNode = null;

-

-                        break;

-                    }

-                }

-            }

-

-            pos = nextNode;

-        }

-        this.fSerializer.endDocument();

-    }

-

-    /**

-     * Perform a pre-order traversal non-recursive style.

-     

-     * Note that TreeWalker assumes that the subtree is intended to represent 

-     * a complete (though not necessarily well-formed) document and, during a 

-     * traversal, startDocument and endDocument will always be issued to the 

-     * SAX listener.

-     *

-     * @param pos Node in the tree where to start traversal

-     * @param top Node in the tree where to end traversal

-     *

-     * @throws TransformerException

-     */

-    public void traverse(Node pos, Node top) throws org.xml.sax.SAXException {

-

-        this.fSerializer.startDocument();

-

-        // Determine if the Node is a DOM Level 3 Core Node.

-        if (pos.getNodeType() != Node.DOCUMENT_NODE) {

-            Document ownerDoc = pos.getOwnerDocument();

-            if (ownerDoc != null

-                && ownerDoc.getImplementation().hasFeature("Core", "3.0")) {

-                fIsLevel3DOM = true;

-            }

-        } else {

-            if (((Document) pos)

-                .getImplementation()

-                .hasFeature("Core", "3.0")) {

-                fIsLevel3DOM = true;

-            }

-        }

-

-        if (fSerializer instanceof LexicalHandler) {

-            fLexicalHandler = ((LexicalHandler) this.fSerializer);

-        }

-

-        if (fFilter != null)

-            fWhatToShowFilter = fFilter.getWhatToShow();

-

-        while (null != pos) {

-            startNode(pos);

-

-            Node nextNode = null;

-

-            nextNode = pos.getFirstChild();

-

-            while (null == nextNode) {

-                endNode(pos);

-

-                if ((null != top) && top.equals(pos))

-                    break;

-

-                nextNode = pos.getNextSibling();

-

-                if (null == nextNode) {

-                    pos = pos.getParentNode();

-

-                    if ((null == pos) || ((null != top) && top.equals(pos))) {

-                        nextNode = null;

-

-                        break;

-                    }

-                }

-            }

-

-            pos = nextNode;

-        }

-        this.fSerializer.endDocument();

-    }

-

-    /**

-     * Optimized dispatch of characters.

-     */

-    private final void dispatachChars(Node node)

-        throws org.xml.sax.SAXException {

-        if (fSerializer != null) {

-            this.fSerializer.characters(node);

-        } else {

-            String data = ((Text) node).getData();

-            this.fSerializer.characters(data.toCharArray(), 0, data.length());

-        }

-    }

-

-    /**

-     * Start processing given node

-     *

-     * @param node Node to process

-     *

-     * @throws org.xml.sax.SAXException

-     */

-    protected void startNode(Node node) throws org.xml.sax.SAXException {

-        if (node instanceof Locator) {

-            Locator loc = (Locator) node;

-            fLocator.setColumnNumber(loc.getColumnNumber());

-            fLocator.setLineNumber(loc.getLineNumber());

-            fLocator.setPublicId(loc.getPublicId());

-            fLocator.setSystemId(loc.getSystemId());

-        } else {

-            fLocator.setColumnNumber(0);

-            fLocator.setLineNumber(0);

-        }

-

-        switch (node.getNodeType()) {

-            case Node.DOCUMENT_TYPE_NODE :

-                serializeDocType((DocumentType) node, true);

-                break;

-            case Node.COMMENT_NODE :

-                serializeComment((Comment) node);

-                break;

-            case Node.DOCUMENT_FRAGMENT_NODE :

-                // Children are traversed

-                break;

-            case Node.DOCUMENT_NODE :

-                break;

-            case Node.ELEMENT_NODE :

-                serializeElement((Element) node, true);

-                break;

-            case Node.PROCESSING_INSTRUCTION_NODE :

-                serializePI((ProcessingInstruction) node);

-                break;

-            case Node.CDATA_SECTION_NODE :

-                serializeCDATASection((CDATASection) node);

-                break;

-            case Node.TEXT_NODE :

-                serializeText((Text) node);

-                break;

-            case Node.ENTITY_REFERENCE_NODE :

-                serializeEntityReference((EntityReference) node, true);

-                break;

-            default :

-                }

-    }

-

-    /**

-     * End processing of given node 

-     *

-     *

-     * @param node Node we just finished processing

-     *

-     * @throws org.xml.sax.SAXException

-     */

-    protected void endNode(Node node) throws org.xml.sax.SAXException {

-

-        switch (node.getNodeType()) {

-            case Node.DOCUMENT_NODE :

-                break;

-            case Node.DOCUMENT_TYPE_NODE :

-                serializeDocType((DocumentType) node, false);

-                break;

-            case Node.ELEMENT_NODE :

-                serializeElement((Element) node, false);

-                break;

-            case Node.CDATA_SECTION_NODE :

-                break;

-            case Node.ENTITY_REFERENCE_NODE :

-                serializeEntityReference((EntityReference) node, false);

-                break;

-            default :

-                }

-    }

-

-    // ***********************************************************************

-    // Node serialization methods

-    // ***********************************************************************

-    /**

-     * Applies a filter on the node to serialize

-     * 

-     * @param node The Node to serialize

-     * @return True if the node is to be serialized else false if the node 

-     *         is to be rejected or skipped. 

-     */

-    protected boolean applyFilter(Node node, int nodeType) {

-        if (fFilter != null && (fWhatToShowFilter & nodeType) != 0) {

-

-            short code = fFilter.acceptNode(node);

-            switch (code) {

-                case NodeFilter.FILTER_REJECT :

-                case NodeFilter.FILTER_SKIP :

-                    return false; // skip the node

-                default : // fall through..

-            }

-        }

-        return true;

-    }

-

-    /**

-     * Serializes a Document Type Node.

-     * 

-     * @param node The Docuemnt Type Node to serialize

-     * @param bStart Invoked at the start or end of node.  Default true. 

-     */

-    protected void serializeDocType(DocumentType node, boolean bStart)

-        throws SAXException {

-        // The DocType and internalSubset can not be modified in DOM and is

-        // considered to be well-formed as the outcome of successful parsing.

-        String docTypeName = node.getNodeName();

-        String publicId = node.getPublicId();

-        String systemId = node.getSystemId();

-        String internalSubset = node.getInternalSubset();

-

-        //DocumentType nodes are never passed to the filter

-        

-        if (internalSubset != null && !"".equals(internalSubset)) {

-

-            if (bStart) {

-                try {

-                    // The Serializer does not provide a way to write out the

-                    // DOCTYPE internal subset via an event call, so we write it

-                    // out here.

-                    Writer writer = fSerializer.getWriter();

-                    StringBuffer dtd = new StringBuffer();

-

-                    dtd.append("<!DOCTYPE ");

-                    dtd.append(docTypeName);

-                    if (null != publicId) {

-                        dtd.append(" PUBLIC \"");

-                        dtd.append(publicId);

-                        dtd.append('\"');

-                    }

-

-                    if (null != systemId) {

-                        if (null == publicId) {

-                            dtd.append(" SYSTEM \"");

-                        } else {

-                            dtd.append(" \"");

-                        }    

-                        dtd.append(systemId);

-                        dtd.append('\"');

-                    }

-                    

-                    dtd.append(" [ ");

-                    

-                    dtd.append(fNewLine);

-                    dtd.append(internalSubset);

-                    dtd.append("]>");

-                    dtd.append(new String(fNewLine));

-                    

-                    writer.write(dtd.toString());

-                    writer.flush();

-                    

-                } catch (IOException e) {

-                    throw new SAXException(Utils.messages.createMessage(

-                            MsgKey.ER_WRITING_INTERNAL_SUBSET, null), e);

-                }

-            } // else if !bStart do nothing

-            

-        } else {

-            

-            if (bStart) {

-                if (fLexicalHandler != null) {

-                    fLexicalHandler.startDTD(docTypeName, publicId, systemId);

-                }

-            } else {

-                if (fLexicalHandler != null) {

-                    fLexicalHandler.endDTD();

-                }

-            }

-        }

-    }

-

-    /**

-     * Serializes a Comment Node.

-     * 

-     * @param node The Comment Node to serialize

-     */

-    protected void serializeComment(Comment node) throws SAXException {

-        // comments=true

-        if ((fFeatures & COMMENTS) != 0) {

-            String data = node.getData();

-

-            // well-formed=true

-            if ((fFeatures & WELLFORMED) != 0) {

-                isCommentWellFormed(data);

-            }

-

-            if (fLexicalHandler != null) {

-                // apply the LSSerializer filter after the operations requested by the 

-                // DOMConfiguration parameters have been applied 

-                if (!applyFilter(node, NodeFilter.SHOW_COMMENT)) {

-                    return;

-                }

-

-                fLexicalHandler.comment(data.toCharArray(), 0, data.length());

-            }

-        }

-    }

-

-    /**

-     * Serializes an Element Node.

-     * 

-     * @param node The Element Node to serialize

-     * @param bStart Invoked at the start or end of node.   

-     */

-    protected void serializeElement(Element node, boolean bStart)

-        throws SAXException {

-        if (bStart) {

-            fElementDepth++;

-

-            // We use the Xalan specific startElement and starPrefixMapping calls 

-            // (and addAttribute and namespaceAfterStartElement) as opposed to

-            // SAX specific, for performance reasons as they reduce the overhead

-            // of creating an AttList object upfront.

-

-            // well-formed=true

-            if ((fFeatures & WELLFORMED) != 0) {

-                isElementWellFormed(node);

-            }

-

-            // REVISIT: We apply the LSSerializer filter for elements before

-            // namesapce fixup

-            if (!applyFilter(node, NodeFilter.SHOW_ELEMENT)) {

-                return;

-            }

-

-            // namespaces=true, record and fixup namspaced element

-            if ((fFeatures & NAMESPACES) != 0) {

-            	fNSBinder.pushContext();

-            	fLocalNSBinder.reset();

-            	

-                recordLocalNSDecl(node);

-                fixupElementNS(node);

-            }

-

-            // Namespace normalization

-            fSerializer.startElement(

-            		node.getNamespaceURI(),

-                    node.getLocalName(),

-                    node.getNodeName());

-

-            serializeAttList(node);

-            

-        } else {

-        	fElementDepth--;

-

-            // apply the LSSerializer filter

-            if (!applyFilter(node, NodeFilter.SHOW_ELEMENT)) {

-                return;

-            }

-

-            this.fSerializer.endElement(

-            	node.getNamespaceURI(),

-                node.getLocalName(),

-                node.getNodeName());

-            // since endPrefixMapping was not used by SerializationHandler it was removed

-            // for performance reasons.

-

-            if ((fFeatures & NAMESPACES) != 0 ) {

-                    fNSBinder.popContext();

-            }

-            

-        }

-    }

-

-    /**

-     * Serializes the Attr Nodes of an Element.

-     * 

-     * @param node The OwnerElement whose Attr Nodes are to be serialized.

-     */

-    protected void serializeAttList(Element node) throws SAXException {

-        NamedNodeMap atts = node.getAttributes();

-        int nAttrs = atts.getLength();

-

-        for (int i = 0; i < nAttrs; i++) {

-            Node attr = atts.item(i);

-

-            String localName = attr.getLocalName();

-            String attrName = attr.getNodeName();

-            String attrPrefix = attr.getPrefix() == null ? "" : attr.getPrefix();

-            String attrValue = attr.getNodeValue();

-

-            // Determine the Attr's type.

-            String type = null;

-            if (fIsLevel3DOM) {

-                type = ((Attr) attr).getSchemaTypeInfo().getTypeName();

-            }

-            type = type == null ? "CDATA" : type;

-

-            String attrNS = attr.getNamespaceURI();

-            if (attrNS !=null && attrNS.length() == 0) {

-            	attrNS=null;

-                // we must remove prefix for this attribute

-            	attrName=attr.getLocalName();

-            }

-

-            boolean isSpecified = ((Attr) attr).getSpecified();

-            boolean addAttr = true;

-            boolean applyFilter = false;

-            boolean xmlnsAttr =

-                attrName.equals("xmlns") || attrName.startsWith("xmlns:");

-

-            // well-formed=true

-            if ((fFeatures & WELLFORMED) != 0) {

-                isAttributeWellFormed(attr);

-            }

-            

-            //-----------------------------------------------------------------

-            // start Attribute namespace fixup

-            //-----------------------------------------------------------------

-            // namespaces=true, normalize all non-namespace attributes

-            // Step 3. Attribute

-            if ((fFeatures & NAMESPACES) != 0 && !xmlnsAttr) {

-           	

-        		// If the Attr has a namespace URI

-        		if (attrNS != null) {

-        			attrPrefix = attrPrefix == null ? "" : attrPrefix;

-

-        			String declAttrPrefix = fNSBinder.getPrefix(attrNS);

-        			String declAttrNS = fNSBinder.getURI(attrPrefix);

-        			

-        			// attribute has no prefix (default namespace decl does not apply to

-        			// attributes)

-        			// OR

-        			// attribute prefix is not declared

-        			// OR

-        			// conflict: attribute has a prefix that conflicts with a binding

-        			if ("".equals(attrPrefix) || "".equals(declAttrPrefix)

-        					|| !attrPrefix.equals(declAttrPrefix)) {

-

-        				// namespaceURI matches an in scope declaration of one or

-        				// more prefixes

-        				if (declAttrPrefix != null && !"".equals(declAttrPrefix)) {

-        					// pick the prefix that was found and change attribute's

-        					// prefix and nodeName.

-        					attrPrefix = declAttrPrefix;

-        					

-        					if (declAttrPrefix.length() > 0 ) { 

-        						attrName = declAttrPrefix + ":" + localName;

-        					} else {

-        						attrName = localName;

-        					}	

-        				} else {

-        					// The current prefix is not null and it has no in scope

-        					// declaration

-        					if (attrPrefix != null && !"".equals(attrPrefix)

-        							&& declAttrNS == null) {

-        						// declare this prefix

-        						if ((fFeatures & NAMESPACEDECLS) != 0) {

-        							fSerializer.addAttribute(XMLNS_URI, attrPrefix,

-        									XMLNS_PREFIX + ":" + attrPrefix, "CDATA",

-        									attrNS);

-        							fNSBinder.declarePrefix(attrPrefix, attrNS);

-        							fLocalNSBinder.declarePrefix(attrPrefix, attrNS);

-        						}

-        					} else {

-        						// find a prefix following the pattern "NS" +index

-        						// (starting at 1)

-        						// make sure this prefix is not declared in the current

-        						// scope.

-        						int counter = 1;

-        						attrPrefix = "NS" + counter++;

-

-        						while (fLocalNSBinder.getURI(attrPrefix) != null) {

-        							attrPrefix = "NS" + counter++;

-        						}

-        						// change attribute's prefix and Name

-        						attrName = attrPrefix + ":" + localName;

-        						

-        						// create a local namespace declaration attribute

-        						// Add the xmlns declaration attribute

-        						if ((fFeatures & NAMESPACEDECLS) != 0) {

-                                       							

-        							fSerializer.addAttribute(XMLNS_URI, attrPrefix,

-        									XMLNS_PREFIX + ":" + attrPrefix, "CDATA",

-        									attrNS);

-            						fNSBinder.declarePrefix(attrPrefix, attrNS);

-            						fLocalNSBinder.declarePrefix(attrPrefix, attrNS);

-        						}

-        					}

-        				}

-        			}

-

-        		} else { // if the Attr has no namespace URI

-        			// Attr has no localName

-        			if (localName == null) {

-        				// DOM Level 1 node!

-        				String msg = Utils.messages.createMessage(

-        						MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,

-        						new Object[] { attrName });

-

-        				if (fErrorHandler != null) {

-        					fErrorHandler

-        							.handleError(new DOMErrorImpl(

-        									DOMError.SEVERITY_ERROR, msg,

-        									MsgKey.ER_NULL_LOCAL_ELEMENT_NAME, null,

-        									null, null));

-        				}

-

-        			} else { // uri=null and no colon

-        				// attr has no namespace URI and no prefix

-        				// no action is required, since attrs don't use default

-        			}

-        		}

-

-            }

-

-            

-            // discard-default-content=true

-            // Default attr's are not passed to the filter and this contraint

-            // is applied only when discard-default-content=true 

-            // What about default xmlns attributes???? check for xmlnsAttr

-            if ((((fFeatures & DISCARDDEFAULT) != 0) && isSpecified)

-                || ((fFeatures & DISCARDDEFAULT) == 0)) {

-                applyFilter = true;

-            } else {

-            	addAttr = false;

-            }

-

-            if (applyFilter) {

-                // apply the filter for Attributes that are not default attributes

-                // or namespace decl attributes

-                if (fFilter != null

-                    && (fFilter.getWhatToShow() & NodeFilter.SHOW_ATTRIBUTE)

-                        != 0) {

-

-                    if (!xmlnsAttr) {

-                        short code = fFilter.acceptNode(attr);

-                        switch (code) {

-                            case NodeFilter.FILTER_REJECT :

-                            case NodeFilter.FILTER_SKIP :

-                                addAttr = false;

-                                break;

-                            default : //fall through..

-                        }

-                    }

-                }

-            }

-

-            // if the node is a namespace node

-            if (addAttr && xmlnsAttr) {

-                // If namespace-declarations=true, add the node , else don't add it

-                if ((fFeatures & NAMESPACEDECLS) != 0) {

-               		// The namespace may have been fixed up, in that case don't add it.

-                	if (localName != null && !"".equals(localName)) {

-                		fSerializer.addAttribute(attrNS, localName, attrName, type, attrValue);

-                	} 

-                }

-            } else if (

-                addAttr && !xmlnsAttr) { // if the node is not a namespace node

-                // If namespace-declarations=true, add the node with the Attr nodes namespaceURI

-                // else add the node setting it's namespace to null or else the serializer will later

-                // attempt to add a xmlns attr for the prefixed attribute

-                if (((fFeatures & NAMESPACEDECLS) != 0) && (attrNS != null)) {

-                    fSerializer.addAttribute(

-                        attrNS,

-                        localName,

-                        attrName,

-                        type,

-                        attrValue);

-                } else {

-                    fSerializer.addAttribute(

-                        "",

-                        localName,

-                        attrName,

-                        type,

-                        attrValue);

-                }

-            }

-

-            // 

-            if (xmlnsAttr && ((fFeatures & NAMESPACEDECLS) != 0)) {

-                int index;

-                // Use "" instead of null, as Xerces likes "" for the 

-                // name of the default namespace.  Fix attributed 

-                // to "Steven Murray" <smurray@ebt.com>.

-                String prefix =

-                    (index = attrName.indexOf(":")) < 0

-                        ? ""

-                        : attrName.substring(index + 1);

-

-                if (!"".equals(prefix)) {

-                    fSerializer.namespaceAfterStartElement(prefix, attrValue);

-                }

-            }

-        }

-        

-    }

-   

-    /**

-     * Serializes an ProcessingInstruction Node.

-     * 

-     * @param node The ProcessingInstruction Node to serialize

-     */

-    protected void serializePI(ProcessingInstruction node)

-        throws SAXException {

-        ProcessingInstruction pi = node;

-        String name = pi.getNodeName();

-

-        // well-formed=true

-        if ((fFeatures & WELLFORMED) != 0) {

-            isPIWellFormed(node);

-        }

-

-        // apply the LSSerializer filter

-        if (!applyFilter(node, NodeFilter.SHOW_PROCESSING_INSTRUCTION)) {

-            return;

-        }

-

-        // String data = pi.getData();

-        if (name.equals("xslt-next-is-raw")) {

-            fNextIsRaw = true;

-        } else {

-            this.fSerializer.processingInstruction(name, pi.getData());

-        }

-    }

-

-    /**

-     * Serializes an CDATASection Node.

-     * 

-     * @param node The CDATASection Node to serialize

-     */

-    protected void serializeCDATASection(CDATASection node)

-        throws SAXException {

-        // well-formed=true

-        if ((fFeatures & WELLFORMED) != 0) {

-            isCDATASectionWellFormed(node);

-        }

-

-        // cdata-sections = true

-        if ((fFeatures & CDATA) != 0) {

-

-            // split-cdata-sections = true

-            // Assumption: This parameter has an effect only when

-			// cdata-sections=true

-            // ToStream, by default splits cdata-sections. Hence the check

-			// below.

-            String nodeValue = node.getNodeValue();

-            int endIndex = nodeValue.indexOf("]]>");

-            if ((fFeatures & SPLITCDATA) != 0) {

-                if (endIndex >= 0) {

-                    // The first node split will contain the ]] markers

-                    String relatedData = nodeValue.substring(0, endIndex + 2);

-

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_CDATA_SECTIONS_SPLIT,

-                            null);

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_WARNING,

-                                msg,

-                                MsgKey.ER_CDATA_SECTIONS_SPLIT,

-                                null,

-                                relatedData,

-                                null));

-                    }

-                }

-            } else {

-                if (endIndex >= 0) {

-                    // The first node split will contain the ]] markers 

-                    String relatedData = nodeValue.substring(0, endIndex + 2);

-

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_CDATA_SECTIONS_SPLIT,

-                            null);

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_ERROR,

-                                msg,

-                                MsgKey.ER_CDATA_SECTIONS_SPLIT));

-                    }

-                    // Report an error and return.  What error???

-                    return;

-                }

-            }

-

-            // apply the LSSerializer filter

-            if (!applyFilter(node, NodeFilter.SHOW_CDATA_SECTION)) {

-                return;

-            }

-

-            // splits the cdata-section

-            if (fLexicalHandler != null) {

-                fLexicalHandler.startCDATA();

-            }

-            dispatachChars(node);

-            if (fLexicalHandler != null) {

-                fLexicalHandler.endCDATA();

-            }

-        } else {

-            dispatachChars(node);

-        }

-    }

-

-    /**

-     * Serializes an Text Node.

-     * 

-     * @param node The Text Node to serialize

-     */

-    protected void serializeText(Text node) throws SAXException {

-        if (fNextIsRaw) {

-            fNextIsRaw = false;

-            fSerializer.processingInstruction(

-                javax.xml.transform.Result.PI_DISABLE_OUTPUT_ESCAPING,

-                "");

-            dispatachChars(node);

-            fSerializer.processingInstruction(

-                javax.xml.transform.Result.PI_ENABLE_OUTPUT_ESCAPING,

-                "");

-        } else {

-            // keep track of dispatch or not to avoid duplicaiton of filter code

-            boolean bDispatch = false;

-

-            // well-formed=true

-            if ((fFeatures & WELLFORMED) != 0) {

-                isTextWellFormed(node);

-            }

-

-            // if the node is whitespace

-            // Determine the Attr's type.

-            boolean isElementContentWhitespace = false;

-            if (fIsLevel3DOM) {

-                isElementContentWhitespace =

-                       node.isElementContentWhitespace();

-            }

-

-            if (isElementContentWhitespace) {

-                // element-content-whitespace=true

-                if ((fFeatures & ELEM_CONTENT_WHITESPACE) != 0) {

-                    bDispatch = true;

-                }

-            } else {

-                bDispatch = true;

-            }

-

-            // apply the LSSerializer filter

-            if (!applyFilter(node, NodeFilter.SHOW_TEXT)) {

-                return;

-            }

-

-            if (bDispatch) {

-                dispatachChars(node);

-            }

-        }

-    }

-

-    /**

-     * Serializes an EntityReference Node.

-     * 

-     * @param node The EntityReference Node to serialize

-     * @param bStart Inicates if called from start or endNode 

-     */

-    protected void serializeEntityReference(

-        EntityReference node,

-        boolean bStart)

-        throws SAXException {

-        if (bStart) {

-            EntityReference eref = node;

-            // entities=true

-            if ((fFeatures & ENTITIES) != 0) {

-                

-                // perform well-formedness and other checking only if 

-                // entities = true

-

-                // well-formed=true

-                if ((fFeatures & WELLFORMED) != 0) {

-                    isEntityReferneceWellFormed(node);

-                }

-

-                // check "unbound-prefix-in-entity-reference" [fatal] 

-                // Raised if the configuration parameter "namespaces" is set to true

-                if ((fFeatures & NAMESPACES) != 0) {

-                    checkUnboundPrefixInEntRef(node);

-                }

-

-                // The filter should not apply in this case, since the

-                // EntityReference is not being expanded.

-                // should we pass entity reference nodes to the filter???

-            } 

-            

-            if (fLexicalHandler != null) {

-

-                // startEntity outputs only Text but not Element, Attr, Comment 

-                // and PI child nodes.  It does so by setting the m_inEntityRef 

-                // in ToStream and using this to decide if a node is to be 

-                // serialized or not.

-                fLexicalHandler.startEntity(eref.getNodeName());

-            } 

-

-        } else {

-            EntityReference eref = node;

-            // entities=true or false, 

-            if (fLexicalHandler != null) {

-                fLexicalHandler.endEntity(eref.getNodeName());

-            }

-        }

-    }

-

-    

-    // ***********************************************************************

-    // Methods to check well-formedness

-    // ***********************************************************************

-    /**

-     * Taken from org.apache.xerces.dom.CoreDocumentImpl

-     * 

-     * Check the string against XML's definition of acceptable names for

-     * elements and attributes and so on using the XMLCharacterProperties

-     * utility class

-     */

-    protected boolean isXMLName(String s, boolean xml11Version) {

-

-        if (s == null) {

-            return false;

-        }

-        if (!xml11Version)

-            return XMLChar.isValidName(s);

-        else

-            return XML11Char.isXML11ValidName(s);

-    }

-

-    /**

-     * Taken from org.apache.xerces.dom.CoreDocumentImpl

-     *  

-     * Checks if the given qualified name is legal with respect

-     * to the version of XML to which this document must conform.

-     *

-     * @param prefix prefix of qualified name

-     * @param local local part of qualified name

-     */

-    protected boolean isValidQName(

-        String prefix,

-        String local,

-        boolean xml11Version) {

-

-        // check that both prefix and local part match NCName

-        if (local == null)

-            return false;

-        boolean validNCName = false;

-

-        if (!xml11Version) {

-            validNCName =

-                (prefix == null || XMLChar.isValidNCName(prefix))

-                    && XMLChar.isValidNCName(local);

-        } else {

-            validNCName =

-                (prefix == null || XML11Char.isXML11ValidNCName(prefix))

-                    && XML11Char.isXML11ValidNCName(local);

-        }

-

-        return validNCName;

-    }

-

-    /**

-     * Checks if a XML character is well-formed

-     * 

-     * @param characters A String of characters to be checked for Well-Formedness

-     * @param refInvalidChar A reference to the character to be returned that was determined invalid. 

-     */

-    protected boolean isWFXMLChar(String chardata, Character refInvalidChar) {

-        if (chardata == null || (chardata.length() == 0)) {

-            return true;

-        }

-

-        char[] dataarray = chardata.toCharArray();

-        int datalength = dataarray.length;

-

-        // version of the document is XML 1.1

-        if (fIsXMLVersion11) {

-            //we need to check all characters as per production rules of XML11

-            int i = 0;

-            while (i < datalength) {

-                if (XML11Char.isXML11Invalid(dataarray[i++])) {

-                    // check if this is a supplemental character

-                    char ch = dataarray[i - 1];

-                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {

-                        char ch2 = dataarray[i++];

-                        if (XMLChar.isLowSurrogate(ch2)

-                            && XMLChar.isSupplemental(

-                                XMLChar.supplemental(ch, ch2))) {

-                            continue;

-                        }

-                    }

-                    // Reference to invalid character which is returned

-                    refInvalidChar = new Character(ch);

-                    return false;

-                }

-            }

-        } // version of the document is XML 1.0

-        else {

-            // we need to check all characters as per production rules of XML 1.0

-            int i = 0;

-            while (i < datalength) {

-                if (XMLChar.isInvalid(dataarray[i++])) {

-                    // check if this is a supplemental character

-                    char ch = dataarray[i - 1];

-                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {

-                        char ch2 = dataarray[i++];

-                        if (XMLChar.isLowSurrogate(ch2)

-                            && XMLChar.isSupplemental(

-                                XMLChar.supplemental(ch, ch2))) {

-                            continue;

-                        }

-                    }

-                    // Reference to invalid character which is returned                    

-                    refInvalidChar = new Character(ch);

-                    return false;

-                }

-            }

-        } // end-else fDocument.isXMLVersion()

-

-        return true;

-    } // isXMLCharWF

-

-    /**

-     * Checks if a XML character is well-formed.  If there is a problem with

-     * the character a non-null Character is returned else null is returned.

-     * 

-     * @param characters A String of characters to be checked for Well-Formedness

-     * @return Character A reference to the character to be returned that was determined invalid. 

-     */

-    protected Character isWFXMLChar(String chardata) {

-    	Character refInvalidChar;

-        if (chardata == null || (chardata.length() == 0)) {

-            return null;

-        }

-

-        char[] dataarray = chardata.toCharArray();

-        int datalength = dataarray.length;

-

-        // version of the document is XML 1.1

-        if (fIsXMLVersion11) {

-            //we need to check all characters as per production rules of XML11

-            int i = 0;

-            while (i < datalength) {

-                if (XML11Char.isXML11Invalid(dataarray[i++])) {

-                    // check if this is a supplemental character

-                    char ch = dataarray[i - 1];

-                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {

-                        char ch2 = dataarray[i++];

-                        if (XMLChar.isLowSurrogate(ch2)

-                            && XMLChar.isSupplemental(

-                                XMLChar.supplemental(ch, ch2))) {

-                            continue;

-                        }

-                    }

-                    // Reference to invalid character which is returned

-                    refInvalidChar = new Character(ch);

-                    return refInvalidChar;

-                }

-            }

-        } // version of the document is XML 1.0

-        else {

-            // we need to check all characters as per production rules of XML 1.0

-            int i = 0;

-            while (i < datalength) {

-                if (XMLChar.isInvalid(dataarray[i++])) {

-                    // check if this is a supplemental character

-                    char ch = dataarray[i - 1];

-                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {

-                        char ch2 = dataarray[i++];

-                        if (XMLChar.isLowSurrogate(ch2)

-                            && XMLChar.isSupplemental(

-                                XMLChar.supplemental(ch, ch2))) {

-                            continue;

-                        }

-                    }

-                    // Reference to invalid character which is returned                    

-                    refInvalidChar = new Character(ch);

-                    return refInvalidChar;

-                }

-            }

-        } // end-else fDocument.isXMLVersion()

-

-        return null;

-    } // isXMLCharWF

-

-    /**

-     * Checks if a comment node is well-formed

-     * 

-     * @param data The contents of the comment node

-     * @return a boolean indiacating if the comment is well-formed or not.

-     */

-    protected void isCommentWellFormed(String data) {

-        if (data == null || (data.length() == 0)) {

-            return;

-        }

-

-        char[] dataarray = data.toCharArray();

-        int datalength = dataarray.length;

-

-        // version of the document is XML 1.1

-        if (fIsXMLVersion11) {

-            // we need to check all chracters as per production rules of XML11

-            int i = 0;

-            while (i < datalength) {

-                char c = dataarray[i++];

-                if (XML11Char.isXML11Invalid(c)) {

-                    // check if this is a supplemental character

-                    if (XMLChar.isHighSurrogate(c) && i < datalength) {

-                        char c2 = dataarray[i++];

-                        if (XMLChar.isLowSurrogate(c2)

-                            && XMLChar.isSupplemental(

-                                XMLChar.supplemental(c, c2))) {

-                            continue;

-                        }

-                    }

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,

-                            new Object[] { new Character(c)});

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_FATAL_ERROR,

-                                msg,

-                                MsgKey.ER_WF_INVALID_CHARACTER,

-                                null,

-                                null,

-                                null));

-                    }

-                } else if (c == '-' && i < datalength && dataarray[i] == '-') {

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_WF_DASH_IN_COMMENT,

-                            null);

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_FATAL_ERROR,

-                                msg,

-                                MsgKey.ER_WF_INVALID_CHARACTER,

-                                null,

-                                null,

-                                null));

-                    }

-                }

-            }

-        } // version of the document is XML 1.0

-        else {

-            // we need to check all chracters as per production rules of XML 1.0

-            int i = 0;

-            while (i < datalength) {

-                char c = dataarray[i++];

-                if (XMLChar.isInvalid(c)) {

-                    // check if this is a supplemental character

-                    if (XMLChar.isHighSurrogate(c) && i < datalength) {

-                        char c2 = dataarray[i++];

-                        if (XMLChar.isLowSurrogate(c2)

-                            && XMLChar.isSupplemental(

-                                XMLChar.supplemental(c, c2))) {

-                            continue;

-                        }

-                    }

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,

-                            new Object[] { new Character(c)});

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_FATAL_ERROR,

-                                msg,

-                                MsgKey.ER_WF_INVALID_CHARACTER,

-                                null,

-                                null,

-                                null));

-                    }

-                } else if (c == '-' && i < datalength && dataarray[i] == '-') {

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_WF_DASH_IN_COMMENT,

-                            null);

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_FATAL_ERROR,

-                                msg,

-                                MsgKey.ER_WF_INVALID_CHARACTER,

-                                null,

-                                null,

-                                null));

-                    }

-                }

-            }

-        }

-        return;

-    }

-

-    /**

-     * Checks if an element node is well-formed, by checking its Name for well-formedness.

-     * 

-     * @param data The contents of the comment node

-     * @return a boolean indiacating if the comment is well-formed or not.

-     */

-    protected void isElementWellFormed(Node node) {

-        boolean isNameWF = false;

-        if ((fFeatures & NAMESPACES) != 0) {

-            isNameWF =

-                isValidQName(

-                    node.getPrefix(),

-                    node.getLocalName(),

-                    fIsXMLVersion11);

-        } else {

-            isNameWF = isXMLName(node.getNodeName(), fIsXMLVersion11);

-        }

-

-        if (!isNameWF) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                    new Object[] { "Element", node.getNodeName()});

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                        null,

-                        null,

-                        null));

-            }

-        }

-    }

-

-    /**

-     * Checks if an attr node is well-formed, by checking it's Name and value

-     * for well-formedness.

-     * 

-     * @param data The contents of the comment node

-     * @return a boolean indiacating if the comment is well-formed or not.

-     */

-    protected void isAttributeWellFormed(Node node) {

-        boolean isNameWF = false;

-        if ((fFeatures & NAMESPACES) != 0) {

-            isNameWF =

-                isValidQName(

-                    node.getPrefix(),

-                    node.getLocalName(),

-                    fIsXMLVersion11);

-        } else {

-            isNameWF = isXMLName(node.getNodeName(), fIsXMLVersion11);

-        }

-

-        if (!isNameWF) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                    new Object[] { "Attr", node.getNodeName()});

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                        null,

-                        null,

-                        null));

-            }

-        }

-

-        // Check the Attr's node value

-        // WFC: No < in Attribute Values

-        String value = node.getNodeValue();

-        if (value.indexOf('<') >= 0) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_LT_IN_ATTVAL,

-                    new Object[] {

-                        ((Attr) node).getOwnerElement().getNodeName(),

-                        node.getNodeName()});

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_LT_IN_ATTVAL,

-                        null,

-                        null,

-                        null));

-            }

-        }

-

-        // we need to loop through the children of attr nodes and check their values for

-        // well-formedness  

-        NodeList children = node.getChildNodes();

-        for (int i = 0; i < children.getLength(); i++) {

-            Node child = children.item(i);

-            // An attribute node with no text or entity ref child for example

-            // doc.createAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:ns");

-            // followes by

-            // element.setAttributeNodeNS(attribute);

-            // can potentially lead to this situation.  If the attribute

-            // was a prefix Namespace attribute declaration then then DOM Core 

-            // should have some exception defined for this.

-            if (child == null) {

-                // we should probably report an error

-                continue;

-            }

-            switch (child.getNodeType()) {

-                case Node.TEXT_NODE :

-                    isTextWellFormed((Text) child);

-                    break;

-                case Node.ENTITY_REFERENCE_NODE :

-                    isEntityReferneceWellFormed((EntityReference) child);

-                    break;

-                default :

-            }

-        }

-

-        // TODO:

-        // WFC: Check if the attribute prefix is bound to 

-        // http://www.w3.org/2000/xmlns/  

-

-        // WFC: Unique Att Spec

-        // Perhaps pass a seen boolean value to this method.  serializeAttList will determine

-        // if the attr was seen before.

-    }

-

-    /**

-     * Checks if a PI node is well-formed, by checking it's Name and data

-     * for well-formedness.

-     * 

-     * @param data The contents of the comment node

-     */

-    protected void isPIWellFormed(ProcessingInstruction node) {

-        // Is the PI Target a valid XML name

-        if (!isXMLName(node.getNodeName(), fIsXMLVersion11)) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                    new Object[] { "ProcessingInstruction", node.getTarget()});

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                        null,

-                        null,

-                        null));

-            }

-        }

-

-        // Does the PI Data carry valid XML characters

-

-        // REVISIT: Should we check if the PI DATA contains a ?> ???

-        Character invalidChar = isWFXMLChar(node.getData());

-        if (invalidChar != null) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,

-                    new Object[] { Integer.toHexString(Character.getNumericValue(invalidChar.charValue())) });

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER,

-                        null,

-                        null,

-                        null));

-            }

-        }

-    }

-

-    /**

-     * Checks if an CDATASection node is well-formed, by checking it's data

-     * for well-formedness.  Note that the presence of a CDATA termination mark

-     * in the contents of a CDATASection is handled by the parameter 

-     * spli-cdata-sections

-     * 

-     * @param data The contents of the comment node

-     */

-    protected void isCDATASectionWellFormed(CDATASection node) {

-        // Does the data valid XML character data        

-        Character invalidChar = isWFXMLChar(node.getData());

-        //if (!isWFXMLChar(node.getData(), invalidChar)) {

-        if (invalidChar != null) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,

-                    new Object[] { Integer.toHexString(Character.getNumericValue(invalidChar.charValue())) });

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER,

-                        null,

-                        null,

-                        null));

-            }

-        }

-    }

-

-    /**

-     * Checks if an Text node is well-formed, by checking if it contains invalid

-     * XML characters.

-     * 

-     * @param data The contents of the comment node

-     */

-    protected void isTextWellFormed(Text node) {

-        // Does the data valid XML character data        

-    	Character invalidChar = isWFXMLChar(node.getData());

-    	if (invalidChar != null) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,

-                    new Object[] { Integer.toHexString(Character.getNumericValue(invalidChar.charValue())) });

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER,

-                        null,

-                        null,

-                        null));

-            }

-        }

-    }

-

-    /**

-     * Checks if an EntityRefernece node is well-formed, by checking it's node name.  Then depending

-     * on whether it is referenced in Element content or in an Attr Node, checks if the EntityReference

-     * references an unparsed entity or a external entity and if so throws raises the 

-     * appropriate well-formedness error.  

-     * 

-     * @param data The contents of the comment node

-     * @parent The parent of the EntityReference Node

-     */

-    protected void isEntityReferneceWellFormed(EntityReference node) {

-        // Is the EntityReference name a valid XML name

-        if (!isXMLName(node.getNodeName(), fIsXMLVersion11)) {

-            String msg =

-                Utils.messages.createMessage(

-                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                    new Object[] { "EntityReference", node.getNodeName()});

-

-            if (fErrorHandler != null) {

-                fErrorHandler.handleError(

-                    new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR,

-                        msg,

-                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                        null,

-                        null,

-                        null));

-            }

-        }

-

-        // determine the parent node

-        Node parent = node.getParentNode();

-

-        // Traverse the declared entities and check if the nodeName and namespaceURI

-        // of the EntityReference matches an Entity.  If so, check the if the notationName

-        // is not null, if so, report an error.

-        DocumentType docType = node.getOwnerDocument().getDoctype();

-        if (docType != null) {

-            NamedNodeMap entities = docType.getEntities();

-            for (int i = 0; i < entities.getLength(); i++) {

-                Entity ent = (Entity) entities.item(i);

-

-                String nodeName =

-                    node.getNodeName() == null ? "" : node.getNodeName();

-                String nodeNamespaceURI =

-                    node.getNamespaceURI() == null

-                        ? ""

-                        : node.getNamespaceURI();

-                String entName =

-                    ent.getNodeName() == null ? "" : ent.getNodeName();

-                String entNamespaceURI =

-                    ent.getNamespaceURI() == null ? "" : ent.getNamespaceURI();

-                // If referenced in Element content

-                // WFC: Parsed Entity

-                if (parent.getNodeType() == Node.ELEMENT_NODE) {

-                    if (entNamespaceURI.equals(nodeNamespaceURI)

-                        && entName.equals(nodeName)) {

-

-                        if (ent.getNotationName() != null) {

-                            String msg =

-                                Utils.messages.createMessage(

-                                    MsgKey.ER_WF_REF_TO_UNPARSED_ENT,

-                                    new Object[] { node.getNodeName()});

-

-                            if (fErrorHandler != null) {

-                                fErrorHandler.handleError(

-                                    new DOMErrorImpl(

-                                        DOMError.SEVERITY_FATAL_ERROR,

-                                        msg,

-                                        MsgKey.ER_WF_REF_TO_UNPARSED_ENT,

-                                        null,

-                                        null,

-                                        null));

-                            }

-                        }

-                    }

-                } // end if WFC: Parsed Entity

-

-                // If referenced in an Attr value

-                // WFC: No External Entity References

-                if (parent.getNodeType() == Node.ATTRIBUTE_NODE) {

-                    if (entNamespaceURI.equals(nodeNamespaceURI)

-                        && entName.equals(nodeName)) {

-

-                        if (ent.getPublicId() != null

-                            || ent.getSystemId() != null

-                            || ent.getNotationName() != null) {

-                            String msg =

-                                Utils.messages.createMessage(

-                                    MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,

-                                    new Object[] { node.getNodeName()});

-

-                            if (fErrorHandler != null) {

-                                fErrorHandler.handleError(

-                                    new DOMErrorImpl(

-                                        DOMError.SEVERITY_FATAL_ERROR,

-                                        msg,

-                                        MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,

-                                        null,

-                                        null,

-                                        null));

-                            }

-                        }

-                    }

-                } //end if WFC: No External Entity References

-            }

-        }

-    } // isEntityReferneceWellFormed    

-

-    /**

-     * If the configuration parameter "namespaces" is set to true, this methods

-     * checks if an entity whose replacement text contains unbound namespace 

-     * prefixes is referenced in a location where there are no bindings for 

-     * the namespace prefixes and if so raises a LSException with the error-type

-     * "unbound-prefix-in-entity-reference"   

-     * 

-     * @param Node, The EntityReference nodes whose children are to be checked

-     */

-    protected void checkUnboundPrefixInEntRef(Node node) {

-        Node child, next;

-        for (child = node.getFirstChild(); child != null; child = next) {

-            next = child.getNextSibling();

-

-            if (child.getNodeType() == Node.ELEMENT_NODE) {

-

-                //If a NamespaceURI is not declared for the current

-                //node's prefix, raise a fatal error.

-                String prefix = child.getPrefix();

-                if (prefix != null

-                		&& fNSBinder.getURI(prefix) == null) {

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,

-                            new Object[] {

-                                node.getNodeName(),

-                                child.getNodeName(),

-                                prefix });

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_FATAL_ERROR,

-                                msg,

-                                MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,

-                                null,

-                                null,

-                                null));

-                    }

-                }

-

-                NamedNodeMap attrs = child.getAttributes();

-

-                for (int i = 0; i < attrs.getLength(); i++) {

-                    String attrPrefix = attrs.item(i).getPrefix();

-                    if (attrPrefix != null

-                    		&& fNSBinder.getURI(attrPrefix) == null) {

-                        String msg =

-                            Utils.messages.createMessage(

-                                MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,

-                                new Object[] {

-                                    node.getNodeName(),

-                                    child.getNodeName(),

-                                    attrs.item(i)});

-

-                        if (fErrorHandler != null) {

-                            fErrorHandler.handleError(

-                                new DOMErrorImpl(

-                                    DOMError.SEVERITY_FATAL_ERROR,

-                                    msg,

-                                    MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,

-                                    null,

-                                    null,

-                                    null));

-                        }

-                    }

-                }

-            }

-

-            if (child.hasChildNodes()) {

-                checkUnboundPrefixInEntRef(child);

-            }

-        }

-    }

-

-    // ***********************************************************************

-    // Namespace normalization

-    // ***********************************************************************

-    /**

-     * Records local namespace declarations, to be used for normalization later

-     * 

-     * @param Node, The element node, whose namespace declarations are to be recorded

-     */

-    protected void recordLocalNSDecl(Node node) {

-        NamedNodeMap atts = ((Element) node).getAttributes();

-        int length = atts.getLength();

-

-        for (int i = 0; i < length; i++) {

-            Node attr = atts.item(i);

-

-            String localName = attr.getLocalName();

-            String attrPrefix = attr.getPrefix();

-            String attrValue = attr.getNodeValue();

-            String attrNS = attr.getNamespaceURI();

-

-            localName =

-                localName == null

-                    || XMLNS_PREFIX.equals(localName) ? "" : localName;

-            attrPrefix = attrPrefix == null ? "" : attrPrefix;

-            attrValue = attrValue == null ? "" : attrValue;

-            attrNS = attrNS == null ? "" : attrNS;

-

-            // check if attribute is a namespace decl

-            if (XMLNS_URI.equals(attrNS)) {

-

-                // No prefix may be bound to http://www.w3.org/2000/xmlns/.

-                if (XMLNS_URI.equals(attrValue)) {

-                    String msg =

-                        Utils.messages.createMessage(

-                            MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,

-                            new Object[] { attrPrefix, XMLNS_URI });

-

-                    if (fErrorHandler != null) {

-                        fErrorHandler.handleError(

-                            new DOMErrorImpl(

-                                DOMError.SEVERITY_ERROR,

-                                msg,

-                                MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,

-                                null,

-                                null,

-                                null));

-                    }

-                } else {

-                    // store the namespace-declaration

-                	if (XMLNS_PREFIX.equals(attrPrefix) ) {

-                        // record valid decl

-                        if (attrValue.length() != 0) {

-                            fNSBinder.declarePrefix(localName, attrValue);

-                        } else {

-                            // Error; xmlns:prefix=""

-                        }

-                    } else { // xmlns

-                        // empty prefix is always bound ("" or some string)

-                        fNSBinder.declarePrefix("", attrValue);

-                    }

-                }

-                

-            }

-        }

-    }

-

-    /**

-     * Fixes an element's namespace

-     * 

-     * @param Node, The element node, whose namespace is to be fixed

-     */

-    protected void fixupElementNS(Node node) throws SAXException {

-        String namespaceURI = ((Element) node).getNamespaceURI();

-        String prefix = ((Element) node).getPrefix();

-        String localName = ((Element) node).getLocalName();

-

-        if (namespaceURI != null) {

-            //if ( Element's prefix/namespace pair (or default namespace,

-            // if no prefix) are within the scope of a binding )

-            prefix = prefix == null ? "" : prefix;

-            String inScopeNamespaceURI = fNSBinder.getURI(prefix);

-

-            if ((inScopeNamespaceURI != null

-                && inScopeNamespaceURI.equals(namespaceURI))) {

-                // do nothing, declaration in scope is inherited

-                

-            } else {

-                // Create a local namespace declaration attr for this namespace,

-                // with Element's current prefix (or a default namespace, if

-                // no prefix). If there's a conflicting local declaration

-                // already present, change its value to use this namespace.

-                

-                // Add the xmlns declaration attribute

-            	//fNSBinder.pushNamespace(prefix, namespaceURI, fElementDepth);

-                if ((fFeatures & NAMESPACEDECLS) != 0) {

-                    if ("".equals(prefix) || "".equals(namespaceURI)) {

-                    	((Element)node).setAttributeNS(XMLNS_URI, XMLNS_PREFIX, namespaceURI);

-                    } else {

-                    	((Element)node).setAttributeNS(XMLNS_URI, XMLNS_PREFIX + ":" + prefix, namespaceURI);

-                    }

-                }

-                fLocalNSBinder.declarePrefix(prefix, namespaceURI);

-                fNSBinder.declarePrefix(prefix, namespaceURI);

-

-            } 

-        } else {

-            // Element has no namespace

-            // DOM Level 1

-            if (localName == null || "".equals(localName)) {

-                //  DOM Level 1 node!

-                String msg =

-                    Utils.messages.createMessage(

-                        MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,

-                        new Object[] { node.getNodeName()});

-

-                if (fErrorHandler != null) {

-                    fErrorHandler.handleError(

-                        new DOMErrorImpl(

-                            DOMError.SEVERITY_ERROR,

-                            msg,

-                            MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,

-                            null,

-                            null,

-                            null));

-                }

-            } else {

-            	namespaceURI = fNSBinder.getURI("");

-            	if (namespaceURI !=null && namespaceURI.length() > 0) {

-            	    ((Element)node).setAttributeNS(XMLNS_URI, XMLNS_PREFIX, "");

-            		fLocalNSBinder.declarePrefix("", "");

-                    fNSBinder.declarePrefix("", "");

-            	}

-            }

-        }

-    }

-    /** 

-     * This table is a quick lookup of a property key (String) to the integer that

-     * is the bit to flip in the fFeatures field, so the integers should have

-     * values 1,2,4,8,16...

-     * 

-     */

-    private static final Hashtable s_propKeys = new Hashtable();

-    static {

-

-        // Initialize the mappings of property keys to bit values (Integer objects)

-        // or mappings to a String object "", which indicates we are interested

-        // in the property, but it does not have a simple bit value to flip

-

-        // cdata-sections

-        int i = CDATA;

-        Integer val = new Integer(i);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_CDATA_SECTIONS,

-            val);

-

-        // comments

-        int i1 = COMMENTS;

-        val = new Integer(i1);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_COMMENTS,

-            val);

-

-        // element-content-whitespace

-        int i2 = ELEM_CONTENT_WHITESPACE;

-        val = new Integer(i2);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,

-            val);

-        int i3 = ENTITIES;

-

-        // entities

-        val = new Integer(i3);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_ENTITIES,

-            val);

-

-        // namespaces

-        int i4 = NAMESPACES;

-        val = new Integer(i4);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_NAMESPACES,

-            val);

-

-        // namespace-declarations

-        int i5 = NAMESPACEDECLS;

-        val = new Integer(i5);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_NAMESPACE_DECLARATIONS,

-            val);

-

-        // split-cdata-sections

-        int i6 = SPLITCDATA;

-        val = new Integer(i6);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_SPLIT_CDATA,

-            val);

-

-        // discard-default-content	

-        int i7 = WELLFORMED;

-        val = new Integer(i7);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_WELLFORMED,

-            val);

-

-        // discard-default-content	

-        int i8 = DISCARDDEFAULT;

-        val = new Integer(i8);

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT,

-            val);

-

-        // We are interested in these properties, but they don't have a simple

-        // bit value to deal with.

-        s_propKeys.put(

-            DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_FORMAT_PRETTY_PRINT,

-            "");

-        s_propKeys.put(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "");

-        s_propKeys.put(

-            DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION,

-            "");

-        s_propKeys.put(DOMConstants.S_XSL_OUTPUT_ENCODING, "");

-        s_propKeys.put(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.DOM_ENTITIES, "");

-    }

-

-    /**

-     * Initializes fFeatures based on the DOMConfiguration Parameters set.

-     *

-     * @param properties DOMConfiguraiton properties that were set and which are

-     * to be used while serializing the DOM. 

-     */

-    protected void initProperties(Properties properties) {

-

-        for (Enumeration keys = properties.keys(); keys.hasMoreElements();) {

-

-            final String key = (String) keys.nextElement();

-    

-            // caonical-form

-            // Other features will be enabled or disabled when this is set to true or false.

-

-            // error-handler; set via the constructor

-

-            // infoset

-            // Other features will be enabled or disabled when this is set to true

-

-            // A quick lookup for the given set of properties (cdata-sections ...)

-            final Object iobj = s_propKeys.get(key);

-            if (iobj != null) {

-                if (iobj instanceof Integer) {

-                    // Dealing with a property that has a simple bit value that

-                    // we need to set

-

-                    // cdata-sections			

-                    // comments

-                    // element-content-whitespace

-                    // entities

-                    // namespaces

-                    // namespace-declarations

-                    // split-cdata-sections

-                    // well-formed

-                    // discard-default-content

-                    final int BITFLAG = ((Integer) iobj).intValue();

-                    if ((properties.getProperty(key).endsWith("yes"))) {

-                        fFeatures = fFeatures | BITFLAG;

-                    } else {

-                        fFeatures = fFeatures & ~BITFLAG;

-                    }

-                } else {

-                    // We are interested in the property, but it is not

-                    // a simple bit that we need to set.

-

-                    if ((DOMConstants.S_DOM3_PROPERTIES_NS

-                        + DOMConstants.DOM_FORMAT_PRETTY_PRINT)

-                        .equals(key)) {

-                        // format-pretty-print; set internally on the serializers via xsl:output properties in LSSerializer

-                        if ((properties.getProperty(key).endsWith("yes"))) {

-                            fSerializer.setIndent(true);

-                            fSerializer.setIndentAmount(3);

-                        } else {

-                            fSerializer.setIndent(false);

-                        }

-                    } else if (

-                        (DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL).equals(

-                            key)) {

-                        // omit-xml-declaration; set internally on the serializers via xsl:output properties in LSSerializer

-                        if ((properties.getProperty(key).endsWith("yes"))) {

-                            fSerializer.setOmitXMLDeclaration(true);

-                        } else {

-                            fSerializer.setOmitXMLDeclaration(false);

-                        }

-                    } else if (

-                        (

-                            DOMConstants.S_XERCES_PROPERTIES_NS

-                                + DOMConstants.S_XML_VERSION).equals(

-                            key)) {

-                        // Retreive the value of the XML Version attribute via the xml-version

-                        String version = properties.getProperty(key);

-                        if ("1.1".equals(version)) {

-                            fIsXMLVersion11 = true;

-                            fSerializer.setVersion(version);

-                        } else {

-                            fSerializer.setVersion("1.0");

-                        }

-                    } else if (

-                        (DOMConstants.S_XSL_OUTPUT_ENCODING).equals(key)) {

-                        // Retreive the value of the XML Encoding attribute

-                        String encoding = properties.getProperty(key);

-                        if (encoding != null) {

-                            fSerializer.setEncoding(encoding);

-                        }

-                    } else if ((DOMConstants.S_XERCES_PROPERTIES_NS

-                            + DOMConstants.DOM_ENTITIES).equals(key)) {

-                        // Preserve entity references in the document

-                        if ((properties.getProperty(key).endsWith("yes"))) {

-                            fSerializer.setDTDEntityExpansion(false);

-                        }

-                        else {

-                            fSerializer.setDTDEntityExpansion(true);

-                        }

-                    } else {

-                        // We shouldn't get here, ever, now what?

-                    }

-                }

-            }

-        }

-        // Set the newLine character to use

-        if (fNewLine != null) {

-            fSerializer.setOutputProperty(OutputPropertiesFactory.S_KEY_LINE_SEPARATOR, fNewLine);

-        }

-    }

-

-} //TreeWalker

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.apache.xml.serializer.dom3.NamespaceSupport;
+import org.apache.xml.serializer.OutputPropertiesFactory;
+import org.apache.xml.serializer.SerializationHandler;
+import org.apache.xml.serializer.utils.MsgKey;
+import org.apache.xml.serializer.utils.Utils;
+import org.apache.xml.serializer.utils.XML11Char;
+import org.apache.xml.serializer.utils.XMLChar;
+import org.w3c.dom.Attr;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Comment;
+import org.w3c.dom.DOMError;
+import org.w3c.dom.DOMErrorHandler;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
+import org.w3c.dom.Entity;
+import org.w3c.dom.EntityReference;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
+import org.w3c.dom.ls.LSSerializerFilter;
+import org.w3c.dom.traversal.NodeFilter;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.ext.LexicalHandler;
+import org.xml.sax.helpers.LocatorImpl;
+
+/**
+ * Built on org.apache.xml.serializer.TreeWalker and adds functionality to
+ * traverse and serialize a DOM Node (Level 2 or Level 3) as specified in 
+ * the DOM Level 3 LS Recommedation by evaluating and applying DOMConfiguration 
+ * parameters and filters if any during serialization.
+ *   
+ * @xsl.usage internal
+ */
+final class DOM3TreeWalker {
+
+    /**
+     * The SerializationHandler, it extends ContentHandler and when
+     * this class is instantiated via the constructor provided, a
+     * SerializationHandler object is passed to it.
+     */
+    private SerializationHandler fSerializer = null;
+
+    /** We do not need DOM2Helper since DOM Level 3 LS applies to DOM Level 2 or newer */
+
+    /** Locator object for this TreeWalker          */
+    private LocatorImpl fLocator = new LocatorImpl();
+
+    /** ErrorHandler */
+    private DOMErrorHandler fErrorHandler = null;
+
+    /** LSSerializerFilter */
+    private LSSerializerFilter fFilter = null;
+
+    /** If the serializer is an instance of a LexicalHandler */
+    private LexicalHandler fLexicalHandler = null;
+
+    private int fWhatToShowFilter;
+
+    /** New Line character to use in serialization */
+    private String fNewLine = null;
+
+    /** DOMConfiguration Properties */
+    private Properties fDOMConfigProperties = null;
+
+    /** Keeps track if we are in an entity reference when entities=true */
+    private boolean fInEntityRef = false;
+
+    /** Stores the version of the XML document to be serialize */
+    private String fXMLVersion = null;
+
+    /** XML Version, default 1.0 */
+    private boolean fIsXMLVersion11 = false;
+
+    /** Is the Node a Level 3 DOM node */
+    private boolean fIsLevel3DOM = false;
+
+    /** DOM Configuration Parameters */
+    private int fFeatures = 0;
+
+    /** Flag indicating whether following text to be processed is raw text          */
+    boolean fNextIsRaw = false;
+
+    // 
+    private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";
+
+    //
+    private static final String XMLNS_PREFIX = "xmlns";
+
+    // 
+    private static final String XML_URI = "http://www.w3.org/XML/1998/namespace";
+
+    // 
+    private static final String XML_PREFIX = "xml";
+
+    /** stores namespaces in scope */
+    protected NamespaceSupport fNSBinder;
+
+    /** stores all namespace bindings on the current element */
+    protected NamespaceSupport fLocalNSBinder;
+    
+    /** stores the current element depth */
+    private int fElementDepth = 0;
+
+    // ***********************************************************************
+    // DOMConfiguration paramter settings 
+    // ***********************************************************************
+    // Parameter canonical-form, true [optional] - NOT SUPPORTED 
+    private final static int CANONICAL = 0x1 << 0;
+
+    // Parameter cdata-sections, true [required] (default)
+    private final static int CDATA = 0x1 << 1;
+
+    // Parameter check-character-normalization, true [optional] - NOT SUPPORTED 
+    private final static int CHARNORMALIZE = 0x1 << 2;
+
+    // Parameter comments, true [required] (default)
+    private final static int COMMENTS = 0x1 << 3;
+
+    // Parameter datatype-normalization, true [optional] - NOT SUPPORTED
+    private final static int DTNORMALIZE = 0x1 << 4;
+
+    // Parameter element-content-whitespace, true [required] (default) - value - false [optional] NOT SUPPORTED
+    private final static int ELEM_CONTENT_WHITESPACE = 0x1 << 5;
+
+    // Parameter entities, true [required] (default)
+    private final static int ENTITIES = 0x1 << 6;
+
+    // Parameter infoset, true [required] (default), false has no effect --> True has no effect for the serializer
+    private final static int INFOSET = 0x1 << 7;
+
+    // Parameter namespaces, true [required] (default)
+    private final static int NAMESPACES = 0x1 << 8;
+
+    // Parameter namespace-declarations, true [required] (default)
+    private final static int NAMESPACEDECLS = 0x1 << 9;
+
+    // Parameter normalize-characters, true [optional] - NOT SUPPORTED
+    private final static int NORMALIZECHARS = 0x1 << 10;
+
+    // Parameter split-cdata-sections, true [required] (default)
+    private final static int SPLITCDATA = 0x1 << 11;
+
+    // Parameter validate, true [optional] - NOT SUPPORTED
+    private final static int VALIDATE = 0x1 << 12;
+
+    // Parameter validate-if-schema, true [optional] - NOT SUPPORTED
+    private final static int SCHEMAVALIDATE = 0x1 << 13;
+
+    // Parameter split-cdata-sections, true [required] (default)
+    private final static int WELLFORMED = 0x1 << 14;
+
+    // Parameter discard-default-content, true [required] (default)
+    // Not sure how this will be used in level 2 Documents
+    private final static int DISCARDDEFAULT = 0x1 << 15;
+
+    // Parameter format-pretty-print, true [optional] 
+    private final static int PRETTY_PRINT = 0x1 << 16;
+
+    // Parameter ignore-unknown-character-denormalizations, true [required] (default)
+    // We currently do not support XML 1.1 character normalization
+    private final static int IGNORE_CHAR_DENORMALIZE = 0x1 << 17;
+
+    // Parameter discard-default-content, true [required] (default)
+    private final static int XMLDECL = 0x1 << 18;
+
+    /**
+     * Constructor.
+     * @param   contentHandler serialHandler The implemention of the SerializationHandler interface
+     */
+    DOM3TreeWalker(
+        SerializationHandler serialHandler,
+        DOMErrorHandler errHandler,
+        LSSerializerFilter filter,
+        String newLine) {
+        fSerializer = serialHandler;
+        //fErrorHandler = errHandler == null ? new DOMErrorHandlerImpl() : errHandler; // Should we be using the default?
+        fErrorHandler = errHandler;
+        fFilter = filter;
+        fLexicalHandler = null;
+        fNewLine = newLine;
+
+        fNSBinder = new NamespaceSupport();
+        fLocalNSBinder = new NamespaceSupport();
+        
+        fDOMConfigProperties = fSerializer.getOutputFormat();
+        fSerializer.setDocumentLocator(fLocator);
+        initProperties(fDOMConfigProperties);
+        
+        try {
+            // Bug see Bugzilla  26741
+            fLocator.setSystemId(
+                System.getProperty("user.dir") + File.separator + "dummy.xsl");
+        } catch (SecurityException se) { // user.dir not accessible from applet
+
+        }
+    }
+
+    /**
+     * Perform a pre-order traversal non-recursive style.  
+     *
+     * Note that TreeWalker assumes that the subtree is intended to represent 
+     * a complete (though not necessarily well-formed) document and, during a 
+     * traversal, startDocument and endDocument will always be issued to the 
+     * SAX listener.
+     *  
+     * @param pos Node in the tree where to start traversal
+     *
+     * @throws TransformerException
+     */
+    public void traverse(Node pos) throws org.xml.sax.SAXException {
+        this.fSerializer.startDocument();
+
+        // Determine if the Node is a DOM Level 3 Core Node.
+        if (pos.getNodeType() != Node.DOCUMENT_NODE) {
+            Document ownerDoc = pos.getOwnerDocument();
+            if (ownerDoc != null
+                && ownerDoc.getImplementation().hasFeature("Core", "3.0")) {
+                fIsLevel3DOM = true;
+            }
+        } else {
+            if (((Document) pos)
+                .getImplementation()
+                .hasFeature("Core", "3.0")) {
+                fIsLevel3DOM = true;
+            }
+        }
+
+        if (fSerializer instanceof LexicalHandler) {
+            fLexicalHandler = ((LexicalHandler) this.fSerializer);
+        }
+
+        if (fFilter != null)
+            fWhatToShowFilter = fFilter.getWhatToShow();
+
+        Node top = pos;
+
+        while (null != pos) {
+            startNode(pos);
+
+            Node nextNode = null;
+
+            nextNode = pos.getFirstChild();
+
+            while (null == nextNode) {
+                endNode(pos);
+
+                if (top.equals(pos))
+                    break;
+
+                nextNode = pos.getNextSibling();
+
+                if (null == nextNode) {
+                    pos = pos.getParentNode();
+
+                    if ((null == pos) || (top.equals(pos))) {
+                        if (null != pos)
+                            endNode(pos);
+
+                        nextNode = null;
+
+                        break;
+                    }
+                }
+            }
+
+            pos = nextNode;
+        }
+        this.fSerializer.endDocument();
+    }
+
+    /**
+     * Perform a pre-order traversal non-recursive style.
+     
+     * Note that TreeWalker assumes that the subtree is intended to represent 
+     * a complete (though not necessarily well-formed) document and, during a 
+     * traversal, startDocument and endDocument will always be issued to the 
+     * SAX listener.
+     *
+     * @param pos Node in the tree where to start traversal
+     * @param top Node in the tree where to end traversal
+     *
+     * @throws TransformerException
+     */
+    public void traverse(Node pos, Node top) throws org.xml.sax.SAXException {
+
+        this.fSerializer.startDocument();
+
+        // Determine if the Node is a DOM Level 3 Core Node.
+        if (pos.getNodeType() != Node.DOCUMENT_NODE) {
+            Document ownerDoc = pos.getOwnerDocument();
+            if (ownerDoc != null
+                && ownerDoc.getImplementation().hasFeature("Core", "3.0")) {
+                fIsLevel3DOM = true;
+            }
+        } else {
+            if (((Document) pos)
+                .getImplementation()
+                .hasFeature("Core", "3.0")) {
+                fIsLevel3DOM = true;
+            }
+        }
+
+        if (fSerializer instanceof LexicalHandler) {
+            fLexicalHandler = ((LexicalHandler) this.fSerializer);
+        }
+
+        if (fFilter != null)
+            fWhatToShowFilter = fFilter.getWhatToShow();
+
+        while (null != pos) {
+            startNode(pos);
+
+            Node nextNode = null;
+
+            nextNode = pos.getFirstChild();
+
+            while (null == nextNode) {
+                endNode(pos);
+
+                if ((null != top) && top.equals(pos))
+                    break;
+
+                nextNode = pos.getNextSibling();
+
+                if (null == nextNode) {
+                    pos = pos.getParentNode();
+
+                    if ((null == pos) || ((null != top) && top.equals(pos))) {
+                        nextNode = null;
+
+                        break;
+                    }
+                }
+            }
+
+            pos = nextNode;
+        }
+        this.fSerializer.endDocument();
+    }
+
+    /**
+     * Optimized dispatch of characters.
+     */
+    private final void dispatachChars(Node node)
+        throws org.xml.sax.SAXException {
+        if (fSerializer != null) {
+            this.fSerializer.characters(node);
+        } else {
+            String data = ((Text) node).getData();
+            this.fSerializer.characters(data.toCharArray(), 0, data.length());
+        }
+    }
+
+    /**
+     * Start processing given node
+     *
+     * @param node Node to process
+     *
+     * @throws org.xml.sax.SAXException
+     */
+    protected void startNode(Node node) throws org.xml.sax.SAXException {
+        if (node instanceof Locator) {
+            Locator loc = (Locator) node;
+            fLocator.setColumnNumber(loc.getColumnNumber());
+            fLocator.setLineNumber(loc.getLineNumber());
+            fLocator.setPublicId(loc.getPublicId());
+            fLocator.setSystemId(loc.getSystemId());
+        } else {
+            fLocator.setColumnNumber(0);
+            fLocator.setLineNumber(0);
+        }
+
+        switch (node.getNodeType()) {
+            case Node.DOCUMENT_TYPE_NODE :
+                serializeDocType((DocumentType) node, true);
+                break;
+            case Node.COMMENT_NODE :
+                serializeComment((Comment) node);
+                break;
+            case Node.DOCUMENT_FRAGMENT_NODE :
+                // Children are traversed
+                break;
+            case Node.DOCUMENT_NODE :
+                break;
+            case Node.ELEMENT_NODE :
+                serializeElement((Element) node, true);
+                break;
+            case Node.PROCESSING_INSTRUCTION_NODE :
+                serializePI((ProcessingInstruction) node);
+                break;
+            case Node.CDATA_SECTION_NODE :
+                serializeCDATASection((CDATASection) node);
+                break;
+            case Node.TEXT_NODE :
+                serializeText((Text) node);
+                break;
+            case Node.ENTITY_REFERENCE_NODE :
+                serializeEntityReference((EntityReference) node, true);
+                break;
+            default :
+                }
+    }
+
+    /**
+     * End processing of given node 
+     *
+     *
+     * @param node Node we just finished processing
+     *
+     * @throws org.xml.sax.SAXException
+     */
+    protected void endNode(Node node) throws org.xml.sax.SAXException {
+
+        switch (node.getNodeType()) {
+            case Node.DOCUMENT_NODE :
+                break;
+            case Node.DOCUMENT_TYPE_NODE :
+                serializeDocType((DocumentType) node, false);
+                break;
+            case Node.ELEMENT_NODE :
+                serializeElement((Element) node, false);
+                break;
+            case Node.CDATA_SECTION_NODE :
+                break;
+            case Node.ENTITY_REFERENCE_NODE :
+                serializeEntityReference((EntityReference) node, false);
+                break;
+            default :
+                }
+    }
+
+    // ***********************************************************************
+    // Node serialization methods
+    // ***********************************************************************
+    /**
+     * Applies a filter on the node to serialize
+     * 
+     * @param node The Node to serialize
+     * @return True if the node is to be serialized else false if the node 
+     *         is to be rejected or skipped. 
+     */
+    protected boolean applyFilter(Node node, int nodeType) {
+        if (fFilter != null && (fWhatToShowFilter & nodeType) != 0) {
+
+            short code = fFilter.acceptNode(node);
+            switch (code) {
+                case NodeFilter.FILTER_REJECT :
+                case NodeFilter.FILTER_SKIP :
+                    return false; // skip the node
+                default : // fall through..
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Serializes a Document Type Node.
+     * 
+     * @param node The Docuemnt Type Node to serialize
+     * @param bStart Invoked at the start or end of node.  Default true. 
+     */
+    protected void serializeDocType(DocumentType node, boolean bStart)
+        throws SAXException {
+        // The DocType and internalSubset can not be modified in DOM and is
+        // considered to be well-formed as the outcome of successful parsing.
+        String docTypeName = node.getNodeName();
+        String publicId = node.getPublicId();
+        String systemId = node.getSystemId();
+        String internalSubset = node.getInternalSubset();
+
+        //DocumentType nodes are never passed to the filter
+        
+        if (internalSubset != null && !"".equals(internalSubset)) {
+
+            if (bStart) {
+                try {
+                    // The Serializer does not provide a way to write out the
+                    // DOCTYPE internal subset via an event call, so we write it
+                    // out here.
+                    Writer writer = fSerializer.getWriter();
+                    StringBuffer dtd = new StringBuffer();
+
+                    dtd.append("<!DOCTYPE ");
+                    dtd.append(docTypeName);
+                    if (null != publicId) {
+                        dtd.append(" PUBLIC \"");
+                        dtd.append(publicId);
+                        dtd.append('\"');
+                    }
+
+                    if (null != systemId) {
+                        if (null == publicId) {
+                            dtd.append(" SYSTEM \"");
+                        } else {
+                            dtd.append(" \"");
+                        }    
+                        dtd.append(systemId);
+                        dtd.append('\"');
+                    }
+                    
+                    dtd.append(" [ ");
+                    
+                    dtd.append(fNewLine);
+                    dtd.append(internalSubset);
+                    dtd.append("]>");
+                    dtd.append(new String(fNewLine));
+                    
+                    writer.write(dtd.toString());
+                    writer.flush();
+                    
+                } catch (IOException e) {
+                    throw new SAXException(Utils.messages.createMessage(
+                            MsgKey.ER_WRITING_INTERNAL_SUBSET, null), e);
+                }
+            } // else if !bStart do nothing
+            
+        } else {
+            
+            if (bStart) {
+                if (fLexicalHandler != null) {
+                    fLexicalHandler.startDTD(docTypeName, publicId, systemId);
+                }
+            } else {
+                if (fLexicalHandler != null) {
+                    fLexicalHandler.endDTD();
+                }
+            }
+        }
+    }
+
+    /**
+     * Serializes a Comment Node.
+     * 
+     * @param node The Comment Node to serialize
+     */
+    protected void serializeComment(Comment node) throws SAXException {
+        // comments=true
+        if ((fFeatures & COMMENTS) != 0) {
+            String data = node.getData();
+
+            // well-formed=true
+            if ((fFeatures & WELLFORMED) != 0) {
+                isCommentWellFormed(data);
+            }
+
+            if (fLexicalHandler != null) {
+                // apply the LSSerializer filter after the operations requested by the 
+                // DOMConfiguration parameters have been applied 
+                if (!applyFilter(node, NodeFilter.SHOW_COMMENT)) {
+                    return;
+                }
+
+                fLexicalHandler.comment(data.toCharArray(), 0, data.length());
+            }
+        }
+    }
+
+    /**
+     * Serializes an Element Node.
+     * 
+     * @param node The Element Node to serialize
+     * @param bStart Invoked at the start or end of node.   
+     */
+    protected void serializeElement(Element node, boolean bStart)
+        throws SAXException {
+        if (bStart) {
+            fElementDepth++;
+
+            // We use the Xalan specific startElement and starPrefixMapping calls 
+            // (and addAttribute and namespaceAfterStartElement) as opposed to
+            // SAX specific, for performance reasons as they reduce the overhead
+            // of creating an AttList object upfront.
+
+            // well-formed=true
+            if ((fFeatures & WELLFORMED) != 0) {
+                isElementWellFormed(node);
+            }
+
+            // REVISIT: We apply the LSSerializer filter for elements before
+            // namesapce fixup
+            if (!applyFilter(node, NodeFilter.SHOW_ELEMENT)) {
+                return;
+            }
+
+            // namespaces=true, record and fixup namspaced element
+            if ((fFeatures & NAMESPACES) != 0) {
+            	fNSBinder.pushContext();
+            	fLocalNSBinder.reset();
+            	
+                recordLocalNSDecl(node);
+                fixupElementNS(node);
+            }
+
+            // Namespace normalization
+            fSerializer.startElement(
+            		node.getNamespaceURI(),
+                    node.getLocalName(),
+                    node.getNodeName());
+
+            serializeAttList(node);
+            
+        } else {
+        	fElementDepth--;
+
+            // apply the LSSerializer filter
+            if (!applyFilter(node, NodeFilter.SHOW_ELEMENT)) {
+                return;
+            }
+
+            this.fSerializer.endElement(
+            	node.getNamespaceURI(),
+                node.getLocalName(),
+                node.getNodeName());
+            // since endPrefixMapping was not used by SerializationHandler it was removed
+            // for performance reasons.
+
+            if ((fFeatures & NAMESPACES) != 0 ) {
+                    fNSBinder.popContext();
+            }
+            
+        }
+    }
+
+    /**
+     * Serializes the Attr Nodes of an Element.
+     * 
+     * @param node The OwnerElement whose Attr Nodes are to be serialized.
+     */
+    protected void serializeAttList(Element node) throws SAXException {
+        NamedNodeMap atts = node.getAttributes();
+        int nAttrs = atts.getLength();
+
+        for (int i = 0; i < nAttrs; i++) {
+            Node attr = atts.item(i);
+
+            String localName = attr.getLocalName();
+            String attrName = attr.getNodeName();
+            String attrPrefix = attr.getPrefix() == null ? "" : attr.getPrefix();
+            String attrValue = attr.getNodeValue();
+
+            // Determine the Attr's type.
+            String type = null;
+            if (fIsLevel3DOM) {
+                type = ((Attr) attr).getSchemaTypeInfo().getTypeName();
+            }
+            type = type == null ? "CDATA" : type;
+
+            String attrNS = attr.getNamespaceURI();
+            if (attrNS !=null && attrNS.length() == 0) {
+            	attrNS=null;
+                // we must remove prefix for this attribute
+            	attrName=attr.getLocalName();
+            }
+
+            boolean isSpecified = ((Attr) attr).getSpecified();
+            boolean addAttr = true;
+            boolean applyFilter = false;
+            boolean xmlnsAttr =
+                attrName.equals("xmlns") || attrName.startsWith("xmlns:");
+
+            // well-formed=true
+            if ((fFeatures & WELLFORMED) != 0) {
+                isAttributeWellFormed(attr);
+            }
+            
+            //-----------------------------------------------------------------
+            // start Attribute namespace fixup
+            //-----------------------------------------------------------------
+            // namespaces=true, normalize all non-namespace attributes
+            // Step 3. Attribute
+            if ((fFeatures & NAMESPACES) != 0 && !xmlnsAttr) {
+           	
+        		// If the Attr has a namespace URI
+        		if (attrNS != null) {
+        			attrPrefix = attrPrefix == null ? "" : attrPrefix;
+
+        			String declAttrPrefix = fNSBinder.getPrefix(attrNS);
+        			String declAttrNS = fNSBinder.getURI(attrPrefix);
+        			
+        			// attribute has no prefix (default namespace decl does not apply to
+        			// attributes)
+        			// OR
+        			// attribute prefix is not declared
+        			// OR
+        			// conflict: attribute has a prefix that conflicts with a binding
+        			if ("".equals(attrPrefix) || "".equals(declAttrPrefix)
+        					|| !attrPrefix.equals(declAttrPrefix)) {
+
+        				// namespaceURI matches an in scope declaration of one or
+        				// more prefixes
+        				if (declAttrPrefix != null && !"".equals(declAttrPrefix)) {
+        					// pick the prefix that was found and change attribute's
+        					// prefix and nodeName.
+        					attrPrefix = declAttrPrefix;
+        					
+        					if (declAttrPrefix.length() > 0 ) { 
+        						attrName = declAttrPrefix + ":" + localName;
+        					} else {
+        						attrName = localName;
+        					}	
+        				} else {
+        					// The current prefix is not null and it has no in scope
+        					// declaration
+        					if (attrPrefix != null && !"".equals(attrPrefix)
+        							&& declAttrNS == null) {
+        						// declare this prefix
+        						if ((fFeatures & NAMESPACEDECLS) != 0) {
+        							fSerializer.addAttribute(XMLNS_URI, attrPrefix,
+        									XMLNS_PREFIX + ":" + attrPrefix, "CDATA",
+        									attrNS);
+        							fNSBinder.declarePrefix(attrPrefix, attrNS);
+        							fLocalNSBinder.declarePrefix(attrPrefix, attrNS);
+        						}
+        					} else {
+        						// find a prefix following the pattern "NS" +index
+        						// (starting at 1)
+        						// make sure this prefix is not declared in the current
+        						// scope.
+        						int counter = 1;
+        						attrPrefix = "NS" + counter++;
+
+        						while (fLocalNSBinder.getURI(attrPrefix) != null) {
+        							attrPrefix = "NS" + counter++;
+        						}
+        						// change attribute's prefix and Name
+        						attrName = attrPrefix + ":" + localName;
+        						
+        						// create a local namespace declaration attribute
+        						// Add the xmlns declaration attribute
+        						if ((fFeatures & NAMESPACEDECLS) != 0) {
+                                       							
+        							fSerializer.addAttribute(XMLNS_URI, attrPrefix,
+        									XMLNS_PREFIX + ":" + attrPrefix, "CDATA",
+        									attrNS);
+            						fNSBinder.declarePrefix(attrPrefix, attrNS);
+            						fLocalNSBinder.declarePrefix(attrPrefix, attrNS);
+        						}
+        					}
+        				}
+        			}
+
+        		} else { // if the Attr has no namespace URI
+        			// Attr has no localName
+        			if (localName == null) {
+        				// DOM Level 1 node!
+        				String msg = Utils.messages.createMessage(
+        						MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,
+        						new Object[] { attrName });
+
+        				if (fErrorHandler != null) {
+        					fErrorHandler
+        							.handleError(new DOMErrorImpl(
+        									DOMError.SEVERITY_ERROR, msg,
+        									MsgKey.ER_NULL_LOCAL_ELEMENT_NAME, null,
+        									null, null));
+        				}
+
+        			} else { // uri=null and no colon
+        				// attr has no namespace URI and no prefix
+        				// no action is required, since attrs don't use default
+        			}
+        		}
+
+            }
+
+            
+            // discard-default-content=true
+            // Default attr's are not passed to the filter and this contraint
+            // is applied only when discard-default-content=true 
+            // What about default xmlns attributes???? check for xmlnsAttr
+            if ((((fFeatures & DISCARDDEFAULT) != 0) && isSpecified)
+                || ((fFeatures & DISCARDDEFAULT) == 0)) {
+                applyFilter = true;
+            } else {
+            	addAttr = false;
+            }
+
+            if (applyFilter) {
+                // apply the filter for Attributes that are not default attributes
+                // or namespace decl attributes
+                if (fFilter != null
+                    && (fFilter.getWhatToShow() & NodeFilter.SHOW_ATTRIBUTE)
+                        != 0) {
+
+                    if (!xmlnsAttr) {
+                        short code = fFilter.acceptNode(attr);
+                        switch (code) {
+                            case NodeFilter.FILTER_REJECT :
+                            case NodeFilter.FILTER_SKIP :
+                                addAttr = false;
+                                break;
+                            default : //fall through..
+                        }
+                    }
+                }
+            }
+
+            // if the node is a namespace node
+            if (addAttr && xmlnsAttr) {
+                // If namespace-declarations=true, add the node , else don't add it
+                if ((fFeatures & NAMESPACEDECLS) != 0) {
+               		// The namespace may have been fixed up, in that case don't add it.
+                	if (localName != null && !"".equals(localName)) {
+                		fSerializer.addAttribute(attrNS, localName, attrName, type, attrValue);
+                	} 
+                }
+            } else if (
+                addAttr && !xmlnsAttr) { // if the node is not a namespace node
+                // If namespace-declarations=true, add the node with the Attr nodes namespaceURI
+                // else add the node setting it's namespace to null or else the serializer will later
+                // attempt to add a xmlns attr for the prefixed attribute
+                if (((fFeatures & NAMESPACEDECLS) != 0) && (attrNS != null)) {
+                    fSerializer.addAttribute(
+                        attrNS,
+                        localName,
+                        attrName,
+                        type,
+                        attrValue);
+                } else {
+                    fSerializer.addAttribute(
+                        "",
+                        localName,
+                        attrName,
+                        type,
+                        attrValue);
+                }
+            }
+
+            // 
+            if (xmlnsAttr && ((fFeatures & NAMESPACEDECLS) != 0)) {
+                int index;
+                // Use "" instead of null, as Xerces likes "" for the 
+                // name of the default namespace.  Fix attributed 
+                // to "Steven Murray" <smurray@ebt.com>.
+                String prefix =
+                    (index = attrName.indexOf(":")) < 0
+                        ? ""
+                        : attrName.substring(index + 1);
+
+                if (!"".equals(prefix)) {
+                    fSerializer.namespaceAfterStartElement(prefix, attrValue);
+                }
+            }
+        }
+        
+    }
+   
+    /**
+     * Serializes an ProcessingInstruction Node.
+     * 
+     * @param node The ProcessingInstruction Node to serialize
+     */
+    protected void serializePI(ProcessingInstruction node)
+        throws SAXException {
+        ProcessingInstruction pi = node;
+        String name = pi.getNodeName();
+
+        // well-formed=true
+        if ((fFeatures & WELLFORMED) != 0) {
+            isPIWellFormed(node);
+        }
+
+        // apply the LSSerializer filter
+        if (!applyFilter(node, NodeFilter.SHOW_PROCESSING_INSTRUCTION)) {
+            return;
+        }
+
+        // String data = pi.getData();
+        if (name.equals("xslt-next-is-raw")) {
+            fNextIsRaw = true;
+        } else {
+            this.fSerializer.processingInstruction(name, pi.getData());
+        }
+    }
+
+    /**
+     * Serializes an CDATASection Node.
+     * 
+     * @param node The CDATASection Node to serialize
+     */
+    protected void serializeCDATASection(CDATASection node)
+        throws SAXException {
+        // well-formed=true
+        if ((fFeatures & WELLFORMED) != 0) {
+            isCDATASectionWellFormed(node);
+        }
+
+        // cdata-sections = true
+        if ((fFeatures & CDATA) != 0) {
+
+            // split-cdata-sections = true
+            // Assumption: This parameter has an effect only when
+			// cdata-sections=true
+            // ToStream, by default splits cdata-sections. Hence the check
+			// below.
+            String nodeValue = node.getNodeValue();
+            int endIndex = nodeValue.indexOf("]]>");
+            if ((fFeatures & SPLITCDATA) != 0) {
+                if (endIndex >= 0) {
+                    // The first node split will contain the ]] markers
+                    String relatedData = nodeValue.substring(0, endIndex + 2);
+
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_CDATA_SECTIONS_SPLIT,
+                            null);
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_WARNING,
+                                msg,
+                                MsgKey.ER_CDATA_SECTIONS_SPLIT,
+                                null,
+                                relatedData,
+                                null));
+                    }
+                }
+            } else {
+                if (endIndex >= 0) {
+                    // The first node split will contain the ]] markers 
+                    String relatedData = nodeValue.substring(0, endIndex + 2);
+
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_CDATA_SECTIONS_SPLIT,
+                            null);
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_ERROR,
+                                msg,
+                                MsgKey.ER_CDATA_SECTIONS_SPLIT));
+                    }
+                    // Report an error and return.  What error???
+                    return;
+                }
+            }
+
+            // apply the LSSerializer filter
+            if (!applyFilter(node, NodeFilter.SHOW_CDATA_SECTION)) {
+                return;
+            }
+
+            // splits the cdata-section
+            if (fLexicalHandler != null) {
+                fLexicalHandler.startCDATA();
+            }
+            dispatachChars(node);
+            if (fLexicalHandler != null) {
+                fLexicalHandler.endCDATA();
+            }
+        } else {
+            dispatachChars(node);
+        }
+    }
+
+    /**
+     * Serializes an Text Node.
+     * 
+     * @param node The Text Node to serialize
+     */
+    protected void serializeText(Text node) throws SAXException {
+        if (fNextIsRaw) {
+            fNextIsRaw = false;
+            fSerializer.processingInstruction(
+                javax.xml.transform.Result.PI_DISABLE_OUTPUT_ESCAPING,
+                "");
+            dispatachChars(node);
+            fSerializer.processingInstruction(
+                javax.xml.transform.Result.PI_ENABLE_OUTPUT_ESCAPING,
+                "");
+        } else {
+            // keep track of dispatch or not to avoid duplicaiton of filter code
+            boolean bDispatch = false;
+
+            // well-formed=true
+            if ((fFeatures & WELLFORMED) != 0) {
+                isTextWellFormed(node);
+            }
+
+            // if the node is whitespace
+            // Determine the Attr's type.
+            boolean isElementContentWhitespace = false;
+            if (fIsLevel3DOM) {
+                isElementContentWhitespace =
+                       node.isElementContentWhitespace();
+            }
+
+            if (isElementContentWhitespace) {
+                // element-content-whitespace=true
+                if ((fFeatures & ELEM_CONTENT_WHITESPACE) != 0) {
+                    bDispatch = true;
+                }
+            } else {
+                bDispatch = true;
+            }
+
+            // apply the LSSerializer filter
+            if (!applyFilter(node, NodeFilter.SHOW_TEXT)) {
+                return;
+            }
+
+            if (bDispatch) {
+                dispatachChars(node);
+            }
+        }
+    }
+
+    /**
+     * Serializes an EntityReference Node.
+     * 
+     * @param node The EntityReference Node to serialize
+     * @param bStart Inicates if called from start or endNode 
+     */
+    protected void serializeEntityReference(
+        EntityReference node,
+        boolean bStart)
+        throws SAXException {
+        if (bStart) {
+            EntityReference eref = node;
+            // entities=true
+            if ((fFeatures & ENTITIES) != 0) {
+                
+                // perform well-formedness and other checking only if 
+                // entities = true
+
+                // well-formed=true
+                if ((fFeatures & WELLFORMED) != 0) {
+                    isEntityReferneceWellFormed(node);
+                }
+
+                // check "unbound-prefix-in-entity-reference" [fatal] 
+                // Raised if the configuration parameter "namespaces" is set to true
+                if ((fFeatures & NAMESPACES) != 0) {
+                    checkUnboundPrefixInEntRef(node);
+                }
+
+                // The filter should not apply in this case, since the
+                // EntityReference is not being expanded.
+                // should we pass entity reference nodes to the filter???
+            } 
+            
+            if (fLexicalHandler != null) {
+
+                // startEntity outputs only Text but not Element, Attr, Comment 
+                // and PI child nodes.  It does so by setting the m_inEntityRef 
+                // in ToStream and using this to decide if a node is to be 
+                // serialized or not.
+                fLexicalHandler.startEntity(eref.getNodeName());
+            } 
+
+        } else {
+            EntityReference eref = node;
+            // entities=true or false, 
+            if (fLexicalHandler != null) {
+                fLexicalHandler.endEntity(eref.getNodeName());
+            }
+        }
+    }
+
+    
+    // ***********************************************************************
+    // Methods to check well-formedness
+    // ***********************************************************************
+    /**
+     * Taken from org.apache.xerces.dom.CoreDocumentImpl
+     * 
+     * Check the string against XML's definition of acceptable names for
+     * elements and attributes and so on using the XMLCharacterProperties
+     * utility class
+     */
+    protected boolean isXMLName(String s, boolean xml11Version) {
+
+        if (s == null) {
+            return false;
+        }
+        if (!xml11Version)
+            return XMLChar.isValidName(s);
+        else
+            return XML11Char.isXML11ValidName(s);
+    }
+
+    /**
+     * Taken from org.apache.xerces.dom.CoreDocumentImpl
+     *  
+     * Checks if the given qualified name is legal with respect
+     * to the version of XML to which this document must conform.
+     *
+     * @param prefix prefix of qualified name
+     * @param local local part of qualified name
+     */
+    protected boolean isValidQName(
+        String prefix,
+        String local,
+        boolean xml11Version) {
+
+        // check that both prefix and local part match NCName
+        if (local == null)
+            return false;
+        boolean validNCName = false;
+
+        if (!xml11Version) {
+            validNCName =
+                (prefix == null || XMLChar.isValidNCName(prefix))
+                    && XMLChar.isValidNCName(local);
+        } else {
+            validNCName =
+                (prefix == null || XML11Char.isXML11ValidNCName(prefix))
+                    && XML11Char.isXML11ValidNCName(local);
+        }
+
+        return validNCName;
+    }
+
+    /**
+     * Checks if a XML character is well-formed
+     * 
+     * @param characters A String of characters to be checked for Well-Formedness
+     * @param refInvalidChar A reference to the character to be returned that was determined invalid. 
+     */
+    protected boolean isWFXMLChar(String chardata, Character refInvalidChar) {
+        if (chardata == null || (chardata.length() == 0)) {
+            return true;
+        }
+
+        char[] dataarray = chardata.toCharArray();
+        int datalength = dataarray.length;
+
+        // version of the document is XML 1.1
+        if (fIsXMLVersion11) {
+            //we need to check all characters as per production rules of XML11
+            int i = 0;
+            while (i < datalength) {
+                if (XML11Char.isXML11Invalid(dataarray[i++])) {
+                    // check if this is a supplemental character
+                    char ch = dataarray[i - 1];
+                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {
+                        char ch2 = dataarray[i++];
+                        if (XMLChar.isLowSurrogate(ch2)
+                            && XMLChar.isSupplemental(
+                                XMLChar.supplemental(ch, ch2))) {
+                            continue;
+                        }
+                    }
+                    // Reference to invalid character which is returned
+                    refInvalidChar = new Character(ch);
+                    return false;
+                }
+            }
+        } // version of the document is XML 1.0
+        else {
+            // we need to check all characters as per production rules of XML 1.0
+            int i = 0;
+            while (i < datalength) {
+                if (XMLChar.isInvalid(dataarray[i++])) {
+                    // check if this is a supplemental character
+                    char ch = dataarray[i - 1];
+                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {
+                        char ch2 = dataarray[i++];
+                        if (XMLChar.isLowSurrogate(ch2)
+                            && XMLChar.isSupplemental(
+                                XMLChar.supplemental(ch, ch2))) {
+                            continue;
+                        }
+                    }
+                    // Reference to invalid character which is returned                    
+                    refInvalidChar = new Character(ch);
+                    return false;
+                }
+            }
+        } // end-else fDocument.isXMLVersion()
+
+        return true;
+    } // isXMLCharWF
+
+    /**
+     * Checks if a XML character is well-formed.  If there is a problem with
+     * the character a non-null Character is returned else null is returned.
+     * 
+     * @param characters A String of characters to be checked for Well-Formedness
+     * @return Character A reference to the character to be returned that was determined invalid. 
+     */
+    protected Character isWFXMLChar(String chardata) {
+    	Character refInvalidChar;
+        if (chardata == null || (chardata.length() == 0)) {
+            return null;
+        }
+
+        char[] dataarray = chardata.toCharArray();
+        int datalength = dataarray.length;
+
+        // version of the document is XML 1.1
+        if (fIsXMLVersion11) {
+            //we need to check all characters as per production rules of XML11
+            int i = 0;
+            while (i < datalength) {
+                if (XML11Char.isXML11Invalid(dataarray[i++])) {
+                    // check if this is a supplemental character
+                    char ch = dataarray[i - 1];
+                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {
+                        char ch2 = dataarray[i++];
+                        if (XMLChar.isLowSurrogate(ch2)
+                            && XMLChar.isSupplemental(
+                                XMLChar.supplemental(ch, ch2))) {
+                            continue;
+                        }
+                    }
+                    // Reference to invalid character which is returned
+                    refInvalidChar = new Character(ch);
+                    return refInvalidChar;
+                }
+            }
+        } // version of the document is XML 1.0
+        else {
+            // we need to check all characters as per production rules of XML 1.0
+            int i = 0;
+            while (i < datalength) {
+                if (XMLChar.isInvalid(dataarray[i++])) {
+                    // check if this is a supplemental character
+                    char ch = dataarray[i - 1];
+                    if (XMLChar.isHighSurrogate(ch) && i < datalength) {
+                        char ch2 = dataarray[i++];
+                        if (XMLChar.isLowSurrogate(ch2)
+                            && XMLChar.isSupplemental(
+                                XMLChar.supplemental(ch, ch2))) {
+                            continue;
+                        }
+                    }
+                    // Reference to invalid character which is returned                    
+                    refInvalidChar = new Character(ch);
+                    return refInvalidChar;
+                }
+            }
+        } // end-else fDocument.isXMLVersion()
+
+        return null;
+    } // isXMLCharWF
+
+    /**
+     * Checks if a comment node is well-formed
+     * 
+     * @param data The contents of the comment node
+     * @return a boolean indiacating if the comment is well-formed or not.
+     */
+    protected void isCommentWellFormed(String data) {
+        if (data == null || (data.length() == 0)) {
+            return;
+        }
+
+        char[] dataarray = data.toCharArray();
+        int datalength = dataarray.length;
+
+        // version of the document is XML 1.1
+        if (fIsXMLVersion11) {
+            // we need to check all chracters as per production rules of XML11
+            int i = 0;
+            while (i < datalength) {
+                char c = dataarray[i++];
+                if (XML11Char.isXML11Invalid(c)) {
+                    // check if this is a supplemental character
+                    if (XMLChar.isHighSurrogate(c) && i < datalength) {
+                        char c2 = dataarray[i++];
+                        if (XMLChar.isLowSurrogate(c2)
+                            && XMLChar.isSupplemental(
+                                XMLChar.supplemental(c, c2))) {
+                            continue;
+                        }
+                    }
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,
+                            new Object[] { new Character(c)});
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_FATAL_ERROR,
+                                msg,
+                                MsgKey.ER_WF_INVALID_CHARACTER,
+                                null,
+                                null,
+                                null));
+                    }
+                } else if (c == '-' && i < datalength && dataarray[i] == '-') {
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_WF_DASH_IN_COMMENT,
+                            null);
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_FATAL_ERROR,
+                                msg,
+                                MsgKey.ER_WF_INVALID_CHARACTER,
+                                null,
+                                null,
+                                null));
+                    }
+                }
+            }
+        } // version of the document is XML 1.0
+        else {
+            // we need to check all chracters as per production rules of XML 1.0
+            int i = 0;
+            while (i < datalength) {
+                char c = dataarray[i++];
+                if (XMLChar.isInvalid(c)) {
+                    // check if this is a supplemental character
+                    if (XMLChar.isHighSurrogate(c) && i < datalength) {
+                        char c2 = dataarray[i++];
+                        if (XMLChar.isLowSurrogate(c2)
+                            && XMLChar.isSupplemental(
+                                XMLChar.supplemental(c, c2))) {
+                            continue;
+                        }
+                    }
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,
+                            new Object[] { new Character(c)});
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_FATAL_ERROR,
+                                msg,
+                                MsgKey.ER_WF_INVALID_CHARACTER,
+                                null,
+                                null,
+                                null));
+                    }
+                } else if (c == '-' && i < datalength && dataarray[i] == '-') {
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_WF_DASH_IN_COMMENT,
+                            null);
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_FATAL_ERROR,
+                                msg,
+                                MsgKey.ER_WF_INVALID_CHARACTER,
+                                null,
+                                null,
+                                null));
+                    }
+                }
+            }
+        }
+        return;
+    }
+
+    /**
+     * Checks if an element node is well-formed, by checking its Name for well-formedness.
+     * 
+     * @param data The contents of the comment node
+     * @return a boolean indiacating if the comment is well-formed or not.
+     */
+    protected void isElementWellFormed(Node node) {
+        boolean isNameWF = false;
+        if ((fFeatures & NAMESPACES) != 0) {
+            isNameWF =
+                isValidQName(
+                    node.getPrefix(),
+                    node.getLocalName(),
+                    fIsXMLVersion11);
+        } else {
+            isNameWF = isXMLName(node.getNodeName(), fIsXMLVersion11);
+        }
+
+        if (!isNameWF) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                    new Object[] { "Element", node.getNodeName()});
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                        null,
+                        null,
+                        null));
+            }
+        }
+    }
+
+    /**
+     * Checks if an attr node is well-formed, by checking it's Name and value
+     * for well-formedness.
+     * 
+     * @param data The contents of the comment node
+     * @return a boolean indiacating if the comment is well-formed or not.
+     */
+    protected void isAttributeWellFormed(Node node) {
+        boolean isNameWF = false;
+        if ((fFeatures & NAMESPACES) != 0) {
+            isNameWF =
+                isValidQName(
+                    node.getPrefix(),
+                    node.getLocalName(),
+                    fIsXMLVersion11);
+        } else {
+            isNameWF = isXMLName(node.getNodeName(), fIsXMLVersion11);
+        }
+
+        if (!isNameWF) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                    new Object[] { "Attr", node.getNodeName()});
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                        null,
+                        null,
+                        null));
+            }
+        }
+
+        // Check the Attr's node value
+        // WFC: No < in Attribute Values
+        String value = node.getNodeValue();
+        if (value.indexOf('<') >= 0) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_LT_IN_ATTVAL,
+                    new Object[] {
+                        ((Attr) node).getOwnerElement().getNodeName(),
+                        node.getNodeName()});
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_LT_IN_ATTVAL,
+                        null,
+                        null,
+                        null));
+            }
+        }
+
+        // we need to loop through the children of attr nodes and check their values for
+        // well-formedness  
+        NodeList children = node.getChildNodes();
+        for (int i = 0; i < children.getLength(); i++) {
+            Node child = children.item(i);
+            // An attribute node with no text or entity ref child for example
+            // doc.createAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:ns");
+            // followes by
+            // element.setAttributeNodeNS(attribute);
+            // can potentially lead to this situation.  If the attribute
+            // was a prefix Namespace attribute declaration then then DOM Core 
+            // should have some exception defined for this.
+            if (child == null) {
+                // we should probably report an error
+                continue;
+            }
+            switch (child.getNodeType()) {
+                case Node.TEXT_NODE :
+                    isTextWellFormed((Text) child);
+                    break;
+                case Node.ENTITY_REFERENCE_NODE :
+                    isEntityReferneceWellFormed((EntityReference) child);
+                    break;
+                default :
+            }
+        }
+
+        // TODO:
+        // WFC: Check if the attribute prefix is bound to 
+        // http://www.w3.org/2000/xmlns/  
+
+        // WFC: Unique Att Spec
+        // Perhaps pass a seen boolean value to this method.  serializeAttList will determine
+        // if the attr was seen before.
+    }
+
+    /**
+     * Checks if a PI node is well-formed, by checking it's Name and data
+     * for well-formedness.
+     * 
+     * @param data The contents of the comment node
+     */
+    protected void isPIWellFormed(ProcessingInstruction node) {
+        // Is the PI Target a valid XML name
+        if (!isXMLName(node.getNodeName(), fIsXMLVersion11)) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                    new Object[] { "ProcessingInstruction", node.getTarget()});
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                        null,
+                        null,
+                        null));
+            }
+        }
+
+        // Does the PI Data carry valid XML characters
+
+        // REVISIT: Should we check if the PI DATA contains a ?> ???
+        Character invalidChar = isWFXMLChar(node.getData());
+        if (invalidChar != null) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,
+                    new Object[] { Integer.toHexString(Character.getNumericValue(invalidChar.charValue())) });
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER,
+                        null,
+                        null,
+                        null));
+            }
+        }
+    }
+
+    /**
+     * Checks if an CDATASection node is well-formed, by checking it's data
+     * for well-formedness.  Note that the presence of a CDATA termination mark
+     * in the contents of a CDATASection is handled by the parameter 
+     * spli-cdata-sections
+     * 
+     * @param data The contents of the comment node
+     */
+    protected void isCDATASectionWellFormed(CDATASection node) {
+        // Does the data valid XML character data        
+        Character invalidChar = isWFXMLChar(node.getData());
+        //if (!isWFXMLChar(node.getData(), invalidChar)) {
+        if (invalidChar != null) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,
+                    new Object[] { Integer.toHexString(Character.getNumericValue(invalidChar.charValue())) });
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER,
+                        null,
+                        null,
+                        null));
+            }
+        }
+    }
+
+    /**
+     * Checks if an Text node is well-formed, by checking if it contains invalid
+     * XML characters.
+     * 
+     * @param data The contents of the comment node
+     */
+    protected void isTextWellFormed(Text node) {
+        // Does the data valid XML character data        
+    	Character invalidChar = isWFXMLChar(node.getData());
+    	if (invalidChar != null) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,
+                    new Object[] { Integer.toHexString(Character.getNumericValue(invalidChar.charValue())) });
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER,
+                        null,
+                        null,
+                        null));
+            }
+        }
+    }
+
+    /**
+     * Checks if an EntityRefernece node is well-formed, by checking it's node name.  Then depending
+     * on whether it is referenced in Element content or in an Attr Node, checks if the EntityReference
+     * references an unparsed entity or a external entity and if so throws raises the 
+     * appropriate well-formedness error.  
+     * 
+     * @param data The contents of the comment node
+     * @parent The parent of the EntityReference Node
+     */
+    protected void isEntityReferneceWellFormed(EntityReference node) {
+        // Is the EntityReference name a valid XML name
+        if (!isXMLName(node.getNodeName(), fIsXMLVersion11)) {
+            String msg =
+                Utils.messages.createMessage(
+                    MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                    new Object[] { "EntityReference", node.getNodeName()});
+
+            if (fErrorHandler != null) {
+                fErrorHandler.handleError(
+                    new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR,
+                        msg,
+                        MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                        null,
+                        null,
+                        null));
+            }
+        }
+
+        // determine the parent node
+        Node parent = node.getParentNode();
+
+        // Traverse the declared entities and check if the nodeName and namespaceURI
+        // of the EntityReference matches an Entity.  If so, check the if the notationName
+        // is not null, if so, report an error.
+        DocumentType docType = node.getOwnerDocument().getDoctype();
+        if (docType != null) {
+            NamedNodeMap entities = docType.getEntities();
+            for (int i = 0; i < entities.getLength(); i++) {
+                Entity ent = (Entity) entities.item(i);
+
+                String nodeName =
+                    node.getNodeName() == null ? "" : node.getNodeName();
+                String nodeNamespaceURI =
+                    node.getNamespaceURI() == null
+                        ? ""
+                        : node.getNamespaceURI();
+                String entName =
+                    ent.getNodeName() == null ? "" : ent.getNodeName();
+                String entNamespaceURI =
+                    ent.getNamespaceURI() == null ? "" : ent.getNamespaceURI();
+                // If referenced in Element content
+                // WFC: Parsed Entity
+                if (parent.getNodeType() == Node.ELEMENT_NODE) {
+                    if (entNamespaceURI.equals(nodeNamespaceURI)
+                        && entName.equals(nodeName)) {
+
+                        if (ent.getNotationName() != null) {
+                            String msg =
+                                Utils.messages.createMessage(
+                                    MsgKey.ER_WF_REF_TO_UNPARSED_ENT,
+                                    new Object[] { node.getNodeName()});
+
+                            if (fErrorHandler != null) {
+                                fErrorHandler.handleError(
+                                    new DOMErrorImpl(
+                                        DOMError.SEVERITY_FATAL_ERROR,
+                                        msg,
+                                        MsgKey.ER_WF_REF_TO_UNPARSED_ENT,
+                                        null,
+                                        null,
+                                        null));
+                            }
+                        }
+                    }
+                } // end if WFC: Parsed Entity
+
+                // If referenced in an Attr value
+                // WFC: No External Entity References
+                if (parent.getNodeType() == Node.ATTRIBUTE_NODE) {
+                    if (entNamespaceURI.equals(nodeNamespaceURI)
+                        && entName.equals(nodeName)) {
+
+                        if (ent.getPublicId() != null
+                            || ent.getSystemId() != null
+                            || ent.getNotationName() != null) {
+                            String msg =
+                                Utils.messages.createMessage(
+                                    MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,
+                                    new Object[] { node.getNodeName()});
+
+                            if (fErrorHandler != null) {
+                                fErrorHandler.handleError(
+                                    new DOMErrorImpl(
+                                        DOMError.SEVERITY_FATAL_ERROR,
+                                        msg,
+                                        MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,
+                                        null,
+                                        null,
+                                        null));
+                            }
+                        }
+                    }
+                } //end if WFC: No External Entity References
+            }
+        }
+    } // isEntityReferneceWellFormed    
+
+    /**
+     * If the configuration parameter "namespaces" is set to true, this methods
+     * checks if an entity whose replacement text contains unbound namespace 
+     * prefixes is referenced in a location where there are no bindings for 
+     * the namespace prefixes and if so raises a LSException with the error-type
+     * "unbound-prefix-in-entity-reference"   
+     * 
+     * @param Node, The EntityReference nodes whose children are to be checked
+     */
+    protected void checkUnboundPrefixInEntRef(Node node) {
+        Node child, next;
+        for (child = node.getFirstChild(); child != null; child = next) {
+            next = child.getNextSibling();
+
+            if (child.getNodeType() == Node.ELEMENT_NODE) {
+
+                //If a NamespaceURI is not declared for the current
+                //node's prefix, raise a fatal error.
+                String prefix = child.getPrefix();
+                if (prefix != null
+                		&& fNSBinder.getURI(prefix) == null) {
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,
+                            new Object[] {
+                                node.getNodeName(),
+                                child.getNodeName(),
+                                prefix });
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_FATAL_ERROR,
+                                msg,
+                                MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,
+                                null,
+                                null,
+                                null));
+                    }
+                }
+
+                NamedNodeMap attrs = child.getAttributes();
+
+                for (int i = 0; i < attrs.getLength(); i++) {
+                    String attrPrefix = attrs.item(i).getPrefix();
+                    if (attrPrefix != null
+                    		&& fNSBinder.getURI(attrPrefix) == null) {
+                        String msg =
+                            Utils.messages.createMessage(
+                                MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,
+                                new Object[] {
+                                    node.getNodeName(),
+                                    child.getNodeName(),
+                                    attrs.item(i)});
+
+                        if (fErrorHandler != null) {
+                            fErrorHandler.handleError(
+                                new DOMErrorImpl(
+                                    DOMError.SEVERITY_FATAL_ERROR,
+                                    msg,
+                                    MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,
+                                    null,
+                                    null,
+                                    null));
+                        }
+                    }
+                }
+            }
+
+            if (child.hasChildNodes()) {
+                checkUnboundPrefixInEntRef(child);
+            }
+        }
+    }
+
+    // ***********************************************************************
+    // Namespace normalization
+    // ***********************************************************************
+    /**
+     * Records local namespace declarations, to be used for normalization later
+     * 
+     * @param Node, The element node, whose namespace declarations are to be recorded
+     */
+    protected void recordLocalNSDecl(Node node) {
+        NamedNodeMap atts = ((Element) node).getAttributes();
+        int length = atts.getLength();
+
+        for (int i = 0; i < length; i++) {
+            Node attr = atts.item(i);
+
+            String localName = attr.getLocalName();
+            String attrPrefix = attr.getPrefix();
+            String attrValue = attr.getNodeValue();
+            String attrNS = attr.getNamespaceURI();
+
+            localName =
+                localName == null
+                    || XMLNS_PREFIX.equals(localName) ? "" : localName;
+            attrPrefix = attrPrefix == null ? "" : attrPrefix;
+            attrValue = attrValue == null ? "" : attrValue;
+            attrNS = attrNS == null ? "" : attrNS;
+
+            // check if attribute is a namespace decl
+            if (XMLNS_URI.equals(attrNS)) {
+
+                // No prefix may be bound to http://www.w3.org/2000/xmlns/.
+                if (XMLNS_URI.equals(attrValue)) {
+                    String msg =
+                        Utils.messages.createMessage(
+                            MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,
+                            new Object[] { attrPrefix, XMLNS_URI });
+
+                    if (fErrorHandler != null) {
+                        fErrorHandler.handleError(
+                            new DOMErrorImpl(
+                                DOMError.SEVERITY_ERROR,
+                                msg,
+                                MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,
+                                null,
+                                null,
+                                null));
+                    }
+                } else {
+                    // store the namespace-declaration
+                	if (XMLNS_PREFIX.equals(attrPrefix) ) {
+                        // record valid decl
+                        if (attrValue.length() != 0) {
+                            fNSBinder.declarePrefix(localName, attrValue);
+                        } else {
+                            // Error; xmlns:prefix=""
+                        }
+                    } else { // xmlns
+                        // empty prefix is always bound ("" or some string)
+                        fNSBinder.declarePrefix("", attrValue);
+                    }
+                }
+                
+            }
+        }
+    }
+
+    /**
+     * Fixes an element's namespace
+     * 
+     * @param Node, The element node, whose namespace is to be fixed
+     */
+    protected void fixupElementNS(Node node) throws SAXException {
+        String namespaceURI = ((Element) node).getNamespaceURI();
+        String prefix = ((Element) node).getPrefix();
+        String localName = ((Element) node).getLocalName();
+
+        if (namespaceURI != null) {
+            //if ( Element's prefix/namespace pair (or default namespace,
+            // if no prefix) are within the scope of a binding )
+            prefix = prefix == null ? "" : prefix;
+            String inScopeNamespaceURI = fNSBinder.getURI(prefix);
+
+            if ((inScopeNamespaceURI != null
+                && inScopeNamespaceURI.equals(namespaceURI))) {
+                // do nothing, declaration in scope is inherited
+                
+            } else {
+                // Create a local namespace declaration attr for this namespace,
+                // with Element's current prefix (or a default namespace, if
+                // no prefix). If there's a conflicting local declaration
+                // already present, change its value to use this namespace.
+                
+                // Add the xmlns declaration attribute
+            	//fNSBinder.pushNamespace(prefix, namespaceURI, fElementDepth);
+                if ((fFeatures & NAMESPACEDECLS) != 0) {
+                    if ("".equals(prefix) || "".equals(namespaceURI)) {
+                    	((Element)node).setAttributeNS(XMLNS_URI, XMLNS_PREFIX, namespaceURI);
+                    } else {
+                    	((Element)node).setAttributeNS(XMLNS_URI, XMLNS_PREFIX + ":" + prefix, namespaceURI);
+                    }
+                }
+                fLocalNSBinder.declarePrefix(prefix, namespaceURI);
+                fNSBinder.declarePrefix(prefix, namespaceURI);
+
+            } 
+        } else {
+            // Element has no namespace
+            // DOM Level 1
+            if (localName == null || "".equals(localName)) {
+                //  DOM Level 1 node!
+                String msg =
+                    Utils.messages.createMessage(
+                        MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,
+                        new Object[] { node.getNodeName()});
+
+                if (fErrorHandler != null) {
+                    fErrorHandler.handleError(
+                        new DOMErrorImpl(
+                            DOMError.SEVERITY_ERROR,
+                            msg,
+                            MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,
+                            null,
+                            null,
+                            null));
+                }
+            } else {
+            	namespaceURI = fNSBinder.getURI("");
+            	if (namespaceURI !=null && namespaceURI.length() > 0) {
+            	    ((Element)node).setAttributeNS(XMLNS_URI, XMLNS_PREFIX, "");
+            		fLocalNSBinder.declarePrefix("", "");
+                    fNSBinder.declarePrefix("", "");
+            	}
+            }
+        }
+    }
+    /** 
+     * This table is a quick lookup of a property key (String) to the integer that
+     * is the bit to flip in the fFeatures field, so the integers should have
+     * values 1,2,4,8,16...
+     * 
+     */
+    private static final Hashtable s_propKeys = new Hashtable();
+    static {
+
+        // Initialize the mappings of property keys to bit values (Integer objects)
+        // or mappings to a String object "", which indicates we are interested
+        // in the property, but it does not have a simple bit value to flip
+
+        // cdata-sections
+        int i = CDATA;
+        Integer val = new Integer(i);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_CDATA_SECTIONS,
+            val);
+
+        // comments
+        int i1 = COMMENTS;
+        val = new Integer(i1);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_COMMENTS,
+            val);
+
+        // element-content-whitespace
+        int i2 = ELEM_CONTENT_WHITESPACE;
+        val = new Integer(i2);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,
+            val);
+        int i3 = ENTITIES;
+
+        // entities
+        val = new Integer(i3);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_ENTITIES,
+            val);
+
+        // namespaces
+        int i4 = NAMESPACES;
+        val = new Integer(i4);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_NAMESPACES,
+            val);
+
+        // namespace-declarations
+        int i5 = NAMESPACEDECLS;
+        val = new Integer(i5);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_NAMESPACE_DECLARATIONS,
+            val);
+
+        // split-cdata-sections
+        int i6 = SPLITCDATA;
+        val = new Integer(i6);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_SPLIT_CDATA,
+            val);
+
+        // discard-default-content	
+        int i7 = WELLFORMED;
+        val = new Integer(i7);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS + DOMConstants.DOM_WELLFORMED,
+            val);
+
+        // discard-default-content	
+        int i8 = DISCARDDEFAULT;
+        val = new Integer(i8);
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT,
+            val);
+
+        // We are interested in these properties, but they don't have a simple
+        // bit value to deal with.
+        s_propKeys.put(
+            DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_FORMAT_PRETTY_PRINT,
+            "");
+        s_propKeys.put(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "");
+        s_propKeys.put(
+            DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION,
+            "");
+        s_propKeys.put(DOMConstants.S_XSL_OUTPUT_ENCODING, "");
+        s_propKeys.put(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.DOM_ENTITIES, "");
+    }
+
+    /**
+     * Initializes fFeatures based on the DOMConfiguration Parameters set.
+     *
+     * @param properties DOMConfiguraiton properties that were set and which are
+     * to be used while serializing the DOM. 
+     */
+    protected void initProperties(Properties properties) {
+
+        for (Enumeration keys = properties.keys(); keys.hasMoreElements();) {
+
+            final String key = (String) keys.nextElement();
+    
+            // caonical-form
+            // Other features will be enabled or disabled when this is set to true or false.
+
+            // error-handler; set via the constructor
+
+            // infoset
+            // Other features will be enabled or disabled when this is set to true
+
+            // A quick lookup for the given set of properties (cdata-sections ...)
+            final Object iobj = s_propKeys.get(key);
+            if (iobj != null) {
+                if (iobj instanceof Integer) {
+                    // Dealing with a property that has a simple bit value that
+                    // we need to set
+
+                    // cdata-sections			
+                    // comments
+                    // element-content-whitespace
+                    // entities
+                    // namespaces
+                    // namespace-declarations
+                    // split-cdata-sections
+                    // well-formed
+                    // discard-default-content
+                    final int BITFLAG = ((Integer) iobj).intValue();
+                    if ((properties.getProperty(key).endsWith("yes"))) {
+                        fFeatures = fFeatures | BITFLAG;
+                    } else {
+                        fFeatures = fFeatures & ~BITFLAG;
+                    }
+                } else {
+                    // We are interested in the property, but it is not
+                    // a simple bit that we need to set.
+
+                    if ((DOMConstants.S_DOM3_PROPERTIES_NS
+                        + DOMConstants.DOM_FORMAT_PRETTY_PRINT)
+                        .equals(key)) {
+                        // format-pretty-print; set internally on the serializers via xsl:output properties in LSSerializer
+                        if ((properties.getProperty(key).endsWith("yes"))) {
+                            fSerializer.setIndent(true);
+                            fSerializer.setIndentAmount(3);
+                        } else {
+                            fSerializer.setIndent(false);
+                        }
+                    } else if (
+                        (DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL).equals(
+                            key)) {
+                        // omit-xml-declaration; set internally on the serializers via xsl:output properties in LSSerializer
+                        if ((properties.getProperty(key).endsWith("yes"))) {
+                            fSerializer.setOmitXMLDeclaration(true);
+                        } else {
+                            fSerializer.setOmitXMLDeclaration(false);
+                        }
+                    } else if (
+                        (
+                            DOMConstants.S_XERCES_PROPERTIES_NS
+                                + DOMConstants.S_XML_VERSION).equals(
+                            key)) {
+                        // Retreive the value of the XML Version attribute via the xml-version
+                        String version = properties.getProperty(key);
+                        if ("1.1".equals(version)) {
+                            fIsXMLVersion11 = true;
+                            fSerializer.setVersion(version);
+                        } else {
+                            fSerializer.setVersion("1.0");
+                        }
+                    } else if (
+                        (DOMConstants.S_XSL_OUTPUT_ENCODING).equals(key)) {
+                        // Retreive the value of the XML Encoding attribute
+                        String encoding = properties.getProperty(key);
+                        if (encoding != null) {
+                            fSerializer.setEncoding(encoding);
+                        }
+                    } else if ((DOMConstants.S_XERCES_PROPERTIES_NS
+                            + DOMConstants.DOM_ENTITIES).equals(key)) {
+                        // Preserve entity references in the document
+                        if ((properties.getProperty(key).endsWith("yes"))) {
+                            fSerializer.setDTDEntityExpansion(false);
+                        }
+                        else {
+                            fSerializer.setDTDEntityExpansion(true);
+                        }
+                    } else {
+                        // We shouldn't get here, ever, now what?
+                    }
+                }
+            }
+        }
+        // Set the newLine character to use
+        if (fNewLine != null) {
+            fSerializer.setOutputProperty(OutputPropertiesFactory.S_KEY_LINE_SEPARATOR, fNewLine);
+        }
+    }
+
+} //TreeWalker
diff --git a/src/org/apache/xml/serializer/dom3/DOMConstants.java b/src/org/apache/xml/serializer/dom3/DOMConstants.java
index dae4f59..aec2910 100644
--- a/src/org/apache/xml/serializer/dom3/DOMConstants.java
+++ b/src/org/apache/xml/serializer/dom3/DOMConstants.java
@@ -1,134 +1,134 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-/**

- * DOM Constants used by the DOM Level 3 LSSerializer implementation.

- *

- * @xsl.usage internal

- */

-final class DOMConstants {

-    //

-    // Constants: DOM Level 3 feature ids

-    //

-    public static final String DOM3_REC_URL = "http://www.w3.org/TR/DOM-Level-3-LS";

-

-    public static final String XERCES_URL = "http://xml.apache.org/xerces-2j";

-

-    // The namespace used to qualified DOM Level 3 DOMConfiguration parameters

-    public static final String S_DOM3_PROPERTIES_NS = "{"

-            + DOMConstants.DOM3_REC_URL + "}";

-

-    public static final String S_XERCES_PROPERTIES_NS = "{"

-            + DOMConstants.XERCES_URL + "}";

-

-    // xmlns namespaces 

-    private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";

-

-    // namespace prefix

-    private static final String XMLNS_PREFIX = "xmlns";

-

-    // ************************************************************************

-    // DOM Level 3 DOM Configuration parameter names

-    // ************************************************************************

-    // DOM Level 3 parameters defined in Core

-    public static final String DOM_CANONICAL_FORM = "canonical-form"; // Unsupported, we only appear to support this

-

-    public static final String DOM_CDATA_SECTIONS = "cdata-sections";

-

-    public static final String DOM_CHECK_CHAR_NORMALIZATION = "check-character-normalization"; // Unsupported

-

-    public static final String DOM_COMMENTS = "comments";

-

-    public static final String DOM_DATATYPE_NORMALIZATION = "datatype-normalization"; // Unsupported

-

-    public static final String DOM_ELEMENT_CONTENT_WHITESPACE = "element-content-whitespace";

-

-    public static final String DOM_ENTITIES = "entities";

-

-    public static final String DOM_INFOSET = "infoset";

-

-    public static final String DOM_NAMESPACES = "namespaces";

-

-    public static final String DOM_NAMESPACE_DECLARATIONS = "namespace-declarations";

-

-    public static final String DOM_NORMALIZE_CHARACTERS = "normalize-characters"; // Unsupported

-

-    public static final String DOM_SPLIT_CDATA = "split-cdata-sections";

-

-    public static final String DOM_VALIDATE_IF_SCHEMA = "validate-if-schema"; // Unsopported

-

-    public static final String DOM_VALIDATE = "validate"; // Unsopported

-

-    public static final String DOM_WELLFORMED = "well-formed";

-

-    // DOM Level 3 Save

-    public static final String DOM_DISCARD_DEFAULT_CONTENT = "discard-default-content";

-

-    public static final String DOM_FORMAT_PRETTY_PRINT = "format-pretty-print";

-

-    public static final String DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS = "ignore-unknown-character-denormalizations"; // Unsupported

-

-    public static final String DOM_XMLDECL = "xml-declaration";

-

-    // DOM Properties

-    public static final String DOM_ERROR_HANDLER = "error-handler";

-

-    public static final String DOM_SCHEMA_TYPE = "schema-type"; // Unsupported

-

-    public static final String DOM_SCHEMA_LOCATION = "schema-location"; // Unsupported

-

-    // ************************************************************************

-

-    // XSL Output properties

-    // The xsl:output 'indent' property used in LSSerializer 

-    public static final String S_XSL_OUTPUT_INDENT = "indent";

-

-    // The xsl:output 'indent' property used in LSSerializer 

-    public static final String S_XSL_OUTPUT_ENCODING = "encoding";

-

-    // The xsl:output 'omit-xml-declaration' property used in LSSerializer 

-    public static final String S_XSL_OUTPUT_OMIT_XML_DECL = "omit-xml-declaration";

-

-    // The xerces serializer specific 'omit-xml-declaration' property used in LSSerializer 

-    public static final String S_XML_VERSION = "xml-version";

-

-    //     

-    public static final String S_XSL_VALUE_ENTITIES = "org/apache/xml/serializer/XMLEntities";

-    

-    // Parameter values

-    public static final String DOM3_EXPLICIT_TRUE = "explicit:yes";

-

-    public static final String DOM3_DEFAULT_TRUE = "default:yes";

-

-    public static final String DOM3_EXPLICIT_FALSE = "explicit:no";

-

-    public static final String DOM3_DEFAULT_FALSE = "default:no";

-

-    // DOM Exceptions

-    public static final String DOM_EXCEPTION_FEATURE_NOT_FOUND = "FEATURE_NOT_FOUND";

-

-    public static final String DOM_EXCEPTION_FEATURE_NOT_SUPPORTED = "FEATURE_NOT_SUPPORTED";

-

-    public static final String DOM_LSEXCEPTION_SERIALIZER_ERR = "SERIALIZER_ERROR";

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+/**
+ * DOM Constants used by the DOM Level 3 LSSerializer implementation.
+ *
+ * @xsl.usage internal
+ */
+final class DOMConstants {
+    //
+    // Constants: DOM Level 3 feature ids
+    //
+    public static final String DOM3_REC_URL = "http://www.w3.org/TR/DOM-Level-3-LS";
+
+    public static final String XERCES_URL = "http://xml.apache.org/xerces-2j";
+
+    // The namespace used to qualified DOM Level 3 DOMConfiguration parameters
+    public static final String S_DOM3_PROPERTIES_NS = "{"
+            + DOMConstants.DOM3_REC_URL + "}";
+
+    public static final String S_XERCES_PROPERTIES_NS = "{"
+            + DOMConstants.XERCES_URL + "}";
+
+    // xmlns namespaces 
+    private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";
+
+    // namespace prefix
+    private static final String XMLNS_PREFIX = "xmlns";
+
+    // ************************************************************************
+    // DOM Level 3 DOM Configuration parameter names
+    // ************************************************************************
+    // DOM Level 3 parameters defined in Core
+    public static final String DOM_CANONICAL_FORM = "canonical-form"; // Unsupported, we only appear to support this
+
+    public static final String DOM_CDATA_SECTIONS = "cdata-sections";
+
+    public static final String DOM_CHECK_CHAR_NORMALIZATION = "check-character-normalization"; // Unsupported
+
+    public static final String DOM_COMMENTS = "comments";
+
+    public static final String DOM_DATATYPE_NORMALIZATION = "datatype-normalization"; // Unsupported
+
+    public static final String DOM_ELEMENT_CONTENT_WHITESPACE = "element-content-whitespace";
+
+    public static final String DOM_ENTITIES = "entities";
+
+    public static final String DOM_INFOSET = "infoset";
+
+    public static final String DOM_NAMESPACES = "namespaces";
+
+    public static final String DOM_NAMESPACE_DECLARATIONS = "namespace-declarations";
+
+    public static final String DOM_NORMALIZE_CHARACTERS = "normalize-characters"; // Unsupported
+
+    public static final String DOM_SPLIT_CDATA = "split-cdata-sections";
+
+    public static final String DOM_VALIDATE_IF_SCHEMA = "validate-if-schema"; // Unsopported
+
+    public static final String DOM_VALIDATE = "validate"; // Unsopported
+
+    public static final String DOM_WELLFORMED = "well-formed";
+
+    // DOM Level 3 Save
+    public static final String DOM_DISCARD_DEFAULT_CONTENT = "discard-default-content";
+
+    public static final String DOM_FORMAT_PRETTY_PRINT = "format-pretty-print";
+
+    public static final String DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS = "ignore-unknown-character-denormalizations"; // Unsupported
+
+    public static final String DOM_XMLDECL = "xml-declaration";
+
+    // DOM Properties
+    public static final String DOM_ERROR_HANDLER = "error-handler";
+
+    public static final String DOM_SCHEMA_TYPE = "schema-type"; // Unsupported
+
+    public static final String DOM_SCHEMA_LOCATION = "schema-location"; // Unsupported
+
+    // ************************************************************************
+
+    // XSL Output properties
+    // The xsl:output 'indent' property used in LSSerializer 
+    public static final String S_XSL_OUTPUT_INDENT = "indent";
+
+    // The xsl:output 'indent' property used in LSSerializer 
+    public static final String S_XSL_OUTPUT_ENCODING = "encoding";
+
+    // The xsl:output 'omit-xml-declaration' property used in LSSerializer 
+    public static final String S_XSL_OUTPUT_OMIT_XML_DECL = "omit-xml-declaration";
+
+    // The xerces serializer specific 'omit-xml-declaration' property used in LSSerializer 
+    public static final String S_XML_VERSION = "xml-version";
+
+    //     
+    public static final String S_XSL_VALUE_ENTITIES = "org/apache/xml/serializer/XMLEntities";
+    
+    // Parameter values
+    public static final String DOM3_EXPLICIT_TRUE = "explicit:yes";
+
+    public static final String DOM3_DEFAULT_TRUE = "default:yes";
+
+    public static final String DOM3_EXPLICIT_FALSE = "explicit:no";
+
+    public static final String DOM3_DEFAULT_FALSE = "default:no";
+
+    // DOM Exceptions
+    public static final String DOM_EXCEPTION_FEATURE_NOT_FOUND = "FEATURE_NOT_FOUND";
+
+    public static final String DOM_EXCEPTION_FEATURE_NOT_SUPPORTED = "FEATURE_NOT_SUPPORTED";
+
+    public static final String DOM_LSEXCEPTION_SERIALIZER_ERR = "SERIALIZER_ERROR";
+
+}
diff --git a/src/org/apache/xml/serializer/dom3/DOMErrorHandlerImpl.java b/src/org/apache/xml/serializer/dom3/DOMErrorHandlerImpl.java
index fd88266..27602ff 100644
--- a/src/org/apache/xml/serializer/dom3/DOMErrorHandlerImpl.java
+++ b/src/org/apache/xml/serializer/dom3/DOMErrorHandlerImpl.java
@@ -1,67 +1,67 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import org.w3c.dom.DOMError;

-import org.w3c.dom.DOMErrorHandler;

-

-/**

- * This is the default implementation of the ErrorHandler interface and is 

- * used if one is not provided.  The default implementation simply reports

- * DOMErrors to System.err.

- * 

- * @xsl.usage internal

- */

-final class DOMErrorHandlerImpl implements DOMErrorHandler {

-    

-    /**

-     * Default Constructor 

-     */

-    DOMErrorHandlerImpl() {

-    }

-    

-    /**

-     * Implementation of DOMErrorHandler.handleError that

-     * adds copy of error to list for later retrieval.

-     *

-     */

-    public boolean handleError(DOMError error) {

-        boolean fail = true;

-        String severity = null;

-        if (error.getSeverity() == DOMError.SEVERITY_WARNING) {

-            fail = false;

-            severity = "[Warning]";

-        } else if (error.getSeverity() == DOMError.SEVERITY_ERROR) {

-            severity = "[Error]";

-        } else if (error.getSeverity() == DOMError.SEVERITY_FATAL_ERROR) {

-            severity = "[Fatal Error]";

-        }

-        

-        System.err.println(severity + ": " + error.getMessage() + "\t");

-        System.err.println("Type : " + error.getType() + "\t" + "Related Data: "

-                + error.getRelatedData() + "\t" + "Related Exception: "

-                + error.getRelatedException() );

-        

-        return fail;

-    }

-}

-

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import org.w3c.dom.DOMError;
+import org.w3c.dom.DOMErrorHandler;
+
+/**
+ * This is the default implementation of the ErrorHandler interface and is 
+ * used if one is not provided.  The default implementation simply reports
+ * DOMErrors to System.err.
+ * 
+ * @xsl.usage internal
+ */
+final class DOMErrorHandlerImpl implements DOMErrorHandler {
+    
+    /**
+     * Default Constructor 
+     */
+    DOMErrorHandlerImpl() {
+    }
+    
+    /**
+     * Implementation of DOMErrorHandler.handleError that
+     * adds copy of error to list for later retrieval.
+     *
+     */
+    public boolean handleError(DOMError error) {
+        boolean fail = true;
+        String severity = null;
+        if (error.getSeverity() == DOMError.SEVERITY_WARNING) {
+            fail = false;
+            severity = "[Warning]";
+        } else if (error.getSeverity() == DOMError.SEVERITY_ERROR) {
+            severity = "[Error]";
+        } else if (error.getSeverity() == DOMError.SEVERITY_FATAL_ERROR) {
+            severity = "[Fatal Error]";
+        }
+        
+        System.err.println(severity + ": " + error.getMessage() + "\t");
+        System.err.println("Type : " + error.getType() + "\t" + "Related Data: "
+                + error.getRelatedData() + "\t" + "Related Exception: "
+                + error.getRelatedException() );
+        
+        return fail;
+    }
+}
+
diff --git a/src/org/apache/xml/serializer/dom3/DOMErrorImpl.java b/src/org/apache/xml/serializer/dom3/DOMErrorImpl.java
index 81eda73..c2bd8b5 100644
--- a/src/org/apache/xml/serializer/dom3/DOMErrorImpl.java
+++ b/src/org/apache/xml/serializer/dom3/DOMErrorImpl.java
@@ -1,176 +1,176 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import org.w3c.dom.DOMError;

-import org.w3c.dom.DOMLocator;

-

-/**

- * Implementation of the DOM Level 3 DOMError interface.

- *

- * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ERROR-Interfaces-DOMError'>DOMError Interface definition from Document Object Model (DOM) Level 3 Core Specification</a>.

- * 

- * @xsl.usage internal 

- */

-

-final class DOMErrorImpl implements DOMError {

-    

-    /** private data members */

-    

-    // The DOMError Severity

-    private short fSeverity = DOMError.SEVERITY_WARNING;

-    

-    // The Error message

-    private String fMessage = null;

-    

-    //  A String indicating which related data is expected in relatedData. 

-    private String fType;

-    

-    // The platform related exception

-    private Exception fException = null;

-    

-    //  

-    private Object fRelatedData;

-    

-    // The location of the exception

-    private DOMLocatorImpl fLocation = new DOMLocatorImpl();

-    

-    

-    //

-    // Constructors

-    //

-    

-    /** 

-     * Default constructor. 

-     */    

-    DOMErrorImpl () {

-    }

-    

-    /**

-     * @param severity

-     * @param message

-     * @param type

-     */

-    DOMErrorImpl(short severity, String message, String type) {

-        fSeverity = severity;

-        fMessage = message;

-        fType = type;

-    }

-    

-    /**

-     * @param severity

-     * @param message

-     * @param type

-     * @param exception

-     */

-    DOMErrorImpl(short severity, String message, String type,

-            Exception exception) {

-        fSeverity = severity;

-        fMessage = message;

-        fType = type;

-        fException = exception;

-    }

-    

-    /**

-     * @param severity

-     * @param message

-     * @param type

-     * @param exception

-     * @param relatedData

-     * @param location

-     */

-    DOMErrorImpl(short severity, String message, String type,

-            Exception exception, Object relatedData, DOMLocatorImpl location) {

-        fSeverity = severity;

-        fMessage = message;

-        fType = type;

-        fException = exception;

-        fRelatedData = relatedData;

-        fLocation = location;

-    }

-    

-    

-    /**

-     * The severity of the error, either <code>SEVERITY_WARNING</code>, 

-     * <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.

-     * 

-     * @return A short containing the DOMError severity

-     */

-    public short getSeverity() {

-        return fSeverity;

-    }

-    

-    /**

-     * The DOMError message string.

-     * 

-     * @return String

-     */

-    public String getMessage() {

-        return fMessage;

-    }

-    

-    /**

-     * The location of the DOMError.

-     * 

-     * @return A DOMLocator object containing the DOMError location.

-     */

-    public DOMLocator getLocation() {

-        return fLocation;

-    }

-    

-    /**

-     * The related platform dependent exception if any.

-     * 

-     * @return A java.lang.Exception 

-     */

-    public Object getRelatedException(){

-        return fException;

-    }

-    

-    /**

-     * Returns a String indicating which related data is expected in relatedData.

-     * 

-     * @return A String

-     */

-    public String getType(){

-        return fType;

-    }

-    

-    /**

-     * The related DOMError.type dependent data if any.

-     * 

-     * @return java.lang.Object 

-     */

-    public Object getRelatedData(){

-        return fRelatedData;

-    }

-    

-    public void reset(){

-        fSeverity = DOMError.SEVERITY_WARNING; 

-        fException = null;

-        fMessage = null;

-        fType = null;

-        fRelatedData = null;

-        fLocation = null;        

-    }

-    

-}// class DOMErrorImpl

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import org.w3c.dom.DOMError;
+import org.w3c.dom.DOMLocator;
+
+/**
+ * Implementation of the DOM Level 3 DOMError interface.
+ *
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ERROR-Interfaces-DOMError'>DOMError Interface definition from Document Object Model (DOM) Level 3 Core Specification</a>.
+ * 
+ * @xsl.usage internal 
+ */
+
+final class DOMErrorImpl implements DOMError {
+    
+    /** private data members */
+    
+    // The DOMError Severity
+    private short fSeverity = DOMError.SEVERITY_WARNING;
+    
+    // The Error message
+    private String fMessage = null;
+    
+    //  A String indicating which related data is expected in relatedData. 
+    private String fType;
+    
+    // The platform related exception
+    private Exception fException = null;
+    
+    //  
+    private Object fRelatedData;
+    
+    // The location of the exception
+    private DOMLocatorImpl fLocation = new DOMLocatorImpl();
+    
+    
+    //
+    // Constructors
+    //
+    
+    /** 
+     * Default constructor. 
+     */    
+    DOMErrorImpl () {
+    }
+    
+    /**
+     * @param severity
+     * @param message
+     * @param type
+     */
+    DOMErrorImpl(short severity, String message, String type) {
+        fSeverity = severity;
+        fMessage = message;
+        fType = type;
+    }
+    
+    /**
+     * @param severity
+     * @param message
+     * @param type
+     * @param exception
+     */
+    DOMErrorImpl(short severity, String message, String type,
+            Exception exception) {
+        fSeverity = severity;
+        fMessage = message;
+        fType = type;
+        fException = exception;
+    }
+    
+    /**
+     * @param severity
+     * @param message
+     * @param type
+     * @param exception
+     * @param relatedData
+     * @param location
+     */
+    DOMErrorImpl(short severity, String message, String type,
+            Exception exception, Object relatedData, DOMLocatorImpl location) {
+        fSeverity = severity;
+        fMessage = message;
+        fType = type;
+        fException = exception;
+        fRelatedData = relatedData;
+        fLocation = location;
+    }
+    
+    
+    /**
+     * The severity of the error, either <code>SEVERITY_WARNING</code>, 
+     * <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
+     * 
+     * @return A short containing the DOMError severity
+     */
+    public short getSeverity() {
+        return fSeverity;
+    }
+    
+    /**
+     * The DOMError message string.
+     * 
+     * @return String
+     */
+    public String getMessage() {
+        return fMessage;
+    }
+    
+    /**
+     * The location of the DOMError.
+     * 
+     * @return A DOMLocator object containing the DOMError location.
+     */
+    public DOMLocator getLocation() {
+        return fLocation;
+    }
+    
+    /**
+     * The related platform dependent exception if any.
+     * 
+     * @return A java.lang.Exception 
+     */
+    public Object getRelatedException(){
+        return fException;
+    }
+    
+    /**
+     * Returns a String indicating which related data is expected in relatedData.
+     * 
+     * @return A String
+     */
+    public String getType(){
+        return fType;
+    }
+    
+    /**
+     * The related DOMError.type dependent data if any.
+     * 
+     * @return java.lang.Object 
+     */
+    public Object getRelatedData(){
+        return fRelatedData;
+    }
+    
+    public void reset(){
+        fSeverity = DOMError.SEVERITY_WARNING; 
+        fException = null;
+        fMessage = null;
+        fType = null;
+        fRelatedData = null;
+        fLocation = null;        
+    }
+    
+}// class DOMErrorImpl
diff --git a/src/org/apache/xml/serializer/dom3/DOMLocatorImpl.java b/src/org/apache/xml/serializer/dom3/DOMLocatorImpl.java
index 8add00c..f73789b 100644
--- a/src/org/apache/xml/serializer/dom3/DOMLocatorImpl.java
+++ b/src/org/apache/xml/serializer/dom3/DOMLocatorImpl.java
@@ -1,180 +1,180 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import org.w3c.dom.DOMLocator;

-import org.w3c.dom.Node;

-

-

-/**

- * <code>DOMLocatorImpl</code> is an implementaion that describes a location (e.g. 

- * where an error occured).

- * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.

- * This class is a copy of the Xerces-2J class org.apache.xerces.dom.DOMLocatorImpl.java v 1.10 

- *

- * @author Gopal Sharma, SUN Microsystems Inc.

- * @version $Id: 

- * 

- * @xsl.usage internal

- */

-final class DOMLocatorImpl implements DOMLocator {

-    

-    //

-    // Data

-    //

-    

-    /**

-     * The column number where the error occured, 

-     * or -1 if there is no column number available.

-     */

-    private final int fColumnNumber;

-    

-    /**

-     * The line number where the error occured, 

-     * or -1 if there is no line number available.

-     */

-    private final int fLineNumber;

-    

-    /** related data node*/

-    private final Node fRelatedNode;

-    

-    /**

-     * The URI where the error occured, 

-     * or null if there is no URI available.

-     */

-    private final String fUri;

-    

-    /**

-     * The byte offset into the input source this locator is pointing to or -1 

-     * if there is no byte offset available

-     */

-    private final int fByteOffset;

-    

-    /**

-     * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], 

-     * offset into the input source this locator is pointing to or -1 if there 

-     * is no UTF-16 offset available.

-     */

-    private final int fUtf16Offset;

-    

-    //

-    // Constructors

-    //

-    

-    DOMLocatorImpl(){

-        fColumnNumber = -1;

-        fLineNumber = -1;

-        fRelatedNode = null;

-        fUri = null;

-        fByteOffset = -1;

-        fUtf16Offset = -1;

-    }

-    

-    DOMLocatorImpl (int lineNumber, int columnNumber, String uri ){

-        fLineNumber = lineNumber ;

-        fColumnNumber = columnNumber ;

-        fUri = uri;

-        

-        fRelatedNode = null;

-        fByteOffset = -1;

-        fUtf16Offset = -1;

-    } // DOMLocatorImpl (int lineNumber, int columnNumber, String uri )

-    

-    DOMLocatorImpl (int lineNumber, int columnNumber, int utf16Offset, String uri ){

-        fLineNumber = lineNumber ;

-        fColumnNumber = columnNumber ;

-        fUri = uri;

-        fUtf16Offset = utf16Offset;

-        

-

-        fRelatedNode = null;

-        fByteOffset = -1;

-    } // DOMLocatorImpl (int lineNumber, int columnNumber, int utf16Offset, String uri )

-    

-    DOMLocatorImpl (int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri ){

-        fLineNumber = lineNumber ;

-        fColumnNumber = columnNumber ;

-        fByteOffset = byteoffset ;

-        fRelatedNode = relatedData ;

-        fUri = uri;

-        

-        fUtf16Offset = -1;

-    } // DOMLocatorImpl (int lineNumber, int columnNumber, int offset, Node errorNode, String uri )

-    

-    DOMLocatorImpl (int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri, int utf16Offset ){

-        fLineNumber = lineNumber ;

-        fColumnNumber = columnNumber ;

-        fByteOffset = byteoffset ;

-        fRelatedNode = relatedData ;

-        fUri = uri;

-        fUtf16Offset = utf16Offset;

-    } // DOMLocatorImpl (int lineNumber, int columnNumber, int offset, Node errorNode, String uri )

-    

-    

-    /**

-     * The line number where the error occured, or -1 if there is no line 

-     * number available.

-     */

-    public int getLineNumber(){

-        return fLineNumber;

-    }

-    

-    /**

-     * The column number where the error occured, or -1 if there is no column 

-     * number available.

-     */

-    public int getColumnNumber(){

-        return fColumnNumber;

-    }

-    

-    

-    /**

-     * The URI where the error occured, or null if there is no URI available.

-     */

-    public String getUri(){

-        return fUri;

-    }

-    

-    

-    public Node getRelatedNode(){

-        return fRelatedNode;

-    }

-    

-    

-    /**

-     * The byte offset into the input source this locator is pointing to or -1 

-     * if there is no byte offset available

-     */

-    public int getByteOffset(){

-        return fByteOffset;

-    }

-    

-    /**

-     * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], 

-     * offset into the input source this locator is pointing to or -1 if there 

-     * is no UTF-16 offset available.

-     */

-    public int getUtf16Offset(){

-        return fUtf16Offset;

-    }

-    

-}// class DOMLocatorImpl

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import org.w3c.dom.DOMLocator;
+import org.w3c.dom.Node;
+
+
+/**
+ * <code>DOMLocatorImpl</code> is an implementaion that describes a location (e.g. 
+ * where an error occured).
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * This class is a copy of the Xerces-2J class org.apache.xerces.dom.DOMLocatorImpl.java v 1.10 
+ *
+ * @author Gopal Sharma, SUN Microsystems Inc.
+ * @version $Id: 
+ * 
+ * @xsl.usage internal
+ */
+final class DOMLocatorImpl implements DOMLocator {
+    
+    //
+    // Data
+    //
+    
+    /**
+     * The column number where the error occured, 
+     * or -1 if there is no column number available.
+     */
+    private final int fColumnNumber;
+    
+    /**
+     * The line number where the error occured, 
+     * or -1 if there is no line number available.
+     */
+    private final int fLineNumber;
+    
+    /** related data node*/
+    private final Node fRelatedNode;
+    
+    /**
+     * The URI where the error occured, 
+     * or null if there is no URI available.
+     */
+    private final String fUri;
+    
+    /**
+     * The byte offset into the input source this locator is pointing to or -1 
+     * if there is no byte offset available
+     */
+    private final int fByteOffset;
+    
+    /**
+     * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], 
+     * offset into the input source this locator is pointing to or -1 if there 
+     * is no UTF-16 offset available.
+     */
+    private final int fUtf16Offset;
+    
+    //
+    // Constructors
+    //
+    
+    DOMLocatorImpl(){
+        fColumnNumber = -1;
+        fLineNumber = -1;
+        fRelatedNode = null;
+        fUri = null;
+        fByteOffset = -1;
+        fUtf16Offset = -1;
+    }
+    
+    DOMLocatorImpl (int lineNumber, int columnNumber, String uri ){
+        fLineNumber = lineNumber ;
+        fColumnNumber = columnNumber ;
+        fUri = uri;
+        
+        fRelatedNode = null;
+        fByteOffset = -1;
+        fUtf16Offset = -1;
+    } // DOMLocatorImpl (int lineNumber, int columnNumber, String uri )
+    
+    DOMLocatorImpl (int lineNumber, int columnNumber, int utf16Offset, String uri ){
+        fLineNumber = lineNumber ;
+        fColumnNumber = columnNumber ;
+        fUri = uri;
+        fUtf16Offset = utf16Offset;
+        
+
+        fRelatedNode = null;
+        fByteOffset = -1;
+    } // DOMLocatorImpl (int lineNumber, int columnNumber, int utf16Offset, String uri )
+    
+    DOMLocatorImpl (int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri ){
+        fLineNumber = lineNumber ;
+        fColumnNumber = columnNumber ;
+        fByteOffset = byteoffset ;
+        fRelatedNode = relatedData ;
+        fUri = uri;
+        
+        fUtf16Offset = -1;
+    } // DOMLocatorImpl (int lineNumber, int columnNumber, int offset, Node errorNode, String uri )
+    
+    DOMLocatorImpl (int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri, int utf16Offset ){
+        fLineNumber = lineNumber ;
+        fColumnNumber = columnNumber ;
+        fByteOffset = byteoffset ;
+        fRelatedNode = relatedData ;
+        fUri = uri;
+        fUtf16Offset = utf16Offset;
+    } // DOMLocatorImpl (int lineNumber, int columnNumber, int offset, Node errorNode, String uri )
+    
+    
+    /**
+     * The line number where the error occured, or -1 if there is no line 
+     * number available.
+     */
+    public int getLineNumber(){
+        return fLineNumber;
+    }
+    
+    /**
+     * The column number where the error occured, or -1 if there is no column 
+     * number available.
+     */
+    public int getColumnNumber(){
+        return fColumnNumber;
+    }
+    
+    
+    /**
+     * The URI where the error occured, or null if there is no URI available.
+     */
+    public String getUri(){
+        return fUri;
+    }
+    
+    
+    public Node getRelatedNode(){
+        return fRelatedNode;
+    }
+    
+    
+    /**
+     * The byte offset into the input source this locator is pointing to or -1 
+     * if there is no byte offset available
+     */
+    public int getByteOffset(){
+        return fByteOffset;
+    }
+    
+    /**
+     * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], 
+     * offset into the input source this locator is pointing to or -1 if there 
+     * is no UTF-16 offset available.
+     */
+    public int getUtf16Offset(){
+        return fUtf16Offset;
+    }
+    
+}// class DOMLocatorImpl
diff --git a/src/org/apache/xml/serializer/dom3/DOMOutputImpl.java b/src/org/apache/xml/serializer/dom3/DOMOutputImpl.java
index 54327c0..6b1ff8c 100644
--- a/src/org/apache/xml/serializer/dom3/DOMOutputImpl.java
+++ b/src/org/apache/xml/serializer/dom3/DOMOutputImpl.java
@@ -1,177 +1,177 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import org.w3c.dom.ls.LSOutput;

-

-import java.io.Writer;

-import java.io.OutputStream;

-

-/**

- * This is a copy of the Xerces-2J class org.apache.xerces.dom.DOMOutputImpl.java

- * 

- * This class represents an output destination for data.

- * This interface allows an application to encapsulate information about an

- * output destination in a single object, which may include a URI, a byte stream

- * (possibly with a specifiedencoding), a base URI, and/or a character stream.

- * The exact definitions of a byte stream and a character stream are binding

- * dependent.

- * The application is expected to provide objects that implement this interface

- * whenever such objects are needed. The application can either provide its

- * own objects that implement this interface, or it can use the generic factory

- * method DOMImplementationLS.createLSOutput() to create objects that

- * implement this interface.

- * The DOMSerializer will use the LSOutput object to determine where to

- * serialize the output to. The DOMSerializer will look at the different

- * outputs specified in the LSOutput in the following order to know which one

- * to output to, the first one that data can be output to will be used:

- * 1.LSOutput.characterStream

- * 2.LSOutput.byteStream

- * 3.LSOutput.systemId

- * LSOutput objects belong to the application. The DOM implementation will

- * never modify them (though it may make copies and modify the copies,

- * if necessary).

- *

- *

- * @author Arun Yadav, Sun Microsytems

- * @author Gopal Sharma, Sun Microsystems

- * @version $Id : 

- * @xsl.usage internal 

- */

-

-final class DOMOutputImpl implements LSOutput {

-    

-    private Writer fCharStream = null;

-    private OutputStream fByteStream = null;

-    private String fSystemId = null;

-    private String fEncoding = null;

-    

-    /**

-     * Default Constructor

-     */

-    DOMOutputImpl() {}

-    

-    /**

-     * An attribute of a language and binding dependent type that represents a

-     * writable stream of bytes. If the application knows the character encoding

-     * of the byte stream, it should set the encoding attribute. Setting the

-     * encoding in this way will override any encoding specified in an XML

-     * declaration in the data.

-     */

-    

-    public Writer getCharacterStream(){

-        return fCharStream;

-    };

-    

-    /**

-     * An attribute of a language and binding dependent type that represents a

-     * writable stream of bytes. If the application knows the character encoding

-     * of the byte stream, it should set the encoding attribute. Setting the

-     * encoding in this way will override any encoding specified in an XML

-     * declaration in the data.

-     */

-    

-    public void setCharacterStream(Writer characterStream){

-        fCharStream = characterStream;

-    };

-    

-    /**

-     * Depending on the language binding in use, this attribute may not be

-     * available. An attribute of a language and binding dependent type that

-     * represents a writable stream to which 16-bit units can be output. The

-     * application must encode the stream using UTF-16 (defined in [Unicode] and

-     *  Amendment 1 of [ISO/IEC 10646]).

-     */

-    

-    public OutputStream getByteStream(){

-        return fByteStream;

-    };

-    

-    /**

-     * Depending on the language binding in use, this attribute may not be

-     * available. An attribute of a language and binding dependent type that

-     * represents a writable stream to which 16-bit units can be output. The

-     * application must encode the stream using UTF-16 (defined in [Unicode] and

-     *  Amendment 1 of [ISO/IEC 10646]).

-     */

-    

-    public void setByteStream(OutputStream byteStream){

-        fByteStream = byteStream;

-    };

-    

-    /**

-     * The system identifier, a URI reference [IETF RFC 2396], for this output

-     *  destination. If the application knows the character encoding of the

-     *  object pointed to by the system identifier, it can set the encoding

-     *  using the encoding attribute. If the system ID is a relative URI

-     *  reference (see section 5 in [IETF RFC 2396]), the behavior is

-     *  implementation dependent.

-     */

-    

-    public String getSystemId(){

-        return fSystemId;

-    };

-    

-    /**

-     * The system identifier, a URI reference [IETF RFC 2396], for this output

-     *  destination. If the application knows the character encoding of the

-     *  object pointed to by the system identifier, it can set the encoding

-     *  using the encoding attribute. If the system ID is a relative URI

-     *  reference (see section 5 in [IETF RFC 2396]), the behavior is

-     *  implementation dependent.

-     */

-    

-    public void setSystemId(String systemId){

-        fSystemId = systemId;

-    };

-    

-    /**

-     * The character encoding, if known. The encoding must be a string

-     * acceptable for an XML encoding declaration ([XML 1.0] section 4.3.3

-     * "Character Encoding in Entities"). This attribute has no effect when the

-     * application provides a character stream or string data. For other sources

-     * of input, an encoding specified by means of this attribute will override

-     * any encoding specified in the XML declaration or the Text declaration, or

-     * an encoding obtained from a higher level protocol, such as HTTP

-     * [IETF RFC 2616].

-     */

-    

-    public String getEncoding(){

-        return fEncoding;

-    };

-    

-    /**

-     * The character encoding, if known. The encoding must be a string

-     * acceptable for an XML encoding declaration ([XML 1.0] section 4.3.3

-     * "Character Encoding in Entities"). This attribute has no effect when the

-     * application provides a character stream or string data. For other sources

-     * of input, an encoding specified by means of this attribute will override

-     * any encoding specified in the XML declaration or the Text declaration, or

-     * an encoding obtained from a higher level protocol, such as HTTP

-     * [IETF RFC 2616].

-     */

-    

-    public void setEncoding(String encoding){

-        fEncoding = encoding;

-    };

-    

-}//DOMOutputImpl

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import org.w3c.dom.ls.LSOutput;
+
+import java.io.Writer;
+import java.io.OutputStream;
+
+/**
+ * This is a copy of the Xerces-2J class org.apache.xerces.dom.DOMOutputImpl.java
+ * 
+ * This class represents an output destination for data.
+ * This interface allows an application to encapsulate information about an
+ * output destination in a single object, which may include a URI, a byte stream
+ * (possibly with a specifiedencoding), a base URI, and/or a character stream.
+ * The exact definitions of a byte stream and a character stream are binding
+ * dependent.
+ * The application is expected to provide objects that implement this interface
+ * whenever such objects are needed. The application can either provide its
+ * own objects that implement this interface, or it can use the generic factory
+ * method DOMImplementationLS.createLSOutput() to create objects that
+ * implement this interface.
+ * The DOMSerializer will use the LSOutput object to determine where to
+ * serialize the output to. The DOMSerializer will look at the different
+ * outputs specified in the LSOutput in the following order to know which one
+ * to output to, the first one that data can be output to will be used:
+ * 1.LSOutput.characterStream
+ * 2.LSOutput.byteStream
+ * 3.LSOutput.systemId
+ * LSOutput objects belong to the application. The DOM implementation will
+ * never modify them (though it may make copies and modify the copies,
+ * if necessary).
+ *
+ *
+ * @author Arun Yadav, Sun Microsytems
+ * @author Gopal Sharma, Sun Microsystems
+ * @version $Id : 
+ * @xsl.usage internal 
+ */
+
+final class DOMOutputImpl implements LSOutput {
+    
+    private Writer fCharStream = null;
+    private OutputStream fByteStream = null;
+    private String fSystemId = null;
+    private String fEncoding = null;
+    
+    /**
+     * Default Constructor
+     */
+    DOMOutputImpl() {}
+    
+    /**
+     * An attribute of a language and binding dependent type that represents a
+     * writable stream of bytes. If the application knows the character encoding
+     * of the byte stream, it should set the encoding attribute. Setting the
+     * encoding in this way will override any encoding specified in an XML
+     * declaration in the data.
+     */
+    
+    public Writer getCharacterStream(){
+        return fCharStream;
+    };
+    
+    /**
+     * An attribute of a language and binding dependent type that represents a
+     * writable stream of bytes. If the application knows the character encoding
+     * of the byte stream, it should set the encoding attribute. Setting the
+     * encoding in this way will override any encoding specified in an XML
+     * declaration in the data.
+     */
+    
+    public void setCharacterStream(Writer characterStream){
+        fCharStream = characterStream;
+    };
+    
+    /**
+     * Depending on the language binding in use, this attribute may not be
+     * available. An attribute of a language and binding dependent type that
+     * represents a writable stream to which 16-bit units can be output. The
+     * application must encode the stream using UTF-16 (defined in [Unicode] and
+     *  Amendment 1 of [ISO/IEC 10646]).
+     */
+    
+    public OutputStream getByteStream(){
+        return fByteStream;
+    };
+    
+    /**
+     * Depending on the language binding in use, this attribute may not be
+     * available. An attribute of a language and binding dependent type that
+     * represents a writable stream to which 16-bit units can be output. The
+     * application must encode the stream using UTF-16 (defined in [Unicode] and
+     *  Amendment 1 of [ISO/IEC 10646]).
+     */
+    
+    public void setByteStream(OutputStream byteStream){
+        fByteStream = byteStream;
+    };
+    
+    /**
+     * The system identifier, a URI reference [IETF RFC 2396], for this output
+     *  destination. If the application knows the character encoding of the
+     *  object pointed to by the system identifier, it can set the encoding
+     *  using the encoding attribute. If the system ID is a relative URI
+     *  reference (see section 5 in [IETF RFC 2396]), the behavior is
+     *  implementation dependent.
+     */
+    
+    public String getSystemId(){
+        return fSystemId;
+    };
+    
+    /**
+     * The system identifier, a URI reference [IETF RFC 2396], for this output
+     *  destination. If the application knows the character encoding of the
+     *  object pointed to by the system identifier, it can set the encoding
+     *  using the encoding attribute. If the system ID is a relative URI
+     *  reference (see section 5 in [IETF RFC 2396]), the behavior is
+     *  implementation dependent.
+     */
+    
+    public void setSystemId(String systemId){
+        fSystemId = systemId;
+    };
+    
+    /**
+     * The character encoding, if known. The encoding must be a string
+     * acceptable for an XML encoding declaration ([XML 1.0] section 4.3.3
+     * "Character Encoding in Entities"). This attribute has no effect when the
+     * application provides a character stream or string data. For other sources
+     * of input, an encoding specified by means of this attribute will override
+     * any encoding specified in the XML declaration or the Text declaration, or
+     * an encoding obtained from a higher level protocol, such as HTTP
+     * [IETF RFC 2616].
+     */
+    
+    public String getEncoding(){
+        return fEncoding;
+    };
+    
+    /**
+     * The character encoding, if known. The encoding must be a string
+     * acceptable for an XML encoding declaration ([XML 1.0] section 4.3.3
+     * "Character Encoding in Entities"). This attribute has no effect when the
+     * application provides a character stream or string data. For other sources
+     * of input, an encoding specified by means of this attribute will override
+     * any encoding specified in the XML declaration or the Text declaration, or
+     * an encoding obtained from a higher level protocol, such as HTTP
+     * [IETF RFC 2616].
+     */
+    
+    public void setEncoding(String encoding){
+        fEncoding = encoding;
+    };
+    
+}//DOMOutputImpl
diff --git a/src/org/apache/xml/serializer/dom3/DOMStringListImpl.java b/src/org/apache/xml/serializer/dom3/DOMStringListImpl.java
index 5ace83a..79fa0b9 100644
--- a/src/org/apache/xml/serializer/dom3/DOMStringListImpl.java
+++ b/src/org/apache/xml/serializer/dom3/DOMStringListImpl.java
@@ -1,99 +1,99 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-package org.apache.xml.serializer.dom3;

-

-import java.util.Vector;

-

-//import org.apache.xerces.dom3.DOMStringList;

-import org.w3c.dom.DOMStringList;

-

-/**

- * This class implemets the DOM Level 3 Core interface DOMStringList.

- * 

- * @xsl.usage internal

- */

-final class DOMStringListImpl implements DOMStringList {

-    

-    //A collection of DOMString values

-    private Vector fStrings;

-    

-    /** 

-     * Construct an empty list of DOMStringListImpl

-     */ 

-    DOMStringListImpl() {

-        fStrings = new Vector();    

-    }

-    

-    /** 

-     * Construct an empty list of DOMStringListImpl

-     */ 

-    DOMStringListImpl(Vector params) {

-        fStrings = params;    

-    }

-    

-    /** 

-     * Construct an empty list of DOMStringListImpl

-     */ 

-    DOMStringListImpl(String[] params ) {

-        fStrings = new Vector();

-        if (params != null) {

-            for (int i=0; i < params.length; i++) {

-                fStrings.add(params[i]);    

-            }

-        }

-    }

-    

-    /**

-     * @see org.apache.xerces.dom3.DOMStringList#item(int)

-     */

-    public String item(int index) {

-        try {

-            return (String) fStrings.elementAt(index);

-        } catch (ArrayIndexOutOfBoundsException e) {

-            return null;

-        }

-    }

-    

-    /**

-     * @see org.apache.xerces.dom3.DOMStringList#getLength()

-     */

-    public int getLength() {

-        return fStrings.size();

-    }

-    

-    /**

-     * @see org.apache.xerces.dom3.DOMStringList#contains(String)

-     */

-    public boolean contains(String param) {

-        return fStrings.contains(param) ;

-    }

-    

-    /**

-     * DOM Internal:

-     * Add a <code>DOMString</code> to the list.

-     * 

-     * @param domString A string to add to the list

-     */

-    public void add(String param) {

-        fStrings.add(param);

-    }

-    

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xml.serializer.dom3;
+
+import java.util.Vector;
+
+//import org.apache.xerces.dom3.DOMStringList;
+import org.w3c.dom.DOMStringList;
+
+/**
+ * This class implemets the DOM Level 3 Core interface DOMStringList.
+ * 
+ * @xsl.usage internal
+ */
+final class DOMStringListImpl implements DOMStringList {
+    
+    //A collection of DOMString values
+    private Vector fStrings;
+    
+    /** 
+     * Construct an empty list of DOMStringListImpl
+     */ 
+    DOMStringListImpl() {
+        fStrings = new Vector();    
+    }
+    
+    /** 
+     * Construct an empty list of DOMStringListImpl
+     */ 
+    DOMStringListImpl(Vector params) {
+        fStrings = params;    
+    }
+    
+    /** 
+     * Construct an empty list of DOMStringListImpl
+     */ 
+    DOMStringListImpl(String[] params ) {
+        fStrings = new Vector();
+        if (params != null) {
+            for (int i=0; i < params.length; i++) {
+                fStrings.add(params[i]);    
+            }
+        }
+    }
+    
+    /**
+     * @see org.apache.xerces.dom3.DOMStringList#item(int)
+     */
+    public String item(int index) {
+        try {
+            return (String) fStrings.elementAt(index);
+        } catch (ArrayIndexOutOfBoundsException e) {
+            return null;
+        }
+    }
+    
+    /**
+     * @see org.apache.xerces.dom3.DOMStringList#getLength()
+     */
+    public int getLength() {
+        return fStrings.size();
+    }
+    
+    /**
+     * @see org.apache.xerces.dom3.DOMStringList#contains(String)
+     */
+    public boolean contains(String param) {
+        return fStrings.contains(param) ;
+    }
+    
+    /**
+     * DOM Internal:
+     * Add a <code>DOMString</code> to the list.
+     * 
+     * @param domString A string to add to the list
+     */
+    public void add(String param) {
+        fStrings.add(param);
+    }
+    
+}
diff --git a/src/org/apache/xml/serializer/dom3/LSSerializerImpl.java b/src/org/apache/xml/serializer/dom3/LSSerializerImpl.java
index acac6fc..c2ce783 100644
--- a/src/org/apache/xml/serializer/dom3/LSSerializerImpl.java
+++ b/src/org/apache/xml/serializer/dom3/LSSerializerImpl.java
@@ -1,1537 +1,1537 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import java.io.FileOutputStream;

-import java.io.OutputStream;

-import java.io.StringWriter;

-import java.io.UnsupportedEncodingException;

-import java.io.Writer;

-import java.net.HttpURLConnection;

-import java.net.URL;

-import java.net.URLConnection;

-import java.security.AccessController;

-import java.security.PrivilegedAction;

-import java.util.Properties;

-import java.util.StringTokenizer;

-

-import org.apache.xml.serializer.DOM3Serializer;

-import org.apache.xml.serializer.Encodings;

-import org.apache.xml.serializer.OutputPropertiesFactory;

-import org.apache.xml.serializer.Serializer;

-import org.apache.xml.serializer.SerializerFactory;

-import org.apache.xml.serializer.utils.MsgKey;

-import org.apache.xml.serializer.utils.SystemIDResolver;

-import org.apache.xml.serializer.utils.Utils;

-import org.w3c.dom.DOMConfiguration;

-import org.w3c.dom.DOMError;

-import org.w3c.dom.DOMErrorHandler;

-import org.w3c.dom.DOMException;

-import org.w3c.dom.DOMStringList;

-import org.w3c.dom.Document;

-import org.w3c.dom.Node;

-import org.w3c.dom.ls.LSException;

-import org.w3c.dom.ls.LSOutput;

-import org.w3c.dom.ls.LSSerializer;

-import org.w3c.dom.ls.LSSerializerFilter;

-

-/**

- * Implemenatation of DOM Level 3 org.w3c.ls.LSSerializer and 

- * org.w3c.dom.ls.DOMConfiguration.  Serialization is achieved by delegating 

- * serialization calls to <CODE>org.apache.xml.serializer.ToStream</CODE> or 

- * one of its derived classes depending on the serialization method, while walking

- * the DOM in DOM3TreeWalker.  

- * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer">org.w3c.dom.ls.LSSerializer</a>

- * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">org.w3c.dom.DOMConfiguration</a>

- *  

- * @version $Id:  

- * 

- * @xsl.usage internal 

- */

-final public class LSSerializerImpl implements DOMConfiguration, LSSerializer {

-    

-    // The default end-of-line character sequence used in serialization.

-    private static final String DEFAULT_END_OF_LINE;

-    static {

-        String lineSeparator = (String) AccessController.doPrivileged(new PrivilegedAction() {

-            public Object run() {

-                try {

-                    return System.getProperty("line.separator");

-                }

-                catch (SecurityException ex) {}

-                return null;

-            }

-        });

-        // The DOM Level 3 Load and Save specification requires that implementations choose a default

-        // sequence which matches one allowed by XML 1.0 (or XML 1.1). If the value of "line.separator" 

-        // isn't one of the XML 1.0 end-of-line sequences then we select "\n" as the default value.

-        DEFAULT_END_OF_LINE = lineSeparator != null && 

-            (lineSeparator.equals("\r\n") || lineSeparator.equals("\r")) ? lineSeparator : "\n";

-    }

-    

-    /** private data members */

-    private Serializer fXMLSerializer = null;

-    

-    // Tracks DOMConfiguration features. 

-    protected int fFeatures = 0;

-    

-    // Common DOM serializer

-    private  DOM3Serializer fDOMSerializer = null;

-    

-    // A filter set on the LSSerializer

-    private LSSerializerFilter fSerializerFilter = null;  

-    

-    // Stores the nodeArg parameter to speed up multiple writes of the same node.

-    private Node fVisitedNode = null;

-    

-    // The end-of-line character sequence used in serialization. "\n" is whats used on the web.

-    private String fEndOfLine = DEFAULT_END_OF_LINE;

-    

-    // The DOMErrorhandler.

-    private DOMErrorHandler fDOMErrorHandler = null;

-    

-    // The Configuration parameter to pass to the Underlying serilaizer.

-    private Properties fDOMConfigProperties = null;

-    

-    // The encoding to use during serialization.

-    private String fEncoding; 

-	

-    // ************************************************************************

-    // DOM Level 3 DOM Configuration parameter names

-    // ************************************************************************    

-    // Parameter canonical-form, true [optional] - NOT SUPPORTED 

-    private final static int CANONICAL = 0x1 << 0;

-    

-    // Parameter cdata-sections, true [required] (default)

-    private final static int CDATA = 0x1 << 1;

-    

-    // Parameter check-character-normalization, true [optional] - NOT SUPPORTED 

-    private final static int CHARNORMALIZE = 0x1 << 2;

-    

-    // Parameter comments, true [required] (default)

-    private final static int COMMENTS = 0x1 << 3;

-    

-    // Parameter datatype-normalization, true [optional] - NOT SUPPORTED

-    private final static int DTNORMALIZE = 0x1 << 4;    

-    

-    // Parameter element-content-whitespace, true [required] (default) - value - false [optional] NOT SUPPORTED

-    private final static int ELEM_CONTENT_WHITESPACE = 0x1 << 5;

-    

-    // Parameter entities, true [required] (default)

-    private final static int ENTITIES = 0x1 << 6;

-    

-    // Parameter infoset, true [required] (default), false has no effect --> True has no effect for the serializer

-    private final static int INFOSET = 0x1 << 7;

-    

-    // Parameter namespaces, true [required] (default)

-    private final static int NAMESPACES = 0x1 << 8;

-    

-    // Parameter namespace-declarations, true [required] (default)

-    private final static int NAMESPACEDECLS = 0x1 << 9;

-    

-    // Parameter normalize-characters, true [optional] - NOT SUPPORTED

-    private final static int NORMALIZECHARS = 0x1 << 10;

-    

-    // Parameter split-cdata-sections, true [required] (default)

-    private final static int SPLITCDATA = 0x1 << 11;   

-    

-    // Parameter validate, true [optional] - NOT SUPPORTED

-    private final static int VALIDATE = 0x1 << 12;   

-    

-    // Parameter validate-if-schema, true [optional] - NOT SUPPORTED

-    private final static int SCHEMAVALIDATE = 0x1 << 13;

-    

-    // Parameter split-cdata-sections, true [required] (default)

-    private final static int WELLFORMED = 0x1 << 14;   

-    

-    // Parameter discard-default-content, true [required] (default)

-    // Not sure how this will be used in level 2 Documents

-    private final static int DISCARDDEFAULT = 0x1 << 15;       

-    

-    // Parameter format-pretty-print, true [optional] 

-    private final static int PRETTY_PRINT = 0x1 << 16;

-    

-    // Parameter ignore-unknown-character-denormalizations, true [required] (default)

-    // We currently do not support XML 1.1 character normalization

-    private final static int IGNORE_CHAR_DENORMALIZE = 0x1 << 17;

-    

-    // Parameter discard-default-content, true [required] (default)

-    private final static int XMLDECL = 0x1 << 18;    

-    // ************************************************************************

-    

-    // Recognized parameters for which atleast one value can be set

-    private String fRecognizedParameters [] = {

-            DOMConstants.DOM_CANONICAL_FORM,

-            DOMConstants.DOM_CDATA_SECTIONS,

-            DOMConstants.DOM_CHECK_CHAR_NORMALIZATION,

-            DOMConstants.DOM_COMMENTS,

-            DOMConstants.DOM_DATATYPE_NORMALIZATION,

-            DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,

-            DOMConstants.DOM_ENTITIES,

-            DOMConstants.DOM_INFOSET,

-            DOMConstants.DOM_NAMESPACES,

-            DOMConstants.DOM_NAMESPACE_DECLARATIONS,

-            //DOMConstants.DOM_NORMALIZE_CHARACTERS,

-            DOMConstants.DOM_SPLIT_CDATA,

-            DOMConstants.DOM_VALIDATE,

-            DOMConstants.DOM_VALIDATE_IF_SCHEMA,

-            DOMConstants.DOM_WELLFORMED,

-            DOMConstants.DOM_DISCARD_DEFAULT_CONTENT,

-            DOMConstants.DOM_FORMAT_PRETTY_PRINT,

-            DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS,

-            DOMConstants.DOM_XMLDECL,

-            DOMConstants.DOM_ERROR_HANDLER

-    };

-    

-    

-    /**

-     * Constructor:  Creates a LSSerializerImpl object.  The underlying

-     * XML 1.0 or XML 1.1 org.apache.xml.serializer.Serializer object is

-     * created and initialized the first time any of the write methods are  

-     * invoked to serialize the Node.  Subsequent write methods on the same

-     * LSSerializerImpl object will use the previously created Serializer object.

-     */

-    public LSSerializerImpl () {

-        // set default parameters

-        fFeatures |= CDATA;

-        fFeatures |= COMMENTS;

-        fFeatures |= ELEM_CONTENT_WHITESPACE;

-        fFeatures |= ENTITIES;

-        fFeatures |= NAMESPACES;

-        fFeatures |= NAMESPACEDECLS;

-        fFeatures |= SPLITCDATA;

-        fFeatures |= WELLFORMED;

-        fFeatures |= DISCARDDEFAULT;

-        fFeatures |= XMLDECL;

-        

-        // New OutputFormat properties

-        fDOMConfigProperties = new Properties();

-        

-        // Initialize properties to be passed on the underlying serializer

-        initializeSerializerProps();

-        

-        // Create the underlying serializer.

-        Properties  configProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");

-        

-        // change xml version from 1.0 to 1.1

-        //configProps.setProperty("version", "1.1");

-        

-        // Get a serializer that seriailizes according the the properties,

-        // which in this case is to xml

-        fXMLSerializer = SerializerFactory.getSerializer(configProps);

-        

-        // Initialize Serializer

-        fXMLSerializer.setOutputFormat(fDOMConfigProperties);

-    }

-    

-    /**

-     * Initializes the underlying serializer's configuration depending on the

-     * default DOMConfiguration parameters. This method must be called before a

-     * node is to be serialized.

-     * 

-     * @xsl.usage internal

-     */

-    public void initializeSerializerProps () {

-        // canonical-form

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_CANONICAL_FORM, DOMConstants.DOM3_DEFAULT_FALSE);

-        

-        // cdata-sections

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // "check-character-normalization"

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_CHECK_CHAR_NORMALIZATION,

-                DOMConstants.DOM3_DEFAULT_FALSE);

-        

-        // comments

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // datatype-normalization

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_DATATYPE_NORMALIZATION,

-                DOMConstants.DOM3_DEFAULT_FALSE);

-        

-        // element-content-whitespace

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,

-                DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // entities

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_TRUE);

-        // preserve entities

-        fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS

-                + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_TRUE);

-

-        // error-handler

-        // Should we set our default ErrorHandler

-        /*

-         * if (fDOMConfig.getParameter(Constants.DOM_ERROR_HANDLER) != null) {

-         * fDOMErrorHandler =

-         * (DOMErrorHandler)fDOMConfig.getParameter(Constants.DOM_ERROR_HANDLER); }

-         */

-        

-        // infoset

-        if ((fFeatures & INFOSET) != 0) {

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_DEFAULT_TRUE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_NAMESPACE_DECLARATIONS,

-                    DOMConstants.DOM3_DEFAULT_TRUE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_DEFAULT_TRUE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,

-                    DOMConstants.DOM3_DEFAULT_TRUE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_DEFAULT_TRUE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_FALSE);

-            // preserve entities

-            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS

-                    + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_FALSE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_CDATA_SECTIONS,

-                    DOMConstants.DOM3_DEFAULT_FALSE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_VALIDATE_IF_SCHEMA,

-                    DOMConstants.DOM3_DEFAULT_FALSE);

-            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                    + DOMConstants.DOM_DATATYPE_NORMALIZATION,

-                    DOMConstants.DOM3_DEFAULT_FALSE);

-        }

-        

-        // namespaces

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // namespace-declarations

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_NAMESPACE_DECLARATIONS,

-                DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // normalize-characters

-        /*

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_NORMALIZE_CHARACTERS,

-                DOMConstants.DOM3_DEFAULT_FALSE);

-        */

-        

-        // split-cdata-sections

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_SPLIT_CDATA, DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // validate

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_VALIDATE, DOMConstants.DOM3_DEFAULT_FALSE);

-        

-        // validate-if-schema

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_VALIDATE_IF_SCHEMA,

-                DOMConstants.DOM3_DEFAULT_FALSE);

-        

-        // well-formed

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // pretty-print

-        fDOMConfigProperties.setProperty(

-                DOMConstants.S_XSL_OUTPUT_INDENT,

-                DOMConstants.DOM3_DEFAULT_TRUE);

-        fDOMConfigProperties.setProperty(

-                OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, Integer.toString(3));

-        

-        // 

-        

-        // discard-default-content

-        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS

-                + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT,

-                DOMConstants.DOM3_DEFAULT_TRUE);

-        

-        // xml-declaration

-        fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "no");

-        

-    }    

-    

-    // ************************************************************************

-    // DOMConfiguraiton implementation

-    // ************************************************************************

-    

-    /** 

-     * Checks if setting a parameter to a specific value is supported.    

-     *  

-     * @see org.w3c.dom.DOMConfiguration#canSetParameter(java.lang.String, java.lang.Object)

-     * @since DOM Level 3

-     * @param name A String containing the DOMConfiguration parameter name.

-     * @param value An Object specifying the value of the corresponding parameter. 

-     */

-    public boolean canSetParameter(String name, Object value) {

-        if (value instanceof Boolean){

-            if ( name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES)    

-                    || name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED)    

-                    || name.equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)                

-                    || name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL)){

-                // both values supported

-                return true;

-            }

-            else if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)

-                    // || name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)

-                    ) {

-                // true is not supported

-                return !((Boolean)value).booleanValue();

-            }

-            else if (name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) {

-                // false is not supported

-                return ((Boolean)value).booleanValue();

-            }

-        }

-        else if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER) &&

-                value == null || value instanceof DOMErrorHandler){

-            return true;

-        }

-        return false;

-    }

-    /**

-     * This method returns the value of a parameter if known.

-     * 

-     * @see org.w3c.dom.DOMConfiguration#getParameter(java.lang.String)

-     * 

-     * @param name A String containing the DOMConfiguration parameter name 

-     *             whose value is to be returned.

-     * @return Object The value of the parameter if known. 

-     */

-    public Object getParameter(String name) throws DOMException {

-        if (name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS)) {

-            return ((fFeatures & COMMENTS) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS)) {

-            return ((fFeatures & CDATA) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES)) {

-            return ((fFeatures & ENTITIES) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES)) {

-            return ((fFeatures & NAMESPACES) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS)) {

-            return ((fFeatures & NAMESPACEDECLS) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA)) {

-            return ((fFeatures & SPLITCDATA) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED)) {

-            return ((fFeatures & WELLFORMED) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        }  else if (name.equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT)) {

-            return ((fFeatures & DISCARDDEFAULT) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)) {

-            return ((fFeatures & PRETTY_PRINT) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL)) {

-            return ((fFeatures & XMLDECL) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE)) {

-            return ((fFeatures & ELEM_CONTENT_WHITESPACE) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)) {

-            return ((fFeatures & PRETTY_PRINT) != 0) ? Boolean.TRUE : Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) {

-            return Boolean.TRUE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)

-                || name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION)

-                || name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION) 

-                // || name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)                

-                || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)

-                || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)) {

-            return Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)){

-            if ((fFeatures & ENTITIES) == 0 &&

-                    (fFeatures & CDATA) == 0 &&

-                    (fFeatures & ELEM_CONTENT_WHITESPACE) != 0 &&

-                    (fFeatures & NAMESPACES) != 0 &&

-                    (fFeatures & NAMESPACEDECLS) != 0 &&

-                    (fFeatures & WELLFORMED) != 0 &&

-                    (fFeatures & COMMENTS) != 0) {

-                return Boolean.TRUE;

-            }                 

-            return Boolean.FALSE;

-        } else if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER)) {

-            return fDOMErrorHandler;

-        } else if (

-                name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_LOCATION)

-                || name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_TYPE)) {

-            return null;

-        } else {

-            // Here we have to add the Xalan specific DOM Message Formatter

-            String msg = Utils.messages.createMessage(

-                    MsgKey.ER_FEATURE_NOT_FOUND,

-                    new Object[] { name });

-            throw new DOMException(DOMException.NOT_FOUND_ERR, msg);

-        }

-    }

-    

-    /**

-     * This method returns a of the parameters supported by this DOMConfiguration object 

-     * and for which at least one value can be set by the application

-     * 

-     * @see org.w3c.dom.DOMConfiguration#getParameterNames()

-     * 

-     * @return DOMStringList A list of DOMConfiguration parameters recognized

-     *                       by the serializer

-     */

-    public DOMStringList getParameterNames() {

-        return new DOMStringListImpl(fRecognizedParameters);

-    }

-    

-    /**

-     * This method sets the value of the named parameter.

-     *   

-     * @see org.w3c.dom.DOMConfiguration#setParameter(java.lang.String, java.lang.Object)

-     * 

-     * @param name A String containing the DOMConfiguration parameter name.

-     * @param value An Object contaiing the parameters value to set.

-     */

-    public void setParameter(String name, Object value) throws DOMException {

-        // If the value is a boolean

-        if (value instanceof Boolean) {

-            boolean state = ((Boolean) value).booleanValue();

-            

-            if (name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS)) {

-                fFeatures = state ? fFeatures | COMMENTS : fFeatures

-                        & ~COMMENTS;

-                // comments

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_EXPLICIT_FALSE);

-                }                

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS)) {

-                fFeatures =  state ? fFeatures | CDATA : fFeatures

-                        & ~CDATA;

-                // cdata-sections

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_EXPLICIT_FALSE);

-                }

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES)) {

-                fFeatures = state ? fFeatures | ENTITIES : fFeatures

-                        & ~ENTITIES;

-                // entities

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_TRUE);

-                    fDOMConfigProperties.setProperty(

-                            DOMConstants.S_XERCES_PROPERTIES_NS

-                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    fDOMConfigProperties.setProperty(

-                            DOMConstants.S_XERCES_PROPERTIES_NS

-                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);

-                }

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES)) {

-                fFeatures = state ? fFeatures | NAMESPACES : fFeatures

-                        & ~NAMESPACES;

-                // namespaces

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_EXPLICIT_FALSE); 

-                }       

-            } else if (name

-                    .equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS)) {

-                fFeatures = state ? fFeatures | NAMESPACEDECLS

-                        : fFeatures & ~NAMESPACEDECLS;

-                // namespace-declarations

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_NAMESPACE_DECLARATIONS, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_NAMESPACE_DECLARATIONS, DOMConstants.DOM3_EXPLICIT_FALSE); 

-                } 

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA)) {

-                fFeatures = state ? fFeatures | SPLITCDATA : fFeatures

-                        & ~SPLITCDATA;

-                // split-cdata-sections

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_SPLIT_CDATA, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_SPLIT_CDATA, DOMConstants.DOM3_EXPLICIT_FALSE); 

-                }  

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED)) {

-                fFeatures = state ? fFeatures | WELLFORMED : fFeatures

-                        & ~WELLFORMED;

-                // well-formed

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_EXPLICIT_FALSE); 

-                }                  

-            } else if (name

-                    .equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT)) {

-                fFeatures = state ? fFeatures | DISCARDDEFAULT

-                        : fFeatures & ~DISCARDDEFAULT;

-                // discard-default-content

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT, DOMConstants.DOM3_EXPLICIT_FALSE); 

-                }                    

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)) {

-                fFeatures = state ? fFeatures | PRETTY_PRINT : fFeatures

-                        & ~PRETTY_PRINT;

-                // format-pretty-print

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_FORMAT_PRETTY_PRINT, DOMConstants.DOM3_EXPLICIT_TRUE);

-                }

-                else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_FORMAT_PRETTY_PRINT, DOMConstants.DOM3_EXPLICIT_FALSE);

-                }

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL)) {

-                fFeatures = state ? fFeatures | XMLDECL : fFeatures

-                        & ~XMLDECL;

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "no");

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "yes"); 

-                }       

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE)) {

-                fFeatures = state ? fFeatures | ELEM_CONTENT_WHITESPACE : fFeatures

-                        & ~ELEM_CONTENT_WHITESPACE;

-                // element-content-whitespace

-                if (state) {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE, DOMConstants.DOM3_EXPLICIT_TRUE);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE, DOMConstants.DOM3_EXPLICIT_FALSE);

-                }            

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) {

-                // false is not supported

-                if (!state) {

-                    // Here we have to add the Xalan specific DOM Message Formatter

-                    String msg = Utils.messages.createMessage(

-                            MsgKey.ER_FEATURE_NOT_SUPPORTED,

-                            new Object[] { name });

-                    throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);

-                } else {

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS, DOMConstants.DOM3_EXPLICIT_TRUE);

-                }

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION)

-                    || name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION)

-                    // || name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)

-                    ) {

-                // true is not supported

-                if (state) {

-                    String msg = Utils.messages.createMessage(

-                            MsgKey.ER_FEATURE_NOT_SUPPORTED,

-                            new Object[] { name });

-                    throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);

-                } else {

-                    if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)) {

-                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                                + DOMConstants.DOM_CANONICAL_FORM, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)) {

-                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                                + DOMConstants.DOM_VALIDATE_IF_SCHEMA, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)) {

-                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                                + DOMConstants.DOM_VALIDATE, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)) {

-                        fDOMConfigProperties.setProperty(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION 

-                                + DOMConstants.DOM_CHECK_CHAR_NORMALIZATION, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION)) {

-                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                                + DOMConstants.DOM_DATATYPE_NORMALIZATION, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    } /* else if (name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)) {

-                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                                + DOMConstants.DOM_NORMALIZE_CHARACTERS, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    } */

-                }

-            } else if (name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)) {

-                // infoset

-                if (state) {

-                    fFeatures &= ~ENTITIES;

-                    fFeatures &= ~CDATA;

-                    fFeatures &= ~SCHEMAVALIDATE;

-                    fFeatures &= ~DTNORMALIZE;

-                    fFeatures |= NAMESPACES;

-                    fFeatures |= NAMESPACEDECLS;

-                    fFeatures |= WELLFORMED;

-                    fFeatures |= ELEM_CONTENT_WHITESPACE;

-                    fFeatures |= COMMENTS;

-                    

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_EXPLICIT_TRUE); 

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_NAMESPACE_DECLARATIONS, DOMConstants.DOM3_EXPLICIT_TRUE);

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_EXPLICIT_TRUE);

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE, DOMConstants.DOM3_EXPLICIT_TRUE);

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_EXPLICIT_TRUE);

-                    

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS

-                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_EXPLICIT_FALSE);

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_VALIDATE_IF_SCHEMA, DOMConstants.DOM3_EXPLICIT_FALSE);            

-                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 

-                            + DOMConstants.DOM_DATATYPE_NORMALIZATION, DOMConstants.DOM3_EXPLICIT_FALSE);

-                }

-            } else {

-                // If this is a non-boolean parameter a type mismatch should be thrown.

-                if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_LOCATION) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_TYPE)) {

-                    String msg = Utils.messages.createMessage(

-                            MsgKey.ER_TYPE_MISMATCH_ERR,

-                            new Object[] { name });

-                    throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);

-                }

-                

-                // Parameter is not recognized

-                String msg = Utils.messages.createMessage(

-                        MsgKey.ER_FEATURE_NOT_FOUND,

-                        new Object[] { name });

-                throw new DOMException(DOMException.NOT_FOUND_ERR, msg);

-            }

-        } // If the parameter value is not a boolean 

-        else if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER)) {

-            if (value == null || value instanceof DOMErrorHandler) {

-                fDOMErrorHandler = (DOMErrorHandler)value;

-            } else {

-                String msg = Utils.messages.createMessage(

-                        MsgKey.ER_TYPE_MISMATCH_ERR,

-                        new Object[] { name });

-                throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);

-            }

-        } else if (

-                name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_LOCATION)

-                || name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_TYPE)) {

-            if (value != null) {

-                if (!(value instanceof String)) {

-                    String msg = Utils.messages.createMessage(

-                            MsgKey.ER_TYPE_MISMATCH_ERR,

-                            new Object[] { name });

-                    throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);

-                }

-                String msg = Utils.messages.createMessage(

-                        MsgKey.ER_FEATURE_NOT_SUPPORTED,

-                        new Object[] { name });

-                throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);

-            }

-        } else {

-            // If this is a boolean parameter a type mismatch should be thrown.

-            if (name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION) ||

-                    name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)) {

-                String msg = Utils.messages.createMessage(

-                        MsgKey.ER_TYPE_MISMATCH_ERR,

-                        new Object[] { name });

-                throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);

-            }

-            

-            // Parameter is not recognized

-            String msg = Utils.messages.createMessage(

-                    MsgKey.ER_FEATURE_NOT_FOUND,

-                    new Object[] { name });

-            throw new DOMException(DOMException.NOT_FOUND_ERR, msg);

-        }

-    }

-    // ************************************************************************

-    

-    

-    // ************************************************************************

-    // DOMConfiguraiton implementation

-    // ************************************************************************

-    

-    /** 

-     * Returns the DOMConfiguration of the LSSerializer.

-     *  

-     * @see org.w3c.dom.ls.LSSerializer#getDomConfig()

-     * @since DOM Level 3

-     * @return A DOMConfiguration object.

-     */

-    public DOMConfiguration getDomConfig() {

-        return (DOMConfiguration)this;

-    }

-    

-    /** 

-     * Returns the DOMConfiguration of the LSSerializer.

-     *  

-     * @see org.w3c.dom.ls.LSSerializer#getFilter()

-     * @since DOM Level 3

-     * @return A LSSerializerFilter object.

-     */

-    public LSSerializerFilter getFilter() {

-        return fSerializerFilter;

-    }

-    

-    /** 

-     * Returns the End-Of-Line sequence of characters to be used in the XML 

-     * being serialized.  If none is set a default "\n" is returned.

-     * 

-     * @see org.w3c.dom.ls.LSSerializer#getNewLine()

-     * @since DOM Level 3

-     * @return A String containing the end-of-line character sequence  used in 

-     * serialization.

-     */

-    public String getNewLine() {

-        return fEndOfLine;

-    }

-    

-    /** 

-     * Set a LSSerilizerFilter on the LSSerializer.  When set, the filter is

-     * called before each node is serialized which depending on its implemention

-     * determines if the node is to be serialized or not.    

-     *  

-     * @see org.w3c.dom.ls.LSSerializer#setFilter

-     * @since DOM Level 3

-     * @param filter A LSSerializerFilter to be applied to the stream to serialize.

-     */

-    public void setFilter(LSSerializerFilter filter) {

-        fSerializerFilter = filter;

-    }

-    

-    /** 

-     * Sets the End-Of-Line sequence of characters to be used in the XML 

-     * being serialized.  Setting this attribute to null will reset its 

-     * value to the default value i.e. "\n".

-     * 

-     * @see org.w3c.dom.ls.LSSerializer#setNewLine

-     * @since DOM Level 3

-     * @param newLine a String that is the end-of-line character sequence to be used in 

-     * serialization.

-     */

-    public void setNewLine(String newLine) {

-        fEndOfLine = (newLine != null) ? newLine : DEFAULT_END_OF_LINE;

-    }

-    

-    /** 

-     * Serializes the specified node to the specified LSOutput and returns true if the Node 

-     * was successfully serialized. 

-     * 

-     * @see org.w3c.dom.ls.LSSerializer#write(org.w3c.dom.Node, org.w3c.dom.ls.LSOutput)

-     * @since DOM Level 3

-     * @param nodeArg The Node to serialize.

-     * @throws org.w3c.dom.ls.LSException SERIALIZE_ERR: Raised if the 

-     * LSSerializer was unable to serialize the node.

-     *      

-     */

-    public boolean write(Node nodeArg, LSOutput destination) throws LSException {

-        // If the destination is null

-        if (destination == null) {

-            String msg = Utils.messages

-            .createMessage(

-                    MsgKey.ER_NO_OUTPUT_SPECIFIED,

-                    null);

-            if (fDOMErrorHandler != null) {

-                fDOMErrorHandler.handleError(new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR, msg,

-                        MsgKey.ER_NO_OUTPUT_SPECIFIED));

-            }

-            throw new LSException(LSException.SERIALIZE_ERR, msg);

-        } 

-        

-        // If nodeArg is null, return false.  Should we throw and LSException instead?

-        if (nodeArg == null ) {

-            return false;

-        }

-

-        // Obtain a reference to the serializer to use

-        // Serializer serializer = getXMLSerializer(xmlVersion);

-        Serializer serializer = fXMLSerializer;

-        serializer.reset();

-        

-        // If the node has not been seen

-        if ( nodeArg != fVisitedNode) {

-            // Determine the XML Document version of the Node 

-            String xmlVersion = getXMLVersion(nodeArg);

-            

-            // Determine the encoding: 1.LSOutput.encoding, 2.Document.inputEncoding, 3.Document.xmlEncoding. 

-            fEncoding = destination.getEncoding();

-            if (fEncoding == null ) {

-            	fEncoding = getInputEncoding(nodeArg);

-            	fEncoding = fEncoding != null ? fEncoding : getXMLEncoding(nodeArg) == null? "UTF-8": getXMLEncoding(nodeArg);

-            }

-

-            // If the encoding is not recognized throw an exception.

-            // Note: The serializer defaults to UTF-8 when created

-            if (!Encodings.isRecognizedEncoding(fEncoding)) {

-                String msg = Utils.messages

-                .createMessage(

-                        MsgKey.ER_UNSUPPORTED_ENCODING,

-                        null);

-                if (fDOMErrorHandler != null) {

-                    fDOMErrorHandler.handleError(new DOMErrorImpl(

-                            DOMError.SEVERITY_FATAL_ERROR, msg,

-                            MsgKey.ER_UNSUPPORTED_ENCODING));

-                }

-                throw new LSException(LSException.SERIALIZE_ERR, msg);            	

-            }

-            

-            serializer.getOutputFormat().setProperty("version", xmlVersion);

-

-            // Set the output encoding and xml version properties

-            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION, xmlVersion);

-            fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_ENCODING, fEncoding);

-            

-            // If the node to be serialized is not a Document, Element, or Entity

-            // node

-            // then the XML declaration, or text declaration, should be never be

-            // serialized.

-            if ( (nodeArg.getNodeType() != Node.DOCUMENT_NODE

-                    || nodeArg.getNodeType() != Node.ELEMENT_NODE

-                    || nodeArg.getNodeType() != Node.ENTITY_NODE)

-                    && ((fFeatures & XMLDECL) != 0)) {

-                fDOMConfigProperties.setProperty(

-                        DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL,

-                        DOMConstants.DOM3_DEFAULT_FALSE);

-            }

-

-            fVisitedNode = nodeArg;

-        } 

-        

-        // Update the serializer properties

-        fXMLSerializer.setOutputFormat(fDOMConfigProperties);

-        

-        // 

-        try {

-            

-            // The LSSerializer will use the LSOutput object to determine 

-            // where to serialize the output to in the following order the  

-            // first one that is not null and not an empty string will be    

-            // used: 1.LSOutput.characterStream, 2.LSOutput.byteStream,   

-            // 3. LSOutput.systemId 

-            // 1.LSOutput.characterStream

-            Writer writer = destination.getCharacterStream();

-            if (writer == null ) {

-                

-                // 2.LSOutput.byteStream

-                OutputStream outputStream = destination.getByteStream();

-                if ( outputStream == null) {

-                    

-                    // 3. LSOutput.systemId

-                    String uri = destination.getSystemId();

-                    if (uri == null) {

-                        String msg = Utils.messages

-                        .createMessage(

-                                MsgKey.ER_NO_OUTPUT_SPECIFIED,

-                                null);

-                        if (fDOMErrorHandler != null) {

-                            fDOMErrorHandler.handleError(new DOMErrorImpl(

-                                    DOMError.SEVERITY_FATAL_ERROR, msg,

-                                    MsgKey.ER_NO_OUTPUT_SPECIFIED));

-                        }

-                        throw new LSException(LSException.SERIALIZE_ERR, msg);

-                        

-                    } else {

-                        // Expand the System Id and obtain an absolute URI for it.

-                        String absoluteURI = SystemIDResolver.getAbsoluteURI(uri);

-                        

-                        URL url = new URL(absoluteURI);

-                        OutputStream urlOutStream = null;

-                        String protocol = url.getProtocol();

-                        String host = url.getHost();

-                        

-                        // For file protocols, there is no need to use a URL to get its

-                        // corresponding OutputStream

-                        

-                        // Scheme names consist of a sequence of characters. The lower case

-                        // letters "a"--"z", digits, and the characters plus ("+"), period

-                        // ("."), and hyphen ("-") are allowed. For resiliency, programs

-                        // interpreting URLs should treat upper case letters as equivalent to

-                        // lower case in scheme names (e.g., allow "HTTP" as well as "http").

-                        if (protocol.equalsIgnoreCase("file") 

-                                && (host == null || host.length() == 0 || host.equals("localhost"))) {

-                            // do we also need to check for host.equals(hostname)

-                            urlOutStream = new FileOutputStream(getPathWithoutEscapes(url.getPath()));

-                           

-                        } else {

-                            // This should support URL's whose schemes are mentioned in 

-                            // RFC1738 other than file

-                            

-                            URLConnection urlCon = url.openConnection();

-                            urlCon.setDoInput(false);

-                            urlCon.setDoOutput(true);

-                            urlCon.setUseCaches(false); 

-                            urlCon.setAllowUserInteraction(false);

-                            

-                            // When writing to a HTTP URI, a HTTP PUT is performed.

-                            if (urlCon instanceof HttpURLConnection) {

-                                HttpURLConnection httpCon = (HttpURLConnection) urlCon;

-                                httpCon.setRequestMethod("PUT");

-                            }

-                            urlOutStream = urlCon.getOutputStream();

-                        }

-                        // set the OutputStream to that obtained from the systemId

-                        serializer.setOutputStream(urlOutStream);

-                    }

-                } else {

-                    // 2.LSOutput.byteStream

-                    serializer.setOutputStream(outputStream);     

-                }

-            } else {

-                // 1.LSOutput.characterStream

-                serializer.setWriter(writer);

-            }

-            

-            // The associated media type by default is set to text/xml on 

-            // org.apache.xml.serializer.SerializerBase.  

-            

-            // Get a reference to the serializer then lets you serilize a DOM

-            // Use this hack till Xalan support JAXP1.3

-            if (fDOMSerializer == null) {

-               fDOMSerializer = (DOM3Serializer)serializer.asDOM3Serializer();

-            } 

-            

-            // Set the error handler on the DOM3Serializer interface implementation

-            if (fDOMErrorHandler != null) {

-                fDOMSerializer.setErrorHandler(fDOMErrorHandler);

-            }

-            

-            // Set the filter on the DOM3Serializer interface implementation

-            if (fSerializerFilter != null) {

-                fDOMSerializer.setNodeFilter(fSerializerFilter);

-            }

-            

-            // Set the NewLine character to be used

-            fDOMSerializer.setNewLine(fEndOfLine.toCharArray());

-            

-            // Serializer your DOM, where node is an org.w3c.dom.Node

-            // Assuming that Xalan's serializer can serialize any type of DOM node

-            fDOMSerializer.serializeDOM3(nodeArg);

-            

-        } catch( UnsupportedEncodingException ue) {

-            

-            String msg = Utils.messages

-            .createMessage(

-                    MsgKey.ER_UNSUPPORTED_ENCODING,

-                    null);

-            if (fDOMErrorHandler != null) {

-                fDOMErrorHandler.handleError(new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR, msg,

-                        MsgKey.ER_UNSUPPORTED_ENCODING, ue));

-            }

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, ue).fillInStackTrace();

-        } catch (LSException lse) {

-            // Rethrow LSException.

-            throw lse;

-        } catch (RuntimeException e) {

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();

-        }  catch (Exception e) {

-            if (fDOMErrorHandler != null) {

-                fDOMErrorHandler.handleError(new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR, e.getMessage(),

-                        null, e));

-            }

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();

-        }        

-        return true;

-    }

-    

-    /** 

-     * Serializes the specified node and returns a String with the serialized

-     * data to the caller.  

-     * 

-     * @see org.w3c.dom.ls.LSSerializer#writeToString(org.w3c.dom.Node)

-     * @since DOM Level 3

-     * @param nodeArg The Node to serialize.

-     * @throws org.w3c.dom.ls.LSException SERIALIZE_ERR: Raised if the 

-     * LSSerializer was unable to serialize the node.

-     *      

-     */

-    public String writeToString(Node nodeArg) throws DOMException, LSException {

-        // return null is nodeArg is null.  Should an Exception be thrown instead?

-        if (nodeArg == null) {

-            return null;

-        }

-

-        // Should we reset the serializer configuration before each write operation?

-        // Obtain a reference to the serializer to use

-        Serializer serializer = fXMLSerializer;

-        serializer.reset();

-        

-        if (nodeArg != fVisitedNode){

-            // Determine the XML Document version of the Node 

-            String xmlVersion = getXMLVersion(nodeArg);

-            

-            serializer.getOutputFormat().setProperty("version", xmlVersion);

-            

-            // Set the output encoding and xml version properties

-            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION, xmlVersion);

-            fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_ENCODING, "UTF-16");

-            

-            // If the node to be serialized is not a Document, Element, or Entity

-            // node

-            // then the XML declaration, or text declaration, should be never be

-            // serialized.

-            if  ((nodeArg.getNodeType() != Node.DOCUMENT_NODE

-                    || nodeArg.getNodeType() != Node.ELEMENT_NODE

-                    || nodeArg.getNodeType() != Node.ENTITY_NODE)

-                    && ((fFeatures & XMLDECL) != 0)) {

-                fDOMConfigProperties.setProperty(

-                        DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL,

-                        DOMConstants.DOM3_DEFAULT_FALSE);

-            }            

-

-            fVisitedNode = nodeArg;       

-        } 

-        // Update the serializer properties

-        fXMLSerializer.setOutputFormat(fDOMConfigProperties);

-        

-        // StringWriter to Output to

-        StringWriter output = new StringWriter();

-        

-        // 

-        try {

-            

-            // Set the Serializer's Writer to a StringWriter

-            serializer.setWriter(output);

-            

-            // Get a reference to the serializer then lets you serilize a DOM

-            // Use this hack till Xalan support JAXP1.3

-            if (fDOMSerializer == null) {

-                fDOMSerializer = (DOM3Serializer)serializer.asDOM3Serializer();

-            } 

-                        

-            // Set the error handler on the DOM3Serializer interface implementation

-            if (fDOMErrorHandler != null) {

-                fDOMSerializer.setErrorHandler(fDOMErrorHandler);

-            }

-            

-            // Set the filter on the DOM3Serializer interface implementation

-            if (fSerializerFilter != null) {

-                fDOMSerializer.setNodeFilter(fSerializerFilter);

-            }

-            

-            // Set the NewLine character to be used

-            fDOMSerializer.setNewLine(fEndOfLine.toCharArray());

-            

-            // Serializer your DOM, where node is an org.w3c.dom.Node

-            fDOMSerializer.serializeDOM3(nodeArg);

-        } catch (LSException lse) {

-            // Rethrow LSException.

-            throw lse;

-        } catch (RuntimeException e) {

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();

-        }  catch (Exception e) {

-            if (fDOMErrorHandler != null) {

-                fDOMErrorHandler.handleError(new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR, e.getMessage(),

-                        null, e));

-            }

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();

-        }        

-        

-        // return the serialized string

-        return output.toString();

-    }

-    

-    /** 

-     * Serializes the specified node to the specified URI and returns true if the Node 

-     * was successfully serialized. 

-     * 

-     * @see org.w3c.dom.ls.LSSerializer#writeToURI(org.w3c.dom.Node, String)

-     * @since DOM Level 3

-     * @param nodeArg The Node to serialize.

-     * @throws org.w3c.dom.ls.LSException SERIALIZE_ERR: Raised if the 

-     * LSSerializer was unable to serialize the node.

-     *      

-     */

-    public boolean writeToURI(Node nodeArg, String uri) throws LSException {

-        // If nodeArg is null, return false.  Should we throw and LSException instead?

-        if (nodeArg == null ) {

-            return false;

-        }

-

-        // Obtain a reference to the serializer to use

-        Serializer serializer = fXMLSerializer;

-        serializer.reset();

-        

-        if (nodeArg != fVisitedNode) {

-            // Determine the XML Document version of the Node 

-            String xmlVersion = getXMLVersion(nodeArg);

-            

-            // Determine the encoding: 1.LSOutput.encoding,

-            // 2.Document.inputEncoding, 3.Document.xmlEncoding.

-            fEncoding = getInputEncoding(nodeArg);

-            if (fEncoding == null ) {

-            	fEncoding = fEncoding != null ? fEncoding : getXMLEncoding(nodeArg) == null? "UTF-8": getXMLEncoding(nodeArg);

-            }

-            

-            serializer.getOutputFormat().setProperty("version", xmlVersion);

-            

-            // Set the output encoding and xml version properties

-            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION, xmlVersion);

-            fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_ENCODING, fEncoding);

-            

-            // If the node to be serialized is not a Document, Element, or Entity

-            // node

-            // then the XML declaration, or text declaration, should be never be

-            // serialized.

-            if ( (nodeArg.getNodeType() != Node.DOCUMENT_NODE

-                    || nodeArg.getNodeType() != Node.ELEMENT_NODE

-                    || nodeArg.getNodeType() != Node.ENTITY_NODE)

-                    && ((fFeatures & XMLDECL) != 0))  {

-                fDOMConfigProperties.setProperty(

-                        DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL,

-                        DOMConstants.DOM3_DEFAULT_FALSE);

-            }

-       

-            fVisitedNode = nodeArg;

-        } 

-        

-        // Update the serializer properties

-        fXMLSerializer.setOutputFormat(fDOMConfigProperties);

-        

-        // 

-        try {

-            // If the specified encoding is not supported an

-            // "unsupported-encoding" fatal error is raised. ??

-            if (uri == null) {

-                String msg = Utils.messages.createMessage(

-                        MsgKey.ER_NO_OUTPUT_SPECIFIED, null);

-                if (fDOMErrorHandler != null) {

-                    fDOMErrorHandler.handleError(new DOMErrorImpl(

-                            DOMError.SEVERITY_FATAL_ERROR, msg,

-                            MsgKey.ER_NO_OUTPUT_SPECIFIED));

-                }

-                throw new LSException(LSException.SERIALIZE_ERR, msg);

-                

-            } else {

-                // REVISIT: Can this be used to get an absolute expanded URI

-                String absoluteURI = SystemIDResolver.getAbsoluteURI(uri);

-                

-                URL url = new URL(absoluteURI);

-                OutputStream urlOutStream = null;

-                String protocol = url.getProtocol();

-                String host = url.getHost();

-                

-                // For file protocols, there is no need to use a URL to get its

-                // corresponding OutputStream

-                

-                // Scheme names consist of a sequence of characters. The lower 

-                // case letters "a"--"z", digits, and the characters plus ("+"), 

-                // period ("."), and hyphen ("-") are allowed. For resiliency, 

-                // programs interpreting URLs should treat upper case letters as

-                // equivalent to lower case in scheme names 

-                // (e.g., allow "HTTP" as well as "http").

-                if (protocol.equalsIgnoreCase("file")

-                        && (host == null || host.length() == 0 || host

-                                .equals("localhost"))) {

-                    // do we also need to check for host.equals(hostname)

-                    urlOutStream = new FileOutputStream(getPathWithoutEscapes(url.getPath()));

-                    

-                } else {

-                    // This should support URL's whose schemes are mentioned in

-                    // RFC1738 other than file

-                    

-                    URLConnection urlCon = url.openConnection();

-                    urlCon.setDoInput(false);

-                    urlCon.setDoOutput(true);

-                    urlCon.setUseCaches(false);

-                    urlCon.setAllowUserInteraction(false);

-                    

-                    // When writing to a HTTP URI, a HTTP PUT is performed.

-                    if (urlCon instanceof HttpURLConnection) {

-                        HttpURLConnection httpCon = (HttpURLConnection) urlCon;

-                        httpCon.setRequestMethod("PUT");

-                    }

-                    urlOutStream = urlCon.getOutputStream();

-                }

-                // set the OutputStream to that obtained from the systemId

-                serializer.setOutputStream(urlOutStream);

-            }

-            

-            // Get a reference to the serializer then lets you serilize a DOM

-            // Use this hack till Xalan support JAXP1.3

-            if (fDOMSerializer == null) {

-                fDOMSerializer = (DOM3Serializer)serializer.asDOM3Serializer();

-            } 

-            

-            // Set the error handler on the DOM3Serializer interface implementation

-            if (fDOMErrorHandler != null) {

-                fDOMSerializer.setErrorHandler(fDOMErrorHandler);

-            }

-            

-            // Set the filter on the DOM3Serializer interface implementation

-            if (fSerializerFilter != null) {

-                fDOMSerializer.setNodeFilter(fSerializerFilter);

-            }

-            

-            // Set the NewLine character to be used

-            fDOMSerializer.setNewLine(fEndOfLine.toCharArray());

-            

-            // Serializer your DOM, where node is an org.w3c.dom.Node

-            // Assuming that Xalan's serializer can serialize any type of DOM

-            // node

-            fDOMSerializer.serializeDOM3(nodeArg);

-            

-        } catch (LSException lse) {

-            // Rethrow LSException.

-            throw lse;

-        } catch (RuntimeException e) {

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();

-        }  catch (Exception e) {

-            if (fDOMErrorHandler != null) {

-                fDOMErrorHandler.handleError(new DOMErrorImpl(

-                        DOMError.SEVERITY_FATAL_ERROR, e.getMessage(),

-                        null, e));

-            }

-            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();

-        }        

-        

-        return true;

-    }

-    // ************************************************************************

-    

-    

-    // ************************************************************************

-    // Implementaion methods

-    // ************************************************************************

-    

-    /** 

-     * Determines the XML Version of the Document Node to serialize.  If the Document Node

-     * is not a DOM Level 3 Node, then the default version returned is 1.0.

-     * 

-     * @param  nodeArg The Node to serialize

-     * @return A String containing the version pseudo-attribute of the XMLDecl.  

-     * @throws Throwable if the DOM implementation does not implement Document.getXmlVersion()      

-     */

-    //protected String getXMLVersion(Node nodeArg) throws Throwable {

-    protected String getXMLVersion(Node nodeArg) {

-        Document doc = null;

-        

-        // Determine the XML Version of the document

-        if (nodeArg != null) {

-            if (nodeArg.getNodeType() == Node.DOCUMENT_NODE) {

-                // The Document node is the Node argument

-                doc = (Document)nodeArg;

-            } else { 

-                // The Document node is the Node argument's ownerDocument

-                doc = nodeArg.getOwnerDocument();

-            }

-            

-            // Determine the DOM Version.

-            if (doc != null && doc.getImplementation().hasFeature("Core","3.0")) {

-                return doc.getXmlVersion();

-            }

-        } 

-        // The version will be treated as "1.0" which may result in

-        // an ill-formed document being serialized.

-        // If nodeArg does not have an ownerDocument, treat this as XML 1.0

-        return "1.0";

-    }

-    

-    /** 

-     * Determines the XML Encoding of the Document Node to serialize.  If the Document Node

-     * is not a DOM Level 3 Node, then the default encoding "UTF-8" is returned.

-     * 

-     * @param  nodeArg The Node to serialize

-     * @return A String containing the encoding pseudo-attribute of the XMLDecl.  

-     * @throws Throwable if the DOM implementation does not implement Document.getXmlEncoding()     

-     */

-    protected String getXMLEncoding(Node nodeArg) {

-        Document doc = null;

-        

-        // Determine the XML Encoding of the document

-        if (nodeArg != null) {

-            if (nodeArg.getNodeType() == Node.DOCUMENT_NODE) {

-                // The Document node is the Node argument

-                doc = (Document)nodeArg;

-            } else { 

-                // The Document node is the Node argument's ownerDocument

-                doc = nodeArg.getOwnerDocument();

-            }

-            

-            // Determine the XML Version. 

-            if (doc != null && doc.getImplementation().hasFeature("Core","3.0")) {

-                return doc.getXmlEncoding();

-            }

-        } 

-        // The default encoding is UTF-8 except for the writeToString method

-        return "UTF-8";

-    }

-    

-    /** 

-     * Determines the Input Encoding of the Document Node to serialize.  If the Document Node

-     * is not a DOM Level 3 Node, then null is returned.

-     * 

-     * @param  nodeArg The Node to serialize

-     * @return A String containing the input encoding.  

-     */

-    protected String getInputEncoding(Node nodeArg)  {

-        Document doc = null;

-        

-        // Determine the Input Encoding of the document

-        if (nodeArg != null) {

-            if (nodeArg.getNodeType() == Node.DOCUMENT_NODE) {

-                // The Document node is the Node argument

-                doc = (Document)nodeArg;

-            } else { 

-                // The Document node is the Node argument's ownerDocument

-                doc = nodeArg.getOwnerDocument();

-            }

-            

-            // Determine the DOM Version.

-            if (doc != null && doc.getImplementation().hasFeature("Core","3.0")) {

-                return doc.getInputEncoding();

-            }

-        } 

-        // The default encoding returned is null

-        return null;

-    }

-    

-    /**

-     * This method returns the LSSerializer's error handler.

-     * 

-     * @return Returns the fDOMErrorHandler.

-     */

-    public DOMErrorHandler getErrorHandler() {

-        return fDOMErrorHandler;

-    }

-    

-    /**

-     * Replaces all escape sequences in the given path with their literal characters.

-     */

-    private static String getPathWithoutEscapes(String origPath) {

-        if (origPath != null && origPath.length() != 0 && origPath.indexOf('%') != -1) {

-            // Locate the escape characters

-            StringTokenizer tokenizer = new StringTokenizer(origPath, "%");

-            StringBuffer result = new StringBuffer(origPath.length());

-            int size = tokenizer.countTokens();

-            result.append(tokenizer.nextToken());

-            for(int i = 1; i < size; ++i) {

-                String token = tokenizer.nextToken();

-                if (token.length() >= 2 && isHexDigit(token.charAt(0)) && 

-                        isHexDigit(token.charAt(1))) {

-                    // Decode the 2 digit hexadecimal number following % in '%nn'

-                    result.append((char)Integer.valueOf(token.substring(0, 2), 16).intValue());

-                    token = token.substring(2);

-                }

-                result.append(token);

-            }

-            return result.toString();

-        }

-        return origPath;

-    }

-

-    /** 

-     * Returns true if the given character is a valid hex character.

-     */

-    private static boolean isHexDigit(char c) {

-        return (c >= '0' && c <= '9' || 

-                c >= 'a' && c <= 'f' || 

-                c >= 'A' && c <= 'F');

-    }

-    

-    /**

-     * Creates an LSException. On J2SE 1.4 and above the cause for the exception will be set.

-     */

-    private static LSException createLSException(short code, Throwable cause) {

-        LSException lse = new LSException(code, cause != null ? cause.getMessage() : null);

-        if (cause != null && ThrowableMethods.fgThrowableMethodsAvailable) {

-            try {

-                ThrowableMethods.fgThrowableInitCauseMethod.invoke(lse, new Object [] {cause});

-            }

-            // Something went wrong. There's not much we can do about it.

-            catch (Exception e) {}

-        }

-        return lse;

-    }

-    

-    /**

-     * Holder of methods from java.lang.Throwable.

-     */

-    static class ThrowableMethods {

-        

-        // Method: java.lang.Throwable.initCause(java.lang.Throwable)

-        private static java.lang.reflect.Method fgThrowableInitCauseMethod = null;

-        

-        // Flag indicating whether or not Throwable methods available.

-        private static boolean fgThrowableMethodsAvailable = false;

-        

-        private ThrowableMethods() {}

-        

-        // Attempt to get methods for java.lang.Throwable on class initialization.

-        static {

-            try {

-                fgThrowableInitCauseMethod = Throwable.class.getMethod("initCause", new Class [] {Throwable.class});

-                fgThrowableMethodsAvailable = true;

-            }

-            // ClassNotFoundException, NoSuchMethodException or SecurityException

-            // Whatever the case, we cannot use java.lang.Throwable.initCause(java.lang.Throwable).

-            catch (Exception exc) {

-                fgThrowableInitCauseMethod = null;

-                fgThrowableMethodsAvailable = false;

-            }

-        }

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.io.Writer;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.apache.xml.serializer.DOM3Serializer;
+import org.apache.xml.serializer.Encodings;
+import org.apache.xml.serializer.OutputPropertiesFactory;
+import org.apache.xml.serializer.Serializer;
+import org.apache.xml.serializer.SerializerFactory;
+import org.apache.xml.serializer.utils.MsgKey;
+import org.apache.xml.serializer.utils.SystemIDResolver;
+import org.apache.xml.serializer.utils.Utils;
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.DOMError;
+import org.w3c.dom.DOMErrorHandler;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.DOMStringList;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.ls.LSException;
+import org.w3c.dom.ls.LSOutput;
+import org.w3c.dom.ls.LSSerializer;
+import org.w3c.dom.ls.LSSerializerFilter;
+
+/**
+ * Implemenatation of DOM Level 3 org.w3c.ls.LSSerializer and 
+ * org.w3c.dom.ls.DOMConfiguration.  Serialization is achieved by delegating 
+ * serialization calls to <CODE>org.apache.xml.serializer.ToStream</CODE> or 
+ * one of its derived classes depending on the serialization method, while walking
+ * the DOM in DOM3TreeWalker.  
+ * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer">org.w3c.dom.ls.LSSerializer</a>
+ * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">org.w3c.dom.DOMConfiguration</a>
+ *  
+ * @version $Id:  
+ * 
+ * @xsl.usage internal 
+ */
+final public class LSSerializerImpl implements DOMConfiguration, LSSerializer {
+    
+    // The default end-of-line character sequence used in serialization.
+    private static final String DEFAULT_END_OF_LINE;
+    static {
+        String lineSeparator = (String) AccessController.doPrivileged(new PrivilegedAction() {
+            public Object run() {
+                try {
+                    return System.getProperty("line.separator");
+                }
+                catch (SecurityException ex) {}
+                return null;
+            }
+        });
+        // The DOM Level 3 Load and Save specification requires that implementations choose a default
+        // sequence which matches one allowed by XML 1.0 (or XML 1.1). If the value of "line.separator" 
+        // isn't one of the XML 1.0 end-of-line sequences then we select "\n" as the default value.
+        DEFAULT_END_OF_LINE = lineSeparator != null && 
+            (lineSeparator.equals("\r\n") || lineSeparator.equals("\r")) ? lineSeparator : "\n";
+    }
+    
+    /** private data members */
+    private Serializer fXMLSerializer = null;
+    
+    // Tracks DOMConfiguration features. 
+    protected int fFeatures = 0;
+    
+    // Common DOM serializer
+    private  DOM3Serializer fDOMSerializer = null;
+    
+    // A filter set on the LSSerializer
+    private LSSerializerFilter fSerializerFilter = null;  
+    
+    // Stores the nodeArg parameter to speed up multiple writes of the same node.
+    private Node fVisitedNode = null;
+    
+    // The end-of-line character sequence used in serialization. "\n" is whats used on the web.
+    private String fEndOfLine = DEFAULT_END_OF_LINE;
+    
+    // The DOMErrorhandler.
+    private DOMErrorHandler fDOMErrorHandler = null;
+    
+    // The Configuration parameter to pass to the Underlying serilaizer.
+    private Properties fDOMConfigProperties = null;
+    
+    // The encoding to use during serialization.
+    private String fEncoding; 
+	
+    // ************************************************************************
+    // DOM Level 3 DOM Configuration parameter names
+    // ************************************************************************    
+    // Parameter canonical-form, true [optional] - NOT SUPPORTED 
+    private final static int CANONICAL = 0x1 << 0;
+    
+    // Parameter cdata-sections, true [required] (default)
+    private final static int CDATA = 0x1 << 1;
+    
+    // Parameter check-character-normalization, true [optional] - NOT SUPPORTED 
+    private final static int CHARNORMALIZE = 0x1 << 2;
+    
+    // Parameter comments, true [required] (default)
+    private final static int COMMENTS = 0x1 << 3;
+    
+    // Parameter datatype-normalization, true [optional] - NOT SUPPORTED
+    private final static int DTNORMALIZE = 0x1 << 4;    
+    
+    // Parameter element-content-whitespace, true [required] (default) - value - false [optional] NOT SUPPORTED
+    private final static int ELEM_CONTENT_WHITESPACE = 0x1 << 5;
+    
+    // Parameter entities, true [required] (default)
+    private final static int ENTITIES = 0x1 << 6;
+    
+    // Parameter infoset, true [required] (default), false has no effect --> True has no effect for the serializer
+    private final static int INFOSET = 0x1 << 7;
+    
+    // Parameter namespaces, true [required] (default)
+    private final static int NAMESPACES = 0x1 << 8;
+    
+    // Parameter namespace-declarations, true [required] (default)
+    private final static int NAMESPACEDECLS = 0x1 << 9;
+    
+    // Parameter normalize-characters, true [optional] - NOT SUPPORTED
+    private final static int NORMALIZECHARS = 0x1 << 10;
+    
+    // Parameter split-cdata-sections, true [required] (default)
+    private final static int SPLITCDATA = 0x1 << 11;   
+    
+    // Parameter validate, true [optional] - NOT SUPPORTED
+    private final static int VALIDATE = 0x1 << 12;   
+    
+    // Parameter validate-if-schema, true [optional] - NOT SUPPORTED
+    private final static int SCHEMAVALIDATE = 0x1 << 13;
+    
+    // Parameter split-cdata-sections, true [required] (default)
+    private final static int WELLFORMED = 0x1 << 14;   
+    
+    // Parameter discard-default-content, true [required] (default)
+    // Not sure how this will be used in level 2 Documents
+    private final static int DISCARDDEFAULT = 0x1 << 15;       
+    
+    // Parameter format-pretty-print, true [optional] 
+    private final static int PRETTY_PRINT = 0x1 << 16;
+    
+    // Parameter ignore-unknown-character-denormalizations, true [required] (default)
+    // We currently do not support XML 1.1 character normalization
+    private final static int IGNORE_CHAR_DENORMALIZE = 0x1 << 17;
+    
+    // Parameter discard-default-content, true [required] (default)
+    private final static int XMLDECL = 0x1 << 18;    
+    // ************************************************************************
+    
+    // Recognized parameters for which atleast one value can be set
+    private String fRecognizedParameters [] = {
+            DOMConstants.DOM_CANONICAL_FORM,
+            DOMConstants.DOM_CDATA_SECTIONS,
+            DOMConstants.DOM_CHECK_CHAR_NORMALIZATION,
+            DOMConstants.DOM_COMMENTS,
+            DOMConstants.DOM_DATATYPE_NORMALIZATION,
+            DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,
+            DOMConstants.DOM_ENTITIES,
+            DOMConstants.DOM_INFOSET,
+            DOMConstants.DOM_NAMESPACES,
+            DOMConstants.DOM_NAMESPACE_DECLARATIONS,
+            //DOMConstants.DOM_NORMALIZE_CHARACTERS,
+            DOMConstants.DOM_SPLIT_CDATA,
+            DOMConstants.DOM_VALIDATE,
+            DOMConstants.DOM_VALIDATE_IF_SCHEMA,
+            DOMConstants.DOM_WELLFORMED,
+            DOMConstants.DOM_DISCARD_DEFAULT_CONTENT,
+            DOMConstants.DOM_FORMAT_PRETTY_PRINT,
+            DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS,
+            DOMConstants.DOM_XMLDECL,
+            DOMConstants.DOM_ERROR_HANDLER
+    };
+    
+    
+    /**
+     * Constructor:  Creates a LSSerializerImpl object.  The underlying
+     * XML 1.0 or XML 1.1 org.apache.xml.serializer.Serializer object is
+     * created and initialized the first time any of the write methods are  
+     * invoked to serialize the Node.  Subsequent write methods on the same
+     * LSSerializerImpl object will use the previously created Serializer object.
+     */
+    public LSSerializerImpl () {
+        // set default parameters
+        fFeatures |= CDATA;
+        fFeatures |= COMMENTS;
+        fFeatures |= ELEM_CONTENT_WHITESPACE;
+        fFeatures |= ENTITIES;
+        fFeatures |= NAMESPACES;
+        fFeatures |= NAMESPACEDECLS;
+        fFeatures |= SPLITCDATA;
+        fFeatures |= WELLFORMED;
+        fFeatures |= DISCARDDEFAULT;
+        fFeatures |= XMLDECL;
+        
+        // New OutputFormat properties
+        fDOMConfigProperties = new Properties();
+        
+        // Initialize properties to be passed on the underlying serializer
+        initializeSerializerProps();
+        
+        // Create the underlying serializer.
+        Properties  configProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
+        
+        // change xml version from 1.0 to 1.1
+        //configProps.setProperty("version", "1.1");
+        
+        // Get a serializer that seriailizes according the the properties,
+        // which in this case is to xml
+        fXMLSerializer = SerializerFactory.getSerializer(configProps);
+        
+        // Initialize Serializer
+        fXMLSerializer.setOutputFormat(fDOMConfigProperties);
+    }
+    
+    /**
+     * Initializes the underlying serializer's configuration depending on the
+     * default DOMConfiguration parameters. This method must be called before a
+     * node is to be serialized.
+     * 
+     * @xsl.usage internal
+     */
+    public void initializeSerializerProps () {
+        // canonical-form
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_CANONICAL_FORM, DOMConstants.DOM3_DEFAULT_FALSE);
+        
+        // cdata-sections
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // "check-character-normalization"
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_CHECK_CHAR_NORMALIZATION,
+                DOMConstants.DOM3_DEFAULT_FALSE);
+        
+        // comments
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // datatype-normalization
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_DATATYPE_NORMALIZATION,
+                DOMConstants.DOM3_DEFAULT_FALSE);
+        
+        // element-content-whitespace
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,
+                DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // entities
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_TRUE);
+        // preserve entities
+        fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS
+                + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_TRUE);
+
+        // error-handler
+        // Should we set our default ErrorHandler
+        /*
+         * if (fDOMConfig.getParameter(Constants.DOM_ERROR_HANDLER) != null) {
+         * fDOMErrorHandler =
+         * (DOMErrorHandler)fDOMConfig.getParameter(Constants.DOM_ERROR_HANDLER); }
+         */
+        
+        // infoset
+        if ((fFeatures & INFOSET) != 0) {
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_DEFAULT_TRUE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_NAMESPACE_DECLARATIONS,
+                    DOMConstants.DOM3_DEFAULT_TRUE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_DEFAULT_TRUE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE,
+                    DOMConstants.DOM3_DEFAULT_TRUE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_DEFAULT_TRUE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_FALSE);
+            // preserve entities
+            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS
+                    + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_DEFAULT_FALSE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_CDATA_SECTIONS,
+                    DOMConstants.DOM3_DEFAULT_FALSE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_VALIDATE_IF_SCHEMA,
+                    DOMConstants.DOM3_DEFAULT_FALSE);
+            fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                    + DOMConstants.DOM_DATATYPE_NORMALIZATION,
+                    DOMConstants.DOM3_DEFAULT_FALSE);
+        }
+        
+        // namespaces
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // namespace-declarations
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_NAMESPACE_DECLARATIONS,
+                DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // normalize-characters
+        /*
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_NORMALIZE_CHARACTERS,
+                DOMConstants.DOM3_DEFAULT_FALSE);
+        */
+        
+        // split-cdata-sections
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_SPLIT_CDATA, DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // validate
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_VALIDATE, DOMConstants.DOM3_DEFAULT_FALSE);
+        
+        // validate-if-schema
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_VALIDATE_IF_SCHEMA,
+                DOMConstants.DOM3_DEFAULT_FALSE);
+        
+        // well-formed
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // pretty-print
+        fDOMConfigProperties.setProperty(
+                DOMConstants.S_XSL_OUTPUT_INDENT,
+                DOMConstants.DOM3_DEFAULT_TRUE);
+        fDOMConfigProperties.setProperty(
+                OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, Integer.toString(3));
+        
+        // 
+        
+        // discard-default-content
+        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS
+                + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT,
+                DOMConstants.DOM3_DEFAULT_TRUE);
+        
+        // xml-declaration
+        fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "no");
+        
+    }    
+    
+    // ************************************************************************
+    // DOMConfiguraiton implementation
+    // ************************************************************************
+    
+    /** 
+     * Checks if setting a parameter to a specific value is supported.    
+     *  
+     * @see org.w3c.dom.DOMConfiguration#canSetParameter(java.lang.String, java.lang.Object)
+     * @since DOM Level 3
+     * @param name A String containing the DOMConfiguration parameter name.
+     * @param value An Object specifying the value of the corresponding parameter. 
+     */
+    public boolean canSetParameter(String name, Object value) {
+        if (value instanceof Boolean){
+            if ( name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES)    
+                    || name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED)    
+                    || name.equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)                
+                    || name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL)){
+                // both values supported
+                return true;
+            }
+            else if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)
+                    // || name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)
+                    ) {
+                // true is not supported
+                return !((Boolean)value).booleanValue();
+            }
+            else if (name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) {
+                // false is not supported
+                return ((Boolean)value).booleanValue();
+            }
+        }
+        else if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER) &&
+                value == null || value instanceof DOMErrorHandler){
+            return true;
+        }
+        return false;
+    }
+    /**
+     * This method returns the value of a parameter if known.
+     * 
+     * @see org.w3c.dom.DOMConfiguration#getParameter(java.lang.String)
+     * 
+     * @param name A String containing the DOMConfiguration parameter name 
+     *             whose value is to be returned.
+     * @return Object The value of the parameter if known. 
+     */
+    public Object getParameter(String name) throws DOMException {
+        if (name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS)) {
+            return ((fFeatures & COMMENTS) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS)) {
+            return ((fFeatures & CDATA) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES)) {
+            return ((fFeatures & ENTITIES) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES)) {
+            return ((fFeatures & NAMESPACES) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS)) {
+            return ((fFeatures & NAMESPACEDECLS) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA)) {
+            return ((fFeatures & SPLITCDATA) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED)) {
+            return ((fFeatures & WELLFORMED) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        }  else if (name.equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT)) {
+            return ((fFeatures & DISCARDDEFAULT) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)) {
+            return ((fFeatures & PRETTY_PRINT) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL)) {
+            return ((fFeatures & XMLDECL) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE)) {
+            return ((fFeatures & ELEM_CONTENT_WHITESPACE) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)) {
+            return ((fFeatures & PRETTY_PRINT) != 0) ? Boolean.TRUE : Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) {
+            return Boolean.TRUE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)
+                || name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION)
+                || name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION) 
+                // || name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)                
+                || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)
+                || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)) {
+            return Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)){
+            if ((fFeatures & ENTITIES) == 0 &&
+                    (fFeatures & CDATA) == 0 &&
+                    (fFeatures & ELEM_CONTENT_WHITESPACE) != 0 &&
+                    (fFeatures & NAMESPACES) != 0 &&
+                    (fFeatures & NAMESPACEDECLS) != 0 &&
+                    (fFeatures & WELLFORMED) != 0 &&
+                    (fFeatures & COMMENTS) != 0) {
+                return Boolean.TRUE;
+            }                 
+            return Boolean.FALSE;
+        } else if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER)) {
+            return fDOMErrorHandler;
+        } else if (
+                name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_LOCATION)
+                || name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_TYPE)) {
+            return null;
+        } else {
+            // Here we have to add the Xalan specific DOM Message Formatter
+            String msg = Utils.messages.createMessage(
+                    MsgKey.ER_FEATURE_NOT_FOUND,
+                    new Object[] { name });
+            throw new DOMException(DOMException.NOT_FOUND_ERR, msg);
+        }
+    }
+    
+    /**
+     * This method returns a of the parameters supported by this DOMConfiguration object 
+     * and for which at least one value can be set by the application
+     * 
+     * @see org.w3c.dom.DOMConfiguration#getParameterNames()
+     * 
+     * @return DOMStringList A list of DOMConfiguration parameters recognized
+     *                       by the serializer
+     */
+    public DOMStringList getParameterNames() {
+        return new DOMStringListImpl(fRecognizedParameters);
+    }
+    
+    /**
+     * This method sets the value of the named parameter.
+     *   
+     * @see org.w3c.dom.DOMConfiguration#setParameter(java.lang.String, java.lang.Object)
+     * 
+     * @param name A String containing the DOMConfiguration parameter name.
+     * @param value An Object contaiing the parameters value to set.
+     */
+    public void setParameter(String name, Object value) throws DOMException {
+        // If the value is a boolean
+        if (value instanceof Boolean) {
+            boolean state = ((Boolean) value).booleanValue();
+            
+            if (name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS)) {
+                fFeatures = state ? fFeatures | COMMENTS : fFeatures
+                        & ~COMMENTS;
+                // comments
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_EXPLICIT_FALSE);
+                }                
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS)) {
+                fFeatures =  state ? fFeatures | CDATA : fFeatures
+                        & ~CDATA;
+                // cdata-sections
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_EXPLICIT_FALSE);
+                }
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES)) {
+                fFeatures = state ? fFeatures | ENTITIES : fFeatures
+                        & ~ENTITIES;
+                // entities
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_TRUE);
+                    fDOMConfigProperties.setProperty(
+                            DOMConstants.S_XERCES_PROPERTIES_NS
+                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    fDOMConfigProperties.setProperty(
+                            DOMConstants.S_XERCES_PROPERTIES_NS
+                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);
+                }
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES)) {
+                fFeatures = state ? fFeatures | NAMESPACES : fFeatures
+                        & ~NAMESPACES;
+                // namespaces
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_EXPLICIT_FALSE); 
+                }       
+            } else if (name
+                    .equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS)) {
+                fFeatures = state ? fFeatures | NAMESPACEDECLS
+                        : fFeatures & ~NAMESPACEDECLS;
+                // namespace-declarations
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_NAMESPACE_DECLARATIONS, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_NAMESPACE_DECLARATIONS, DOMConstants.DOM3_EXPLICIT_FALSE); 
+                } 
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA)) {
+                fFeatures = state ? fFeatures | SPLITCDATA : fFeatures
+                        & ~SPLITCDATA;
+                // split-cdata-sections
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_SPLIT_CDATA, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_SPLIT_CDATA, DOMConstants.DOM3_EXPLICIT_FALSE); 
+                }  
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED)) {
+                fFeatures = state ? fFeatures | WELLFORMED : fFeatures
+                        & ~WELLFORMED;
+                // well-formed
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_EXPLICIT_FALSE); 
+                }                  
+            } else if (name
+                    .equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT)) {
+                fFeatures = state ? fFeatures | DISCARDDEFAULT
+                        : fFeatures & ~DISCARDDEFAULT;
+                // discard-default-content
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_DISCARD_DEFAULT_CONTENT, DOMConstants.DOM3_EXPLICIT_FALSE); 
+                }                    
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT)) {
+                fFeatures = state ? fFeatures | PRETTY_PRINT : fFeatures
+                        & ~PRETTY_PRINT;
+                // format-pretty-print
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_FORMAT_PRETTY_PRINT, DOMConstants.DOM3_EXPLICIT_TRUE);
+                }
+                else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_FORMAT_PRETTY_PRINT, DOMConstants.DOM3_EXPLICIT_FALSE);
+                }
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL)) {
+                fFeatures = state ? fFeatures | XMLDECL : fFeatures
+                        & ~XMLDECL;
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "no");
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL, "yes"); 
+                }       
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE)) {
+                fFeatures = state ? fFeatures | ELEM_CONTENT_WHITESPACE : fFeatures
+                        & ~ELEM_CONTENT_WHITESPACE;
+                // element-content-whitespace
+                if (state) {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE, DOMConstants.DOM3_EXPLICIT_TRUE);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE, DOMConstants.DOM3_EXPLICIT_FALSE);
+                }            
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) {
+                // false is not supported
+                if (!state) {
+                    // Here we have to add the Xalan specific DOM Message Formatter
+                    String msg = Utils.messages.createMessage(
+                            MsgKey.ER_FEATURE_NOT_SUPPORTED,
+                            new Object[] { name });
+                    throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);
+                } else {
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS, DOMConstants.DOM3_EXPLICIT_TRUE);
+                }
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION)
+                    || name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION)
+                    // || name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)
+                    ) {
+                // true is not supported
+                if (state) {
+                    String msg = Utils.messages.createMessage(
+                            MsgKey.ER_FEATURE_NOT_SUPPORTED,
+                            new Object[] { name });
+                    throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);
+                } else {
+                    if (name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM)) {
+                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                                + DOMConstants.DOM_CANONICAL_FORM, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)) {
+                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                                + DOMConstants.DOM_VALIDATE_IF_SCHEMA, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE)) {
+                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                                + DOMConstants.DOM_VALIDATE, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA)) {
+                        fDOMConfigProperties.setProperty(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION 
+                                + DOMConstants.DOM_CHECK_CHAR_NORMALIZATION, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    } else if (name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION)) {
+                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                                + DOMConstants.DOM_DATATYPE_NORMALIZATION, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    } /* else if (name.equalsIgnoreCase(DOMConstants.DOM_NORMALIZE_CHARACTERS)) {
+                        fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                                + DOMConstants.DOM_NORMALIZE_CHARACTERS, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    } */
+                }
+            } else if (name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)) {
+                // infoset
+                if (state) {
+                    fFeatures &= ~ENTITIES;
+                    fFeatures &= ~CDATA;
+                    fFeatures &= ~SCHEMAVALIDATE;
+                    fFeatures &= ~DTNORMALIZE;
+                    fFeatures |= NAMESPACES;
+                    fFeatures |= NAMESPACEDECLS;
+                    fFeatures |= WELLFORMED;
+                    fFeatures |= ELEM_CONTENT_WHITESPACE;
+                    fFeatures |= COMMENTS;
+                    
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_NAMESPACES, DOMConstants.DOM3_EXPLICIT_TRUE); 
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_NAMESPACE_DECLARATIONS, DOMConstants.DOM3_EXPLICIT_TRUE);
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_COMMENTS, DOMConstants.DOM3_EXPLICIT_TRUE);
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE, DOMConstants.DOM3_EXPLICIT_TRUE);
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_WELLFORMED, DOMConstants.DOM3_EXPLICIT_TRUE);
+                    
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS
+                            + DOMConstants.DOM_ENTITIES, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_CDATA_SECTIONS, DOMConstants.DOM3_EXPLICIT_FALSE);
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_VALIDATE_IF_SCHEMA, DOMConstants.DOM3_EXPLICIT_FALSE);            
+                    fDOMConfigProperties.setProperty(DOMConstants.S_DOM3_PROPERTIES_NS 
+                            + DOMConstants.DOM_DATATYPE_NORMALIZATION, DOMConstants.DOM3_EXPLICIT_FALSE);
+                }
+            } else {
+                // If this is a non-boolean parameter a type mismatch should be thrown.
+                if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_LOCATION) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_TYPE)) {
+                    String msg = Utils.messages.createMessage(
+                            MsgKey.ER_TYPE_MISMATCH_ERR,
+                            new Object[] { name });
+                    throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);
+                }
+                
+                // Parameter is not recognized
+                String msg = Utils.messages.createMessage(
+                        MsgKey.ER_FEATURE_NOT_FOUND,
+                        new Object[] { name });
+                throw new DOMException(DOMException.NOT_FOUND_ERR, msg);
+            }
+        } // If the parameter value is not a boolean 
+        else if (name.equalsIgnoreCase(DOMConstants.DOM_ERROR_HANDLER)) {
+            if (value == null || value instanceof DOMErrorHandler) {
+                fDOMErrorHandler = (DOMErrorHandler)value;
+            } else {
+                String msg = Utils.messages.createMessage(
+                        MsgKey.ER_TYPE_MISMATCH_ERR,
+                        new Object[] { name });
+                throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);
+            }
+        } else if (
+                name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_LOCATION)
+                || name.equalsIgnoreCase(DOMConstants.DOM_SCHEMA_TYPE)) {
+            if (value != null) {
+                if (!(value instanceof String)) {
+                    String msg = Utils.messages.createMessage(
+                            MsgKey.ER_TYPE_MISMATCH_ERR,
+                            new Object[] { name });
+                    throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);
+                }
+                String msg = Utils.messages.createMessage(
+                        MsgKey.ER_FEATURE_NOT_SUPPORTED,
+                        new Object[] { name });
+                throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);
+            }
+        } else {
+            // If this is a boolean parameter a type mismatch should be thrown.
+            if (name.equalsIgnoreCase(DOMConstants.DOM_COMMENTS) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_CDATA_SECTIONS) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_ENTITIES) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACES) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_NAMESPACE_DECLARATIONS) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_SPLIT_CDATA) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_WELLFORMED) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_DISCARD_DEFAULT_CONTENT) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_FORMAT_PRETTY_PRINT) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_XMLDECL) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_ELEMENT_CONTENT_WHITESPACE) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_CANONICAL_FORM) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE_IF_SCHEMA) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_VALIDATE) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_CHECK_CHAR_NORMALIZATION) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_DATATYPE_NORMALIZATION) ||
+                    name.equalsIgnoreCase(DOMConstants.DOM_INFOSET)) {
+                String msg = Utils.messages.createMessage(
+                        MsgKey.ER_TYPE_MISMATCH_ERR,
+                        new Object[] { name });
+                throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg);
+            }
+            
+            // Parameter is not recognized
+            String msg = Utils.messages.createMessage(
+                    MsgKey.ER_FEATURE_NOT_FOUND,
+                    new Object[] { name });
+            throw new DOMException(DOMException.NOT_FOUND_ERR, msg);
+        }
+    }
+    // ************************************************************************
+    
+    
+    // ************************************************************************
+    // DOMConfiguraiton implementation
+    // ************************************************************************
+    
+    /** 
+     * Returns the DOMConfiguration of the LSSerializer.
+     *  
+     * @see org.w3c.dom.ls.LSSerializer#getDomConfig()
+     * @since DOM Level 3
+     * @return A DOMConfiguration object.
+     */
+    public DOMConfiguration getDomConfig() {
+        return (DOMConfiguration)this;
+    }
+    
+    /** 
+     * Returns the DOMConfiguration of the LSSerializer.
+     *  
+     * @see org.w3c.dom.ls.LSSerializer#getFilter()
+     * @since DOM Level 3
+     * @return A LSSerializerFilter object.
+     */
+    public LSSerializerFilter getFilter() {
+        return fSerializerFilter;
+    }
+    
+    /** 
+     * Returns the End-Of-Line sequence of characters to be used in the XML 
+     * being serialized.  If none is set a default "\n" is returned.
+     * 
+     * @see org.w3c.dom.ls.LSSerializer#getNewLine()
+     * @since DOM Level 3
+     * @return A String containing the end-of-line character sequence  used in 
+     * serialization.
+     */
+    public String getNewLine() {
+        return fEndOfLine;
+    }
+    
+    /** 
+     * Set a LSSerilizerFilter on the LSSerializer.  When set, the filter is
+     * called before each node is serialized which depending on its implemention
+     * determines if the node is to be serialized or not.    
+     *  
+     * @see org.w3c.dom.ls.LSSerializer#setFilter
+     * @since DOM Level 3
+     * @param filter A LSSerializerFilter to be applied to the stream to serialize.
+     */
+    public void setFilter(LSSerializerFilter filter) {
+        fSerializerFilter = filter;
+    }
+    
+    /** 
+     * Sets the End-Of-Line sequence of characters to be used in the XML 
+     * being serialized.  Setting this attribute to null will reset its 
+     * value to the default value i.e. "\n".
+     * 
+     * @see org.w3c.dom.ls.LSSerializer#setNewLine
+     * @since DOM Level 3
+     * @param newLine a String that is the end-of-line character sequence to be used in 
+     * serialization.
+     */
+    public void setNewLine(String newLine) {
+        fEndOfLine = (newLine != null) ? newLine : DEFAULT_END_OF_LINE;
+    }
+    
+    /** 
+     * Serializes the specified node to the specified LSOutput and returns true if the Node 
+     * was successfully serialized. 
+     * 
+     * @see org.w3c.dom.ls.LSSerializer#write(org.w3c.dom.Node, org.w3c.dom.ls.LSOutput)
+     * @since DOM Level 3
+     * @param nodeArg The Node to serialize.
+     * @throws org.w3c.dom.ls.LSException SERIALIZE_ERR: Raised if the 
+     * LSSerializer was unable to serialize the node.
+     *      
+     */
+    public boolean write(Node nodeArg, LSOutput destination) throws LSException {
+        // If the destination is null
+        if (destination == null) {
+            String msg = Utils.messages
+            .createMessage(
+                    MsgKey.ER_NO_OUTPUT_SPECIFIED,
+                    null);
+            if (fDOMErrorHandler != null) {
+                fDOMErrorHandler.handleError(new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR, msg,
+                        MsgKey.ER_NO_OUTPUT_SPECIFIED));
+            }
+            throw new LSException(LSException.SERIALIZE_ERR, msg);
+        } 
+        
+        // If nodeArg is null, return false.  Should we throw and LSException instead?
+        if (nodeArg == null ) {
+            return false;
+        }
+
+        // Obtain a reference to the serializer to use
+        // Serializer serializer = getXMLSerializer(xmlVersion);
+        Serializer serializer = fXMLSerializer;
+        serializer.reset();
+        
+        // If the node has not been seen
+        if ( nodeArg != fVisitedNode) {
+            // Determine the XML Document version of the Node 
+            String xmlVersion = getXMLVersion(nodeArg);
+            
+            // Determine the encoding: 1.LSOutput.encoding, 2.Document.inputEncoding, 3.Document.xmlEncoding. 
+            fEncoding = destination.getEncoding();
+            if (fEncoding == null ) {
+            	fEncoding = getInputEncoding(nodeArg);
+            	fEncoding = fEncoding != null ? fEncoding : getXMLEncoding(nodeArg) == null? "UTF-8": getXMLEncoding(nodeArg);
+            }
+
+            // If the encoding is not recognized throw an exception.
+            // Note: The serializer defaults to UTF-8 when created
+            if (!Encodings.isRecognizedEncoding(fEncoding)) {
+                String msg = Utils.messages
+                .createMessage(
+                        MsgKey.ER_UNSUPPORTED_ENCODING,
+                        null);
+                if (fDOMErrorHandler != null) {
+                    fDOMErrorHandler.handleError(new DOMErrorImpl(
+                            DOMError.SEVERITY_FATAL_ERROR, msg,
+                            MsgKey.ER_UNSUPPORTED_ENCODING));
+                }
+                throw new LSException(LSException.SERIALIZE_ERR, msg);            	
+            }
+            
+            serializer.getOutputFormat().setProperty("version", xmlVersion);
+
+            // Set the output encoding and xml version properties
+            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION, xmlVersion);
+            fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_ENCODING, fEncoding);
+            
+            // If the node to be serialized is not a Document, Element, or Entity
+            // node
+            // then the XML declaration, or text declaration, should be never be
+            // serialized.
+            if ( (nodeArg.getNodeType() != Node.DOCUMENT_NODE
+                    || nodeArg.getNodeType() != Node.ELEMENT_NODE
+                    || nodeArg.getNodeType() != Node.ENTITY_NODE)
+                    && ((fFeatures & XMLDECL) != 0)) {
+                fDOMConfigProperties.setProperty(
+                        DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL,
+                        DOMConstants.DOM3_DEFAULT_FALSE);
+            }
+
+            fVisitedNode = nodeArg;
+        } 
+        
+        // Update the serializer properties
+        fXMLSerializer.setOutputFormat(fDOMConfigProperties);
+        
+        // 
+        try {
+            
+            // The LSSerializer will use the LSOutput object to determine 
+            // where to serialize the output to in the following order the  
+            // first one that is not null and not an empty string will be    
+            // used: 1.LSOutput.characterStream, 2.LSOutput.byteStream,   
+            // 3. LSOutput.systemId 
+            // 1.LSOutput.characterStream
+            Writer writer = destination.getCharacterStream();
+            if (writer == null ) {
+                
+                // 2.LSOutput.byteStream
+                OutputStream outputStream = destination.getByteStream();
+                if ( outputStream == null) {
+                    
+                    // 3. LSOutput.systemId
+                    String uri = destination.getSystemId();
+                    if (uri == null) {
+                        String msg = Utils.messages
+                        .createMessage(
+                                MsgKey.ER_NO_OUTPUT_SPECIFIED,
+                                null);
+                        if (fDOMErrorHandler != null) {
+                            fDOMErrorHandler.handleError(new DOMErrorImpl(
+                                    DOMError.SEVERITY_FATAL_ERROR, msg,
+                                    MsgKey.ER_NO_OUTPUT_SPECIFIED));
+                        }
+                        throw new LSException(LSException.SERIALIZE_ERR, msg);
+                        
+                    } else {
+                        // Expand the System Id and obtain an absolute URI for it.
+                        String absoluteURI = SystemIDResolver.getAbsoluteURI(uri);
+                        
+                        URL url = new URL(absoluteURI);
+                        OutputStream urlOutStream = null;
+                        String protocol = url.getProtocol();
+                        String host = url.getHost();
+                        
+                        // For file protocols, there is no need to use a URL to get its
+                        // corresponding OutputStream
+                        
+                        // Scheme names consist of a sequence of characters. The lower case
+                        // letters "a"--"z", digits, and the characters plus ("+"), period
+                        // ("."), and hyphen ("-") are allowed. For resiliency, programs
+                        // interpreting URLs should treat upper case letters as equivalent to
+                        // lower case in scheme names (e.g., allow "HTTP" as well as "http").
+                        if (protocol.equalsIgnoreCase("file") 
+                                && (host == null || host.length() == 0 || host.equals("localhost"))) {
+                            // do we also need to check for host.equals(hostname)
+                            urlOutStream = new FileOutputStream(getPathWithoutEscapes(url.getPath()));
+                           
+                        } else {
+                            // This should support URL's whose schemes are mentioned in 
+                            // RFC1738 other than file
+                            
+                            URLConnection urlCon = url.openConnection();
+                            urlCon.setDoInput(false);
+                            urlCon.setDoOutput(true);
+                            urlCon.setUseCaches(false); 
+                            urlCon.setAllowUserInteraction(false);
+                            
+                            // When writing to a HTTP URI, a HTTP PUT is performed.
+                            if (urlCon instanceof HttpURLConnection) {
+                                HttpURLConnection httpCon = (HttpURLConnection) urlCon;
+                                httpCon.setRequestMethod("PUT");
+                            }
+                            urlOutStream = urlCon.getOutputStream();
+                        }
+                        // set the OutputStream to that obtained from the systemId
+                        serializer.setOutputStream(urlOutStream);
+                    }
+                } else {
+                    // 2.LSOutput.byteStream
+                    serializer.setOutputStream(outputStream);     
+                }
+            } else {
+                // 1.LSOutput.characterStream
+                serializer.setWriter(writer);
+            }
+            
+            // The associated media type by default is set to text/xml on 
+            // org.apache.xml.serializer.SerializerBase.  
+            
+            // Get a reference to the serializer then lets you serilize a DOM
+            // Use this hack till Xalan support JAXP1.3
+            if (fDOMSerializer == null) {
+               fDOMSerializer = (DOM3Serializer)serializer.asDOM3Serializer();
+            } 
+            
+            // Set the error handler on the DOM3Serializer interface implementation
+            if (fDOMErrorHandler != null) {
+                fDOMSerializer.setErrorHandler(fDOMErrorHandler);
+            }
+            
+            // Set the filter on the DOM3Serializer interface implementation
+            if (fSerializerFilter != null) {
+                fDOMSerializer.setNodeFilter(fSerializerFilter);
+            }
+            
+            // Set the NewLine character to be used
+            fDOMSerializer.setNewLine(fEndOfLine.toCharArray());
+            
+            // Serializer your DOM, where node is an org.w3c.dom.Node
+            // Assuming that Xalan's serializer can serialize any type of DOM node
+            fDOMSerializer.serializeDOM3(nodeArg);
+            
+        } catch( UnsupportedEncodingException ue) {
+            
+            String msg = Utils.messages
+            .createMessage(
+                    MsgKey.ER_UNSUPPORTED_ENCODING,
+                    null);
+            if (fDOMErrorHandler != null) {
+                fDOMErrorHandler.handleError(new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR, msg,
+                        MsgKey.ER_UNSUPPORTED_ENCODING, ue));
+            }
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, ue).fillInStackTrace();
+        } catch (LSException lse) {
+            // Rethrow LSException.
+            throw lse;
+        } catch (RuntimeException e) {
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();
+        }  catch (Exception e) {
+            if (fDOMErrorHandler != null) {
+                fDOMErrorHandler.handleError(new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR, e.getMessage(),
+                        null, e));
+            }
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();
+        }        
+        return true;
+    }
+    
+    /** 
+     * Serializes the specified node and returns a String with the serialized
+     * data to the caller.  
+     * 
+     * @see org.w3c.dom.ls.LSSerializer#writeToString(org.w3c.dom.Node)
+     * @since DOM Level 3
+     * @param nodeArg The Node to serialize.
+     * @throws org.w3c.dom.ls.LSException SERIALIZE_ERR: Raised if the 
+     * LSSerializer was unable to serialize the node.
+     *      
+     */
+    public String writeToString(Node nodeArg) throws DOMException, LSException {
+        // return null is nodeArg is null.  Should an Exception be thrown instead?
+        if (nodeArg == null) {
+            return null;
+        }
+
+        // Should we reset the serializer configuration before each write operation?
+        // Obtain a reference to the serializer to use
+        Serializer serializer = fXMLSerializer;
+        serializer.reset();
+        
+        if (nodeArg != fVisitedNode){
+            // Determine the XML Document version of the Node 
+            String xmlVersion = getXMLVersion(nodeArg);
+            
+            serializer.getOutputFormat().setProperty("version", xmlVersion);
+            
+            // Set the output encoding and xml version properties
+            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION, xmlVersion);
+            fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_ENCODING, "UTF-16");
+            
+            // If the node to be serialized is not a Document, Element, or Entity
+            // node
+            // then the XML declaration, or text declaration, should be never be
+            // serialized.
+            if  ((nodeArg.getNodeType() != Node.DOCUMENT_NODE
+                    || nodeArg.getNodeType() != Node.ELEMENT_NODE
+                    || nodeArg.getNodeType() != Node.ENTITY_NODE)
+                    && ((fFeatures & XMLDECL) != 0)) {
+                fDOMConfigProperties.setProperty(
+                        DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL,
+                        DOMConstants.DOM3_DEFAULT_FALSE);
+            }            
+
+            fVisitedNode = nodeArg;       
+        } 
+        // Update the serializer properties
+        fXMLSerializer.setOutputFormat(fDOMConfigProperties);
+        
+        // StringWriter to Output to
+        StringWriter output = new StringWriter();
+        
+        // 
+        try {
+            
+            // Set the Serializer's Writer to a StringWriter
+            serializer.setWriter(output);
+            
+            // Get a reference to the serializer then lets you serilize a DOM
+            // Use this hack till Xalan support JAXP1.3
+            if (fDOMSerializer == null) {
+                fDOMSerializer = (DOM3Serializer)serializer.asDOM3Serializer();
+            } 
+                        
+            // Set the error handler on the DOM3Serializer interface implementation
+            if (fDOMErrorHandler != null) {
+                fDOMSerializer.setErrorHandler(fDOMErrorHandler);
+            }
+            
+            // Set the filter on the DOM3Serializer interface implementation
+            if (fSerializerFilter != null) {
+                fDOMSerializer.setNodeFilter(fSerializerFilter);
+            }
+            
+            // Set the NewLine character to be used
+            fDOMSerializer.setNewLine(fEndOfLine.toCharArray());
+            
+            // Serializer your DOM, where node is an org.w3c.dom.Node
+            fDOMSerializer.serializeDOM3(nodeArg);
+        } catch (LSException lse) {
+            // Rethrow LSException.
+            throw lse;
+        } catch (RuntimeException e) {
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();
+        }  catch (Exception e) {
+            if (fDOMErrorHandler != null) {
+                fDOMErrorHandler.handleError(new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR, e.getMessage(),
+                        null, e));
+            }
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();
+        }        
+        
+        // return the serialized string
+        return output.toString();
+    }
+    
+    /** 
+     * Serializes the specified node to the specified URI and returns true if the Node 
+     * was successfully serialized. 
+     * 
+     * @see org.w3c.dom.ls.LSSerializer#writeToURI(org.w3c.dom.Node, String)
+     * @since DOM Level 3
+     * @param nodeArg The Node to serialize.
+     * @throws org.w3c.dom.ls.LSException SERIALIZE_ERR: Raised if the 
+     * LSSerializer was unable to serialize the node.
+     *      
+     */
+    public boolean writeToURI(Node nodeArg, String uri) throws LSException {
+        // If nodeArg is null, return false.  Should we throw and LSException instead?
+        if (nodeArg == null ) {
+            return false;
+        }
+
+        // Obtain a reference to the serializer to use
+        Serializer serializer = fXMLSerializer;
+        serializer.reset();
+        
+        if (nodeArg != fVisitedNode) {
+            // Determine the XML Document version of the Node 
+            String xmlVersion = getXMLVersion(nodeArg);
+            
+            // Determine the encoding: 1.LSOutput.encoding,
+            // 2.Document.inputEncoding, 3.Document.xmlEncoding.
+            fEncoding = getInputEncoding(nodeArg);
+            if (fEncoding == null ) {
+            	fEncoding = fEncoding != null ? fEncoding : getXMLEncoding(nodeArg) == null? "UTF-8": getXMLEncoding(nodeArg);
+            }
+            
+            serializer.getOutputFormat().setProperty("version", xmlVersion);
+            
+            // Set the output encoding and xml version properties
+            fDOMConfigProperties.setProperty(DOMConstants.S_XERCES_PROPERTIES_NS + DOMConstants.S_XML_VERSION, xmlVersion);
+            fDOMConfigProperties.setProperty(DOMConstants.S_XSL_OUTPUT_ENCODING, fEncoding);
+            
+            // If the node to be serialized is not a Document, Element, or Entity
+            // node
+            // then the XML declaration, or text declaration, should be never be
+            // serialized.
+            if ( (nodeArg.getNodeType() != Node.DOCUMENT_NODE
+                    || nodeArg.getNodeType() != Node.ELEMENT_NODE
+                    || nodeArg.getNodeType() != Node.ENTITY_NODE)
+                    && ((fFeatures & XMLDECL) != 0))  {
+                fDOMConfigProperties.setProperty(
+                        DOMConstants.S_XSL_OUTPUT_OMIT_XML_DECL,
+                        DOMConstants.DOM3_DEFAULT_FALSE);
+            }
+       
+            fVisitedNode = nodeArg;
+        } 
+        
+        // Update the serializer properties
+        fXMLSerializer.setOutputFormat(fDOMConfigProperties);
+        
+        // 
+        try {
+            // If the specified encoding is not supported an
+            // "unsupported-encoding" fatal error is raised. ??
+            if (uri == null) {
+                String msg = Utils.messages.createMessage(
+                        MsgKey.ER_NO_OUTPUT_SPECIFIED, null);
+                if (fDOMErrorHandler != null) {
+                    fDOMErrorHandler.handleError(new DOMErrorImpl(
+                            DOMError.SEVERITY_FATAL_ERROR, msg,
+                            MsgKey.ER_NO_OUTPUT_SPECIFIED));
+                }
+                throw new LSException(LSException.SERIALIZE_ERR, msg);
+                
+            } else {
+                // REVISIT: Can this be used to get an absolute expanded URI
+                String absoluteURI = SystemIDResolver.getAbsoluteURI(uri);
+                
+                URL url = new URL(absoluteURI);
+                OutputStream urlOutStream = null;
+                String protocol = url.getProtocol();
+                String host = url.getHost();
+                
+                // For file protocols, there is no need to use a URL to get its
+                // corresponding OutputStream
+                
+                // Scheme names consist of a sequence of characters. The lower 
+                // case letters "a"--"z", digits, and the characters plus ("+"), 
+                // period ("."), and hyphen ("-") are allowed. For resiliency, 
+                // programs interpreting URLs should treat upper case letters as
+                // equivalent to lower case in scheme names 
+                // (e.g., allow "HTTP" as well as "http").
+                if (protocol.equalsIgnoreCase("file")
+                        && (host == null || host.length() == 0 || host
+                                .equals("localhost"))) {
+                    // do we also need to check for host.equals(hostname)
+                    urlOutStream = new FileOutputStream(getPathWithoutEscapes(url.getPath()));
+                    
+                } else {
+                    // This should support URL's whose schemes are mentioned in
+                    // RFC1738 other than file
+                    
+                    URLConnection urlCon = url.openConnection();
+                    urlCon.setDoInput(false);
+                    urlCon.setDoOutput(true);
+                    urlCon.setUseCaches(false);
+                    urlCon.setAllowUserInteraction(false);
+                    
+                    // When writing to a HTTP URI, a HTTP PUT is performed.
+                    if (urlCon instanceof HttpURLConnection) {
+                        HttpURLConnection httpCon = (HttpURLConnection) urlCon;
+                        httpCon.setRequestMethod("PUT");
+                    }
+                    urlOutStream = urlCon.getOutputStream();
+                }
+                // set the OutputStream to that obtained from the systemId
+                serializer.setOutputStream(urlOutStream);
+            }
+            
+            // Get a reference to the serializer then lets you serilize a DOM
+            // Use this hack till Xalan support JAXP1.3
+            if (fDOMSerializer == null) {
+                fDOMSerializer = (DOM3Serializer)serializer.asDOM3Serializer();
+            } 
+            
+            // Set the error handler on the DOM3Serializer interface implementation
+            if (fDOMErrorHandler != null) {
+                fDOMSerializer.setErrorHandler(fDOMErrorHandler);
+            }
+            
+            // Set the filter on the DOM3Serializer interface implementation
+            if (fSerializerFilter != null) {
+                fDOMSerializer.setNodeFilter(fSerializerFilter);
+            }
+            
+            // Set the NewLine character to be used
+            fDOMSerializer.setNewLine(fEndOfLine.toCharArray());
+            
+            // Serializer your DOM, where node is an org.w3c.dom.Node
+            // Assuming that Xalan's serializer can serialize any type of DOM
+            // node
+            fDOMSerializer.serializeDOM3(nodeArg);
+            
+        } catch (LSException lse) {
+            // Rethrow LSException.
+            throw lse;
+        } catch (RuntimeException e) {
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();
+        }  catch (Exception e) {
+            if (fDOMErrorHandler != null) {
+                fDOMErrorHandler.handleError(new DOMErrorImpl(
+                        DOMError.SEVERITY_FATAL_ERROR, e.getMessage(),
+                        null, e));
+            }
+            throw (LSException) createLSException(LSException.SERIALIZE_ERR, e).fillInStackTrace();
+        }        
+        
+        return true;
+    }
+    // ************************************************************************
+    
+    
+    // ************************************************************************
+    // Implementaion methods
+    // ************************************************************************
+    
+    /** 
+     * Determines the XML Version of the Document Node to serialize.  If the Document Node
+     * is not a DOM Level 3 Node, then the default version returned is 1.0.
+     * 
+     * @param  nodeArg The Node to serialize
+     * @return A String containing the version pseudo-attribute of the XMLDecl.  
+     * @throws Throwable if the DOM implementation does not implement Document.getXmlVersion()      
+     */
+    //protected String getXMLVersion(Node nodeArg) throws Throwable {
+    protected String getXMLVersion(Node nodeArg) {
+        Document doc = null;
+        
+        // Determine the XML Version of the document
+        if (nodeArg != null) {
+            if (nodeArg.getNodeType() == Node.DOCUMENT_NODE) {
+                // The Document node is the Node argument
+                doc = (Document)nodeArg;
+            } else { 
+                // The Document node is the Node argument's ownerDocument
+                doc = nodeArg.getOwnerDocument();
+            }
+            
+            // Determine the DOM Version.
+            if (doc != null && doc.getImplementation().hasFeature("Core","3.0")) {
+                return doc.getXmlVersion();
+            }
+        } 
+        // The version will be treated as "1.0" which may result in
+        // an ill-formed document being serialized.
+        // If nodeArg does not have an ownerDocument, treat this as XML 1.0
+        return "1.0";
+    }
+    
+    /** 
+     * Determines the XML Encoding of the Document Node to serialize.  If the Document Node
+     * is not a DOM Level 3 Node, then the default encoding "UTF-8" is returned.
+     * 
+     * @param  nodeArg The Node to serialize
+     * @return A String containing the encoding pseudo-attribute of the XMLDecl.  
+     * @throws Throwable if the DOM implementation does not implement Document.getXmlEncoding()     
+     */
+    protected String getXMLEncoding(Node nodeArg) {
+        Document doc = null;
+        
+        // Determine the XML Encoding of the document
+        if (nodeArg != null) {
+            if (nodeArg.getNodeType() == Node.DOCUMENT_NODE) {
+                // The Document node is the Node argument
+                doc = (Document)nodeArg;
+            } else { 
+                // The Document node is the Node argument's ownerDocument
+                doc = nodeArg.getOwnerDocument();
+            }
+            
+            // Determine the XML Version. 
+            if (doc != null && doc.getImplementation().hasFeature("Core","3.0")) {
+                return doc.getXmlEncoding();
+            }
+        } 
+        // The default encoding is UTF-8 except for the writeToString method
+        return "UTF-8";
+    }
+    
+    /** 
+     * Determines the Input Encoding of the Document Node to serialize.  If the Document Node
+     * is not a DOM Level 3 Node, then null is returned.
+     * 
+     * @param  nodeArg The Node to serialize
+     * @return A String containing the input encoding.  
+     */
+    protected String getInputEncoding(Node nodeArg)  {
+        Document doc = null;
+        
+        // Determine the Input Encoding of the document
+        if (nodeArg != null) {
+            if (nodeArg.getNodeType() == Node.DOCUMENT_NODE) {
+                // The Document node is the Node argument
+                doc = (Document)nodeArg;
+            } else { 
+                // The Document node is the Node argument's ownerDocument
+                doc = nodeArg.getOwnerDocument();
+            }
+            
+            // Determine the DOM Version.
+            if (doc != null && doc.getImplementation().hasFeature("Core","3.0")) {
+                return doc.getInputEncoding();
+            }
+        } 
+        // The default encoding returned is null
+        return null;
+    }
+    
+    /**
+     * This method returns the LSSerializer's error handler.
+     * 
+     * @return Returns the fDOMErrorHandler.
+     */
+    public DOMErrorHandler getErrorHandler() {
+        return fDOMErrorHandler;
+    }
+    
+    /**
+     * Replaces all escape sequences in the given path with their literal characters.
+     */
+    private static String getPathWithoutEscapes(String origPath) {
+        if (origPath != null && origPath.length() != 0 && origPath.indexOf('%') != -1) {
+            // Locate the escape characters
+            StringTokenizer tokenizer = new StringTokenizer(origPath, "%");
+            StringBuffer result = new StringBuffer(origPath.length());
+            int size = tokenizer.countTokens();
+            result.append(tokenizer.nextToken());
+            for(int i = 1; i < size; ++i) {
+                String token = tokenizer.nextToken();
+                if (token.length() >= 2 && isHexDigit(token.charAt(0)) && 
+                        isHexDigit(token.charAt(1))) {
+                    // Decode the 2 digit hexadecimal number following % in '%nn'
+                    result.append((char)Integer.valueOf(token.substring(0, 2), 16).intValue());
+                    token = token.substring(2);
+                }
+                result.append(token);
+            }
+            return result.toString();
+        }
+        return origPath;
+    }
+
+    /** 
+     * Returns true if the given character is a valid hex character.
+     */
+    private static boolean isHexDigit(char c) {
+        return (c >= '0' && c <= '9' || 
+                c >= 'a' && c <= 'f' || 
+                c >= 'A' && c <= 'F');
+    }
+    
+    /**
+     * Creates an LSException. On J2SE 1.4 and above the cause for the exception will be set.
+     */
+    private static LSException createLSException(short code, Throwable cause) {
+        LSException lse = new LSException(code, cause != null ? cause.getMessage() : null);
+        if (cause != null && ThrowableMethods.fgThrowableMethodsAvailable) {
+            try {
+                ThrowableMethods.fgThrowableInitCauseMethod.invoke(lse, new Object [] {cause});
+            }
+            // Something went wrong. There's not much we can do about it.
+            catch (Exception e) {}
+        }
+        return lse;
+    }
+    
+    /**
+     * Holder of methods from java.lang.Throwable.
+     */
+    static class ThrowableMethods {
+        
+        // Method: java.lang.Throwable.initCause(java.lang.Throwable)
+        private static java.lang.reflect.Method fgThrowableInitCauseMethod = null;
+        
+        // Flag indicating whether or not Throwable methods available.
+        private static boolean fgThrowableMethodsAvailable = false;
+        
+        private ThrowableMethods() {}
+        
+        // Attempt to get methods for java.lang.Throwable on class initialization.
+        static {
+            try {
+                fgThrowableInitCauseMethod = Throwable.class.getMethod("initCause", new Class [] {Throwable.class});
+                fgThrowableMethodsAvailable = true;
+            }
+            // ClassNotFoundException, NoSuchMethodException or SecurityException
+            // Whatever the case, we cannot use java.lang.Throwable.initCause(java.lang.Throwable).
+            catch (Exception exc) {
+                fgThrowableInitCauseMethod = null;
+                fgThrowableMethodsAvailable = false;
+            }
+        }
+    }
+}
diff --git a/src/org/apache/xml/serializer/dom3/NamespaceSupport.java b/src/org/apache/xml/serializer/dom3/NamespaceSupport.java
index fc2b0ea..445f3eb 100644
--- a/src/org/apache/xml/serializer/dom3/NamespaceSupport.java
+++ b/src/org/apache/xml/serializer/dom3/NamespaceSupport.java
@@ -1,315 +1,315 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id:  $

- */

-

-package org.apache.xml.serializer.dom3;

-

-import java.util.Enumeration;

-import java.util.NoSuchElementException;

-

-/**

- * Namespace support for XML document handlers. This class doesn't 

- * perform any error checking and assumes that all strings passed

- * as arguments to methods are unique symbols. The SymbolTable class

- * can be used for this purpose.

- * 

- * Derived from org.apache.xerces.util.NamespaceSupport

- *

- * @author Andy Clark, IBM

- *

- * @version $Id: Exp $

- */

-public class NamespaceSupport {

-

-	static final String PREFIX_XML = "xml".intern();

-	

-	static final String PREFIX_XMLNS = "xmlns".intern(); 

-    

-    /**

-     * The XML Namespace ("http://www.w3.org/XML/1998/namespace"). This is

-     * the Namespace URI that is automatically mapped to the "xml" prefix.

-     */

-    public final static String XML_URI = "http://www.w3.org/XML/1998/namespace".intern();

-

-    /**

-     * XML Information Set REC

-     * all namespace attributes (including those named xmlns, 

-     * whose [prefix] property has no value) have a namespace URI of http://www.w3.org/2000/xmlns/

-     */

-    public final static String XMLNS_URI = "http://www.w3.org/2000/xmlns/".intern();

-

-	//

-    // Data

-    //

-

-    /** 

-     * Namespace binding information. This array is composed of a

-     * series of tuples containing the namespace binding information:

-     * &lt;prefix, uri&gt;. The default size can be set to anything

-     * as long as it is a power of 2 greater than 1.

-     *

-     * @see #fNamespaceSize

-     * @see #fContext

-     */

-    protected String[] fNamespace = new String[16 * 2];

-

-    /** The top of the namespace information array. */

-    protected int fNamespaceSize;

-

-    // NOTE: The constructor depends on the initial context size 

-    //       being at least 1. -Ac

-

-    /** 

-     * Context indexes. This array contains indexes into the namespace

-     * information array. The index at the current context is the start

-     * index of declared namespace bindings and runs to the size of the

-     * namespace information array.

-     *

-     * @see #fNamespaceSize

-     */

-    protected int[] fContext = new int[8];

-

-    /** The current context. */

-    protected int fCurrentContext;

-    

-    protected String[] fPrefixes = new String[16];

-    

-    //

-    // Constructors

-    //

-

-    /** Default constructor. */

-    public NamespaceSupport() {

-    } // <init>()

-

-    //

-    // Public methods

-    //

-    

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#reset()

-	 */

-    public void reset() {

-

-        // reset namespace and context info

-        fNamespaceSize = 0;

-        fCurrentContext = 0;

-        fContext[fCurrentContext] = fNamespaceSize;

-

-        // bind "xml" prefix to the XML uri

-        fNamespace[fNamespaceSize++] = PREFIX_XML;

-        fNamespace[fNamespaceSize++] = XML_URI;

-        // bind "xmlns" prefix to the XMLNS uri

-        fNamespace[fNamespaceSize++] = PREFIX_XMLNS;

-        fNamespace[fNamespaceSize++] = XMLNS_URI;

-        ++fCurrentContext;

-

-    } // reset(SymbolTable)

-

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#pushContext()

-	 */

-    public void pushContext() {

-

-        // extend the array, if necessary

-        if (fCurrentContext + 1 == fContext.length) {

-            int[] contextarray = new int[fContext.length * 2];

-            System.arraycopy(fContext, 0, contextarray, 0, fContext.length);

-            fContext = contextarray;

-        }

-

-        // push context

-        fContext[++fCurrentContext] = fNamespaceSize;

-

-    } // pushContext()

-

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#popContext()

-	 */

-    public void popContext() {

-        fNamespaceSize = fContext[fCurrentContext--];

-    } // popContext()

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#declarePrefix(String, String)

-	 */

-    public boolean declarePrefix(String prefix, String uri) {

-        // ignore "xml" and "xmlns" prefixes

-        if (prefix == PREFIX_XML || prefix == PREFIX_XMLNS) {

-            return false;

-        }

-

-        // see if prefix already exists in current context

-        for (int i = fNamespaceSize; i > fContext[fCurrentContext]; i -= 2) {

-            //if (fNamespace[i - 2] == prefix) {

-        	if (fNamespace[i - 2].equals(prefix) )  {

-                // REVISIT: [Q] Should the new binding override the

-                //          previously declared binding or should it

-                //          it be ignored? -Ac

-                // NOTE:    The SAX2 "NamespaceSupport" helper allows

-                //          re-bindings with the new binding overwriting

-                //          the previous binding. -Ac

-                fNamespace[i - 1] = uri;

-                return true;

-            }

-        }

-

-        // resize array, if needed

-        if (fNamespaceSize == fNamespace.length) {

-            String[] namespacearray = new String[fNamespaceSize * 2];

-            System.arraycopy(fNamespace, 0, namespacearray, 0, fNamespaceSize);

-            fNamespace = namespacearray;

-        }

-

-        // bind prefix to uri in current context

-        fNamespace[fNamespaceSize++] = prefix;

-        fNamespace[fNamespaceSize++] = uri;

-

-        return true;

-

-    } // declarePrefix(String,String):boolean

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#getURI(String)

-	 */

-    public String getURI(String prefix) {

-        

-        // find prefix in current context

-        for (int i = fNamespaceSize; i > 0; i -= 2) {

-            //if (fNamespace[i - 2] == prefix) {

-        	if (fNamespace[i - 2].equals(prefix) ) {

-                return fNamespace[i - 1];

-            }

-        }

-

-        // prefix not found

-        return null;

-

-    } // getURI(String):String

-

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#getPrefix(String)

-	 */

-    public String getPrefix(String uri) {

-

-        // find uri in current context

-        for (int i = fNamespaceSize; i > 0; i -= 2) {

-            //if (fNamespace[i - 1] == uri) {

-        	if (fNamespace[i - 1].equals(uri) ) {

-                //if (getURI(fNamespace[i - 2]) == uri)

-        		if (getURI(fNamespace[i - 2]).equals(uri) )

-                    return fNamespace[i - 2];

-            }

-        }

-

-        // uri not found

-        return null;

-

-    } // getPrefix(String):String

-

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#getDeclaredPrefixCount()

-	 */

-    public int getDeclaredPrefixCount() {

-        return (fNamespaceSize - fContext[fCurrentContext]) / 2;

-    } // getDeclaredPrefixCount():int

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#getDeclaredPrefixAt(int)

-	 */

-    public String getDeclaredPrefixAt(int index) {

-        return fNamespace[fContext[fCurrentContext] + index * 2];

-    } // getDeclaredPrefixAt(int):String

-

-	/**

-	 * @see org.apache.xerces.xni.NamespaceContext#getAllPrefixes()

-	 */

-	public Enumeration getAllPrefixes() {

-        int count = 0;

-        if (fPrefixes.length < (fNamespace.length/2)) {

-            // resize prefix array          

-            String[] prefixes = new String[fNamespaceSize];

-            fPrefixes = prefixes;

-        }

-        String prefix = null;

-        boolean unique = true;

-        for (int i = 2; i < (fNamespaceSize-2); i += 2) {

-            prefix = fNamespace[i + 2];            

-            for (int k=0;k<count;k++){

-                if (fPrefixes[k]==prefix){

-                    unique = false;

-                    break;

-                }               

-            }

-            if (unique){

-                fPrefixes[count++] = prefix;

-            }

-            unique = true;

-        }

-		return new Prefixes(fPrefixes, count);

-	}

-    

-    protected final class Prefixes implements Enumeration {

-        private String[] prefixes;

-        private int counter = 0;

-        private int size = 0;

-               

-		/**

-		 * Constructor for Prefixes.

-		 */

-		public Prefixes(String [] prefixes, int size) {

-			this.prefixes = prefixes;

-            this.size = size;

-		}

-

-       /**

-		 * @see java.util.Enumeration#hasMoreElements()

-		 */

-		public boolean hasMoreElements() {           

-			return (counter< size);

-		}

-

-		/**

-		 * @see java.util.Enumeration#nextElement()

-		 */

-		public Object nextElement() {

-            if (counter< size){

-                return fPrefixes[counter++];

-            }

-			throw new NoSuchElementException("Illegal access to Namespace prefixes enumeration.");

-		}

-        

-        public String toString(){

-            StringBuffer buf = new StringBuffer();

-            for (int i=0;i<size;i++){

-                buf.append(prefixes[i]);

-                buf.append(" ");

-            }

-                

-            return buf.toString(); 

-        }

-

-}

-

-} // class NamespaceSupport

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.dom3;
+
+import java.util.Enumeration;
+import java.util.NoSuchElementException;
+
+/**
+ * Namespace support for XML document handlers. This class doesn't 
+ * perform any error checking and assumes that all strings passed
+ * as arguments to methods are unique symbols. The SymbolTable class
+ * can be used for this purpose.
+ * 
+ * Derived from org.apache.xerces.util.NamespaceSupport
+ *
+ * @author Andy Clark, IBM
+ *
+ * @version $Id$
+ */
+public class NamespaceSupport {
+
+	static final String PREFIX_XML = "xml".intern();
+	
+	static final String PREFIX_XMLNS = "xmlns".intern(); 
+    
+    /**
+     * The XML Namespace ("http://www.w3.org/XML/1998/namespace"). This is
+     * the Namespace URI that is automatically mapped to the "xml" prefix.
+     */
+    public final static String XML_URI = "http://www.w3.org/XML/1998/namespace".intern();
+
+    /**
+     * XML Information Set REC
+     * all namespace attributes (including those named xmlns, 
+     * whose [prefix] property has no value) have a namespace URI of http://www.w3.org/2000/xmlns/
+     */
+    public final static String XMLNS_URI = "http://www.w3.org/2000/xmlns/".intern();
+
+	//
+    // Data
+    //
+
+    /** 
+     * Namespace binding information. This array is composed of a
+     * series of tuples containing the namespace binding information:
+     * &lt;prefix, uri&gt;. The default size can be set to anything
+     * as long as it is a power of 2 greater than 1.
+     *
+     * @see #fNamespaceSize
+     * @see #fContext
+     */
+    protected String[] fNamespace = new String[16 * 2];
+
+    /** The top of the namespace information array. */
+    protected int fNamespaceSize;
+
+    // NOTE: The constructor depends on the initial context size 
+    //       being at least 1. -Ac
+
+    /** 
+     * Context indexes. This array contains indexes into the namespace
+     * information array. The index at the current context is the start
+     * index of declared namespace bindings and runs to the size of the
+     * namespace information array.
+     *
+     * @see #fNamespaceSize
+     */
+    protected int[] fContext = new int[8];
+
+    /** The current context. */
+    protected int fCurrentContext;
+    
+    protected String[] fPrefixes = new String[16];
+    
+    //
+    // Constructors
+    //
+
+    /** Default constructor. */
+    public NamespaceSupport() {
+    } // <init>()
+
+    //
+    // Public methods
+    //
+    
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#reset()
+	 */
+    public void reset() {
+
+        // reset namespace and context info
+        fNamespaceSize = 0;
+        fCurrentContext = 0;
+        fContext[fCurrentContext] = fNamespaceSize;
+
+        // bind "xml" prefix to the XML uri
+        fNamespace[fNamespaceSize++] = PREFIX_XML;
+        fNamespace[fNamespaceSize++] = XML_URI;
+        // bind "xmlns" prefix to the XMLNS uri
+        fNamespace[fNamespaceSize++] = PREFIX_XMLNS;
+        fNamespace[fNamespaceSize++] = XMLNS_URI;
+        ++fCurrentContext;
+
+    } // reset(SymbolTable)
+
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#pushContext()
+	 */
+    public void pushContext() {
+
+        // extend the array, if necessary
+        if (fCurrentContext + 1 == fContext.length) {
+            int[] contextarray = new int[fContext.length * 2];
+            System.arraycopy(fContext, 0, contextarray, 0, fContext.length);
+            fContext = contextarray;
+        }
+
+        // push context
+        fContext[++fCurrentContext] = fNamespaceSize;
+
+    } // pushContext()
+
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#popContext()
+	 */
+    public void popContext() {
+        fNamespaceSize = fContext[fCurrentContext--];
+    } // popContext()
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#declarePrefix(String, String)
+	 */
+    public boolean declarePrefix(String prefix, String uri) {
+        // ignore "xml" and "xmlns" prefixes
+        if (prefix == PREFIX_XML || prefix == PREFIX_XMLNS) {
+            return false;
+        }
+
+        // see if prefix already exists in current context
+        for (int i = fNamespaceSize; i > fContext[fCurrentContext]; i -= 2) {
+            //if (fNamespace[i - 2] == prefix) {
+        	if (fNamespace[i - 2].equals(prefix) )  {
+                // REVISIT: [Q] Should the new binding override the
+                //          previously declared binding or should it
+                //          it be ignored? -Ac
+                // NOTE:    The SAX2 "NamespaceSupport" helper allows
+                //          re-bindings with the new binding overwriting
+                //          the previous binding. -Ac
+                fNamespace[i - 1] = uri;
+                return true;
+            }
+        }
+
+        // resize array, if needed
+        if (fNamespaceSize == fNamespace.length) {
+            String[] namespacearray = new String[fNamespaceSize * 2];
+            System.arraycopy(fNamespace, 0, namespacearray, 0, fNamespaceSize);
+            fNamespace = namespacearray;
+        }
+
+        // bind prefix to uri in current context
+        fNamespace[fNamespaceSize++] = prefix;
+        fNamespace[fNamespaceSize++] = uri;
+
+        return true;
+
+    } // declarePrefix(String,String):boolean
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#getURI(String)
+	 */
+    public String getURI(String prefix) {
+        
+        // find prefix in current context
+        for (int i = fNamespaceSize; i > 0; i -= 2) {
+            //if (fNamespace[i - 2] == prefix) {
+        	if (fNamespace[i - 2].equals(prefix) ) {
+                return fNamespace[i - 1];
+            }
+        }
+
+        // prefix not found
+        return null;
+
+    } // getURI(String):String
+
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#getPrefix(String)
+	 */
+    public String getPrefix(String uri) {
+
+        // find uri in current context
+        for (int i = fNamespaceSize; i > 0; i -= 2) {
+            //if (fNamespace[i - 1] == uri) {
+        	if (fNamespace[i - 1].equals(uri) ) {
+                //if (getURI(fNamespace[i - 2]) == uri)
+        		if (getURI(fNamespace[i - 2]).equals(uri) )
+                    return fNamespace[i - 2];
+            }
+        }
+
+        // uri not found
+        return null;
+
+    } // getPrefix(String):String
+
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#getDeclaredPrefixCount()
+	 */
+    public int getDeclaredPrefixCount() {
+        return (fNamespaceSize - fContext[fCurrentContext]) / 2;
+    } // getDeclaredPrefixCount():int
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#getDeclaredPrefixAt(int)
+	 */
+    public String getDeclaredPrefixAt(int index) {
+        return fNamespace[fContext[fCurrentContext] + index * 2];
+    } // getDeclaredPrefixAt(int):String
+
+	/**
+	 * @see org.apache.xerces.xni.NamespaceContext#getAllPrefixes()
+	 */
+	public Enumeration getAllPrefixes() {
+        int count = 0;
+        if (fPrefixes.length < (fNamespace.length/2)) {
+            // resize prefix array          
+            String[] prefixes = new String[fNamespaceSize];
+            fPrefixes = prefixes;
+        }
+        String prefix = null;
+        boolean unique = true;
+        for (int i = 2; i < (fNamespaceSize-2); i += 2) {
+            prefix = fNamespace[i + 2];            
+            for (int k=0;k<count;k++){
+                if (fPrefixes[k]==prefix){
+                    unique = false;
+                    break;
+                }               
+            }
+            if (unique){
+                fPrefixes[count++] = prefix;
+            }
+            unique = true;
+        }
+		return new Prefixes(fPrefixes, count);
+	}
+    
+    protected final class Prefixes implements Enumeration {
+        private String[] prefixes;
+        private int counter = 0;
+        private int size = 0;
+               
+		/**
+		 * Constructor for Prefixes.
+		 */
+		public Prefixes(String [] prefixes, int size) {
+			this.prefixes = prefixes;
+            this.size = size;
+		}
+
+       /**
+		 * @see java.util.Enumeration#hasMoreElements()
+		 */
+		public boolean hasMoreElements() {           
+			return (counter< size);
+		}
+
+		/**
+		 * @see java.util.Enumeration#nextElement()
+		 */
+		public Object nextElement() {
+            if (counter< size){
+                return fPrefixes[counter++];
+            }
+			throw new NoSuchElementException("Illegal access to Namespace prefixes enumeration.");
+		}
+        
+        public String toString(){
+            StringBuffer buf = new StringBuffer();
+            for (int i=0;i<size;i++){
+                buf.append(prefixes[i]);
+                buf.append(" ");
+            }
+                
+            return buf.toString(); 
+        }
+
+}
+
+} // class NamespaceSupport
diff --git a/src/org/apache/xml/serializer/utils/SerializerMessages_sk.java b/src/org/apache/xml/serializer/utils/SerializerMessages_sk.java
old mode 100755
new mode 100644
index fdabf07..3b12f70
--- a/src/org/apache/xml/serializer/utils/SerializerMessages_sk.java
+++ b/src/org/apache/xml/serializer/utils/SerializerMessages_sk.java
@@ -1,293 +1,293 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: SerializerMessages_sk.java,v 1.7 2005/03/07 20:34:36 minchau Exp $

- */

-

-package org.apache.xml.serializer.utils;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * An instance of this class is a ListResourceBundle that

- * has the required getContents() method that returns

- * an array of message-key/message associations.

- * <p>

- * The message keys are defined in {@link MsgKey}. The

- * messages that those keys map to are defined here.

- * <p>

- * The messages in the English version are intended to be

- * translated.

- *

- * This class is not a public API, it is only public because it is

- * used in org.apache.xml.serializer.

- *

- * @xsl.usage internal

- */

-public class SerializerMessages_sk extends ListResourceBundle {

-

-    /*

-     * This file contains error and warning messages related to

-     * Serializer Error Handling.

-     *

-     *  General notes to translators:

-

-     *  1) A stylesheet is a description of how to transform an input XML document

-     *     into a resultant XML document (or HTML document or text).  The

-     *     stylesheet itself is described in the form of an XML document.

-

-     *

-     *  2) An element is a mark-up tag in an XML document; an attribute is a

-     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

-     *     "elem" is an element name, "attr" and "attr2" are attribute names with

-     *     the values "val" and "val2", respectively.

-     *

-     *  3) A namespace declaration is a special attribute that is used to associate

-     *     a prefix with a URI (the namespace).  The meanings of element names and

-     *     attribute names that use that prefix are defined with respect to that

-     *     namespace.

-     *

-     *

-     */

-

-    /** The lookup table for error messages.   */

-    public Object[][] getContents() {

-        Object[][] contents = new Object[][] {

-            {   MsgKey.BAD_MSGKEY,

-                "K\u013e\u00fa\u010d spr\u00e1vy ''{0}'' sa nenach\u00e1dza v triede spr\u00e1v ''{1}''" },

-

-            {   MsgKey.BAD_MSGFORMAT,

-                "Zlyhal form\u00e1t spr\u00e1vy ''{0}'' v triede spr\u00e1v ''{1}''." },

-

-            {   MsgKey.ER_SERIALIZER_NOT_CONTENTHANDLER,

-                "Trieda serializ\u00e1tora ''{0}'' neimplementuje org.xml.sax.ContentHandler." },

-

-            {   MsgKey.ER_RESOURCE_COULD_NOT_FIND,

-                    "Prostriedok [ {0} ] nemohol by\u0165 n\u00e1jden\u00fd.\n {1}" },

-

-            {   MsgKey.ER_RESOURCE_COULD_NOT_LOAD,

-                    "Prostriedok [ {0} ] sa nedal na\u010d\u00edta\u0165: {1} \n {2} \t {3}" },

-

-            {   MsgKey.ER_BUFFER_SIZE_LESSTHAN_ZERO,

-                    "Ve\u013ekos\u0165 vyrovn\u00e1vacej pam\u00e4te <=0" },

-

-            {   MsgKey.ER_INVALID_UTF16_SURROGATE,

-                    "Bolo zisten\u00e9 neplatn\u00e9 nahradenie UTF-16: {0} ?" },

-

-            {   MsgKey.ER_OIERROR,

-                "chyba IO" },

-

-            {   MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,

-                "Nie je mo\u017en\u00e9 prida\u0165 atrib\u00fat {0} po uzloch potomka alebo pred vytvoren\u00edm elementu.  Atrib\u00fat bude ignorovan\u00fd." },

-

-            /*

-             * Note to translators:  The stylesheet contained a reference to a

-             * namespace prefix that was undefined.  The value of the substitution

-             * text is the name of the prefix.

-             */

-            {   MsgKey.ER_NAMESPACE_PREFIX,

-                "N\u00e1zvov\u00fd priestor pre predponu ''{0}'' nebol deklarovan\u00fd." },

-

-            /*

-             * Note to translators:  This message is reported if the stylesheet

-             * being processed attempted to construct an XML document with an

-             * attribute in a place other than on an element.  The substitution text

-             * specifies the name of the attribute.

-             */

-            {   MsgKey.ER_STRAY_ATTRIBUTE,

-                "Atrib\u00fat ''{0}'' je mimo prvku." },

-

-            /*

-             * Note to translators:  As with the preceding message, a namespace

-             * declaration has the form of an attribute and is only permitted to

-             * appear on an element.  The substitution text {0} is the namespace

-             * prefix and {1} is the URI that was being used in the erroneous

-             * namespace declaration.

-             */

-            {   MsgKey.ER_STRAY_NAMESPACE,

-                "Deklar\u00e1cia n\u00e1zvov\u00e9ho priestoru ''{0}''=''{1}'' je mimo prvku." },

-

-            {   MsgKey.ER_COULD_NOT_LOAD_RESOURCE,

-                "Nebolo mo\u017en\u00e9 zavies\u0165 ''{0}'' (skontrolujte CLASSPATH), teraz sa pou\u017e\u00edvaj\u00fa iba \u0161tandardn\u00e9 nastavenia" },

-

-            {   MsgKey.ER_ILLEGAL_CHARACTER,

-                "Pokus o v\u00fdstup znaku integr\u00e1lnej hodnoty {0}, ktor\u00e1 nie je reprezentovan\u00e1 v zadanom v\u00fdstupnom k\u00f3dovan\u00ed {1}." },

-

-            {   MsgKey.ER_COULD_NOT_LOAD_METHOD_PROPERTY,

-                "Nebolo mo\u017en\u00e9 zavies\u0165 s\u00fabor vlastnost\u00ed ''{0}'' pre v\u00fdstupn\u00fa met\u00f3du ''{1}'' (skontrolujte CLASSPATH)" },

-

-            {   MsgKey.ER_INVALID_PORT,

-                "Neplatn\u00e9 \u010d\u00edslo portu" },

-

-            {   MsgKey.ER_PORT_WHEN_HOST_NULL,

-                "Nem\u00f4\u017ee by\u0165 stanoven\u00fd port, ak je hostite\u013e nulov\u00fd" },

-

-            {   MsgKey.ER_HOST_ADDRESS_NOT_WELLFORMED,

-                "Hostite\u013e nie je spr\u00e1vne form\u00e1tovan\u00e1 adresa" },

-

-            {   MsgKey.ER_SCHEME_NOT_CONFORMANT,

-                "Nezhodn\u00e1 sch\u00e9ma." },

-

-            {   MsgKey.ER_SCHEME_FROM_NULL_STRING,

-                "Nie je mo\u017en\u00e9 stanovi\u0165 sch\u00e9mu z nulov\u00e9ho re\u0165azca" },

-

-            {   MsgKey.ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,

-                "Cesta obsahuje neplatn\u00fa \u00fanikov\u00fa sekvenciu" },

-

-            {   MsgKey.ER_PATH_INVALID_CHAR,

-                "Cesta obsahuje neplatn\u00fd znak: {0}" },

-

-            {   MsgKey.ER_FRAG_INVALID_CHAR,

-                "Fragment obsahuje neplatn\u00fd znak" },

-

-            {   MsgKey.ER_FRAG_WHEN_PATH_NULL,

-                "Ak je cesta nulov\u00e1, nem\u00f4\u017ee by\u0165 stanoven\u00fd fragment" },

-

-            {   MsgKey.ER_FRAG_FOR_GENERIC_URI,

-                "Fragment m\u00f4\u017ee by\u0165 stanoven\u00fd len pre v\u0161eobecn\u00e9 URI" },

-

-            {   MsgKey.ER_NO_SCHEME_IN_URI,

-                "V URI nebola n\u00e1jden\u00e1 \u017eiadna sch\u00e9ma" },

-

-            {   MsgKey.ER_CANNOT_INIT_URI_EMPTY_PARMS,

-                "Nie je mo\u017en\u00e9 inicializova\u0165 URI s pr\u00e1zdnymi parametrami" },

-

-            {   MsgKey.ER_NO_FRAGMENT_STRING_IN_PATH,

-                "Fragment nem\u00f4\u017ee by\u0165 zadan\u00fd v ceste, ani vo fragmente" },

-

-            {   MsgKey.ER_NO_QUERY_STRING_IN_PATH,

-                "Re\u0165azec dotazu nem\u00f4\u017ee by\u0165 zadan\u00fd v ceste a re\u0165azci dotazu" },

-

-            {   MsgKey.ER_NO_PORT_IF_NO_HOST,

-                "Ak nebol zadan\u00fd hostite\u013e, mo\u017eno nebol zadan\u00fd port" },

-

-            {   MsgKey.ER_NO_USERINFO_IF_NO_HOST,

-                "Ak nebol zadan\u00fd hostite\u013e, mo\u017eno nebolo zadan\u00e9 userinfo" },

-            {   MsgKey.ER_XML_VERSION_NOT_SUPPORTED,

-                "Varovanie:  Verzia v\u00fdstupn\u00e9ho dokumentu mus\u00ed by\u0165 povinne ''{0}''.  T\u00e1to verzia XML nie je podporovan\u00e1.  Verzia v\u00fdstupn\u00e9ho dokumentu bude ''1.0''." },

-

-            {   MsgKey.ER_SCHEME_REQUIRED,

-                "Je po\u017eadovan\u00e1 sch\u00e9ma!" },

-

-            /*

-             * Note to translators:  The words 'Properties' and

-             * 'SerializerFactory' in this message are Java class names

-             * and should not be translated.

-             */

-            {   MsgKey.ER_FACTORY_PROPERTY_MISSING,

-                "Objekt Properties, ktor\u00fd pre\u0161iel do SerializerFactory, nem\u00e1 vlastnos\u0165 ''{0}''." },

-

-            {   MsgKey.ER_ENCODING_NOT_SUPPORTED,

-                "Varovanie:  Java runtime nepodporuje k\u00f3dovanie ''{0}''." },

-

-             {MsgKey.ER_FEATURE_NOT_FOUND,

-             "Parameter ''{0}'' nebol rozpoznan\u00fd."},

-

-             {MsgKey.ER_FEATURE_NOT_SUPPORTED,

-             "Parameter ''{0}'' bol rozpoznan\u00fd, ale vy\u017eadovan\u00e1 hodnota sa ned\u00e1 nastavi\u0165."},

-

-             {MsgKey.ER_STRING_TOO_LONG,

-             "V\u00fdsledn\u00fd re\u0165azec je pr\u00edli\u0161 dlh\u00fd a nezmest\u00ed sa do DOMString: ''{0}''."},

-

-             {MsgKey.ER_TYPE_MISMATCH_ERR,

-             "Typ hodnoty pre tento n\u00e1zov parametra je nekompatibiln\u00fd s o\u010dak\u00e1van\u00fdm typom hodnoty."},

-

-             {MsgKey.ER_NO_OUTPUT_SPECIFIED,

-             "Cie\u013e v\u00fdstupu pre zap\u00edsanie \u00fadajov bol null."},

-

-             {MsgKey.ER_UNSUPPORTED_ENCODING,

-             "Bolo zaznamenan\u00e9 nepodporovan\u00e9 k\u00f3dovanie."},

-

-             {MsgKey.ER_UNABLE_TO_SERIALIZE_NODE,

-             "Uzol nebolo mo\u017en\u00e9 serializova\u0165."},

-

-             {MsgKey.ER_CDATA_SECTIONS_SPLIT,

-             "\u010cas\u0165 CDATA obsahuje jeden alebo viacer\u00e9 ozna\u010dova\u010de konca ']]>'."},

-

-             {MsgKey.ER_WARNING_WF_NOT_CHECKED,

-                 "Nebolo mo\u017en\u00e9 vytvori\u0165 in\u0161tanciu kontrol\u00f3ra Well-Formedness.  Parameter well-formed bol nastaven\u00fd na hodnotu true, ale kontrola well-formedness sa ned\u00e1 vykona\u0165."

-             },

-

-             {MsgKey.ER_WF_INVALID_CHARACTER,

-                 "Uzol ''{0}'' obsahuje neplatn\u00e9 znaky XML."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,

-                 "V koment\u00e1ri bol n\u00e1jden\u00fd neplatn\u00fd znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,

-                 "Pri spracovan\u00ed d\u00e1t in\u0161trukci\u00ed sa na\u0161iel neplatn\u00fd znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,

-                 "V obsahu CDATASection sa na\u0161iel neplatn\u00fd znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,

-                 "V obsahu znakov\u00fdch d\u00e1t uzla sa na\u0161iel neplatn\u00fd znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                 "V uzle {0} s n\u00e1zvom ''{1}'' sa na\u0161iel neplatn\u00fd znak XML."

-             },

-

-             { MsgKey.ER_WF_DASH_IN_COMMENT,

-                 "Re\u0165azec \"--\" nie je povolen\u00fd v r\u00e1mci koment\u00e1rov."

-             },

-

-             {MsgKey.ER_WF_LT_IN_ATTVAL,

-                 "Hodnota atrib\u00fatu \"{1}\", ktor\u00e1 je priraden\u00e1 k prvku typu \"{0}\", nesmie obsahova\u0165 znak ''<''."

-             },

-

-             {MsgKey.ER_WF_REF_TO_UNPARSED_ENT,

-                 "Neanalyzovan\u00fd odkaz na entitu \"&{0};\" nie je povolen\u00fd."

-             },

-

-             {MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,

-                 "Odkaz na extern\u00fa entitu \"&{0};\" nie je povolen\u00fd v hodnote atrib\u00fatu."

-             },

-

-             {MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,

-                 "Predpona \"{0}\" nem\u00f4\u017ee by\u0165 naviazan\u00e1 na n\u00e1zvov\u00fd priestor \"{1}\"."

-             },

-

-             {MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,

-                 "Lok\u00e1lny n\u00e1zov prvku \"{0}\" je null."

-             },

-

-             {MsgKey.ER_NULL_LOCAL_ATTR_NAME,

-                 "Lok\u00e1lny n\u00e1zov atrib\u00fatu \"{0}\" je null."

-             },

-

-             { MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,

-                 "N\u00e1hradn\u00fd text pre uzol entity \"{0}\" obsahuje uzol prvku \"{1}\" s nenaviazanou predponou \"{2}\"."

-             },

-

-             { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,

-                 "N\u00e1hradn\u00fd text uzla entity \"{0}\" obsahuje uzol atrib\u00fatu \"{1}\" s nenaviazanou predponou \"{2}\"."

-             },

-

-        };

-

-        return contents;

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.utils;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * An instance of this class is a ListResourceBundle that
+ * has the required getContents() method that returns
+ * an array of message-key/message associations.
+ * <p>
+ * The message keys are defined in {@link MsgKey}. The
+ * messages that those keys map to are defined here.
+ * <p>
+ * The messages in the English version are intended to be
+ * translated.
+ *
+ * This class is not a public API, it is only public because it is
+ * used in org.apache.xml.serializer.
+ *
+ * @xsl.usage internal
+ */
+public class SerializerMessages_sk extends ListResourceBundle {
+
+    /*
+     * This file contains error and warning messages related to
+     * Serializer Error Handling.
+     *
+     *  General notes to translators:
+
+     *  1) A stylesheet is a description of how to transform an input XML document
+     *     into a resultant XML document (or HTML document or text).  The
+     *     stylesheet itself is described in the form of an XML document.
+
+     *
+     *  2) An element is a mark-up tag in an XML document; an attribute is a
+     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+     *     "elem" is an element name, "attr" and "attr2" are attribute names with
+     *     the values "val" and "val2", respectively.
+     *
+     *  3) A namespace declaration is a special attribute that is used to associate
+     *     a prefix with a URI (the namespace).  The meanings of element names and
+     *     attribute names that use that prefix are defined with respect to that
+     *     namespace.
+     *
+     *
+     */
+
+    /** The lookup table for error messages.   */
+    public Object[][] getContents() {
+        Object[][] contents = new Object[][] {
+            {   MsgKey.BAD_MSGKEY,
+                "K\u013e\u00fa\u010d spr\u00e1vy ''{0}'' sa nenach\u00e1dza v triede spr\u00e1v ''{1}''" },
+
+            {   MsgKey.BAD_MSGFORMAT,
+                "Zlyhal form\u00e1t spr\u00e1vy ''{0}'' v triede spr\u00e1v ''{1}''." },
+
+            {   MsgKey.ER_SERIALIZER_NOT_CONTENTHANDLER,
+                "Trieda serializ\u00e1tora ''{0}'' neimplementuje org.xml.sax.ContentHandler." },
+
+            {   MsgKey.ER_RESOURCE_COULD_NOT_FIND,
+                    "Prostriedok [ {0} ] nemohol by\u0165 n\u00e1jden\u00fd.\n {1}" },
+
+            {   MsgKey.ER_RESOURCE_COULD_NOT_LOAD,
+                    "Prostriedok [ {0} ] sa nedal na\u010d\u00edta\u0165: {1} \n {2} \t {3}" },
+
+            {   MsgKey.ER_BUFFER_SIZE_LESSTHAN_ZERO,
+                    "Ve\u013ekos\u0165 vyrovn\u00e1vacej pam\u00e4te <=0" },
+
+            {   MsgKey.ER_INVALID_UTF16_SURROGATE,
+                    "Bolo zisten\u00e9 neplatn\u00e9 nahradenie UTF-16: {0} ?" },
+
+            {   MsgKey.ER_OIERROR,
+                "chyba IO" },
+
+            {   MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,
+                "Nie je mo\u017en\u00e9 prida\u0165 atrib\u00fat {0} po uzloch potomka alebo pred vytvoren\u00edm elementu.  Atrib\u00fat bude ignorovan\u00fd." },
+
+            /*
+             * Note to translators:  The stylesheet contained a reference to a
+             * namespace prefix that was undefined.  The value of the substitution
+             * text is the name of the prefix.
+             */
+            {   MsgKey.ER_NAMESPACE_PREFIX,
+                "N\u00e1zvov\u00fd priestor pre predponu ''{0}'' nebol deklarovan\u00fd." },
+
+            /*
+             * Note to translators:  This message is reported if the stylesheet
+             * being processed attempted to construct an XML document with an
+             * attribute in a place other than on an element.  The substitution text
+             * specifies the name of the attribute.
+             */
+            {   MsgKey.ER_STRAY_ATTRIBUTE,
+                "Atrib\u00fat ''{0}'' je mimo prvku." },
+
+            /*
+             * Note to translators:  As with the preceding message, a namespace
+             * declaration has the form of an attribute and is only permitted to
+             * appear on an element.  The substitution text {0} is the namespace
+             * prefix and {1} is the URI that was being used in the erroneous
+             * namespace declaration.
+             */
+            {   MsgKey.ER_STRAY_NAMESPACE,
+                "Deklar\u00e1cia n\u00e1zvov\u00e9ho priestoru ''{0}''=''{1}'' je mimo prvku." },
+
+            {   MsgKey.ER_COULD_NOT_LOAD_RESOURCE,
+                "Nebolo mo\u017en\u00e9 zavies\u0165 ''{0}'' (skontrolujte CLASSPATH), teraz sa pou\u017e\u00edvaj\u00fa iba \u0161tandardn\u00e9 nastavenia" },
+
+            {   MsgKey.ER_ILLEGAL_CHARACTER,
+                "Pokus o v\u00fdstup znaku integr\u00e1lnej hodnoty {0}, ktor\u00e1 nie je reprezentovan\u00e1 v zadanom v\u00fdstupnom k\u00f3dovan\u00ed {1}." },
+
+            {   MsgKey.ER_COULD_NOT_LOAD_METHOD_PROPERTY,
+                "Nebolo mo\u017en\u00e9 zavies\u0165 s\u00fabor vlastnost\u00ed ''{0}'' pre v\u00fdstupn\u00fa met\u00f3du ''{1}'' (skontrolujte CLASSPATH)" },
+
+            {   MsgKey.ER_INVALID_PORT,
+                "Neplatn\u00e9 \u010d\u00edslo portu" },
+
+            {   MsgKey.ER_PORT_WHEN_HOST_NULL,
+                "Nem\u00f4\u017ee by\u0165 stanoven\u00fd port, ak je hostite\u013e nulov\u00fd" },
+
+            {   MsgKey.ER_HOST_ADDRESS_NOT_WELLFORMED,
+                "Hostite\u013e nie je spr\u00e1vne form\u00e1tovan\u00e1 adresa" },
+
+            {   MsgKey.ER_SCHEME_NOT_CONFORMANT,
+                "Nezhodn\u00e1 sch\u00e9ma." },
+
+            {   MsgKey.ER_SCHEME_FROM_NULL_STRING,
+                "Nie je mo\u017en\u00e9 stanovi\u0165 sch\u00e9mu z nulov\u00e9ho re\u0165azca" },
+
+            {   MsgKey.ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,
+                "Cesta obsahuje neplatn\u00fa \u00fanikov\u00fa sekvenciu" },
+
+            {   MsgKey.ER_PATH_INVALID_CHAR,
+                "Cesta obsahuje neplatn\u00fd znak: {0}" },
+
+            {   MsgKey.ER_FRAG_INVALID_CHAR,
+                "Fragment obsahuje neplatn\u00fd znak" },
+
+            {   MsgKey.ER_FRAG_WHEN_PATH_NULL,
+                "Ak je cesta nulov\u00e1, nem\u00f4\u017ee by\u0165 stanoven\u00fd fragment" },
+
+            {   MsgKey.ER_FRAG_FOR_GENERIC_URI,
+                "Fragment m\u00f4\u017ee by\u0165 stanoven\u00fd len pre v\u0161eobecn\u00e9 URI" },
+
+            {   MsgKey.ER_NO_SCHEME_IN_URI,
+                "V URI nebola n\u00e1jden\u00e1 \u017eiadna sch\u00e9ma" },
+
+            {   MsgKey.ER_CANNOT_INIT_URI_EMPTY_PARMS,
+                "Nie je mo\u017en\u00e9 inicializova\u0165 URI s pr\u00e1zdnymi parametrami" },
+
+            {   MsgKey.ER_NO_FRAGMENT_STRING_IN_PATH,
+                "Fragment nem\u00f4\u017ee by\u0165 zadan\u00fd v ceste, ani vo fragmente" },
+
+            {   MsgKey.ER_NO_QUERY_STRING_IN_PATH,
+                "Re\u0165azec dotazu nem\u00f4\u017ee by\u0165 zadan\u00fd v ceste a re\u0165azci dotazu" },
+
+            {   MsgKey.ER_NO_PORT_IF_NO_HOST,
+                "Ak nebol zadan\u00fd hostite\u013e, mo\u017eno nebol zadan\u00fd port" },
+
+            {   MsgKey.ER_NO_USERINFO_IF_NO_HOST,
+                "Ak nebol zadan\u00fd hostite\u013e, mo\u017eno nebolo zadan\u00e9 userinfo" },
+            {   MsgKey.ER_XML_VERSION_NOT_SUPPORTED,
+                "Varovanie:  Verzia v\u00fdstupn\u00e9ho dokumentu mus\u00ed by\u0165 povinne ''{0}''.  T\u00e1to verzia XML nie je podporovan\u00e1.  Verzia v\u00fdstupn\u00e9ho dokumentu bude ''1.0''." },
+
+            {   MsgKey.ER_SCHEME_REQUIRED,
+                "Je po\u017eadovan\u00e1 sch\u00e9ma!" },
+
+            /*
+             * Note to translators:  The words 'Properties' and
+             * 'SerializerFactory' in this message are Java class names
+             * and should not be translated.
+             */
+            {   MsgKey.ER_FACTORY_PROPERTY_MISSING,
+                "Objekt Properties, ktor\u00fd pre\u0161iel do SerializerFactory, nem\u00e1 vlastnos\u0165 ''{0}''." },
+
+            {   MsgKey.ER_ENCODING_NOT_SUPPORTED,
+                "Varovanie:  Java runtime nepodporuje k\u00f3dovanie ''{0}''." },
+
+             {MsgKey.ER_FEATURE_NOT_FOUND,
+             "Parameter ''{0}'' nebol rozpoznan\u00fd."},
+
+             {MsgKey.ER_FEATURE_NOT_SUPPORTED,
+             "Parameter ''{0}'' bol rozpoznan\u00fd, ale vy\u017eadovan\u00e1 hodnota sa ned\u00e1 nastavi\u0165."},
+
+             {MsgKey.ER_STRING_TOO_LONG,
+             "V\u00fdsledn\u00fd re\u0165azec je pr\u00edli\u0161 dlh\u00fd a nezmest\u00ed sa do DOMString: ''{0}''."},
+
+             {MsgKey.ER_TYPE_MISMATCH_ERR,
+             "Typ hodnoty pre tento n\u00e1zov parametra je nekompatibiln\u00fd s o\u010dak\u00e1van\u00fdm typom hodnoty."},
+
+             {MsgKey.ER_NO_OUTPUT_SPECIFIED,
+             "Cie\u013e v\u00fdstupu pre zap\u00edsanie \u00fadajov bol null."},
+
+             {MsgKey.ER_UNSUPPORTED_ENCODING,
+             "Bolo zaznamenan\u00e9 nepodporovan\u00e9 k\u00f3dovanie."},
+
+             {MsgKey.ER_UNABLE_TO_SERIALIZE_NODE,
+             "Uzol nebolo mo\u017en\u00e9 serializova\u0165."},
+
+             {MsgKey.ER_CDATA_SECTIONS_SPLIT,
+             "\u010cas\u0165 CDATA obsahuje jeden alebo viacer\u00e9 ozna\u010dova\u010de konca ']]>'."},
+
+             {MsgKey.ER_WARNING_WF_NOT_CHECKED,
+                 "Nebolo mo\u017en\u00e9 vytvori\u0165 in\u0161tanciu kontrol\u00f3ra Well-Formedness.  Parameter well-formed bol nastaven\u00fd na hodnotu true, ale kontrola well-formedness sa ned\u00e1 vykona\u0165."
+             },
+
+             {MsgKey.ER_WF_INVALID_CHARACTER,
+                 "Uzol ''{0}'' obsahuje neplatn\u00e9 znaky XML."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,
+                 "V koment\u00e1ri bol n\u00e1jden\u00fd neplatn\u00fd znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,
+                 "Pri spracovan\u00ed d\u00e1t in\u0161trukci\u00ed sa na\u0161iel neplatn\u00fd znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,
+                 "V obsahu CDATASection sa na\u0161iel neplatn\u00fd znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,
+                 "V obsahu znakov\u00fdch d\u00e1t uzla sa na\u0161iel neplatn\u00fd znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                 "V uzle {0} s n\u00e1zvom ''{1}'' sa na\u0161iel neplatn\u00fd znak XML."
+             },
+
+             { MsgKey.ER_WF_DASH_IN_COMMENT,
+                 "Re\u0165azec \"--\" nie je povolen\u00fd v r\u00e1mci koment\u00e1rov."
+             },
+
+             {MsgKey.ER_WF_LT_IN_ATTVAL,
+                 "Hodnota atrib\u00fatu \"{1}\", ktor\u00e1 je priraden\u00e1 k prvku typu \"{0}\", nesmie obsahova\u0165 znak ''<''."
+             },
+
+             {MsgKey.ER_WF_REF_TO_UNPARSED_ENT,
+                 "Neanalyzovan\u00fd odkaz na entitu \"&{0};\" nie je povolen\u00fd."
+             },
+
+             {MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,
+                 "Odkaz na extern\u00fa entitu \"&{0};\" nie je povolen\u00fd v hodnote atrib\u00fatu."
+             },
+
+             {MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,
+                 "Predpona \"{0}\" nem\u00f4\u017ee by\u0165 naviazan\u00e1 na n\u00e1zvov\u00fd priestor \"{1}\"."
+             },
+
+             {MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,
+                 "Lok\u00e1lny n\u00e1zov prvku \"{0}\" je null."
+             },
+
+             {MsgKey.ER_NULL_LOCAL_ATTR_NAME,
+                 "Lok\u00e1lny n\u00e1zov atrib\u00fatu \"{0}\" je null."
+             },
+
+             { MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,
+                 "N\u00e1hradn\u00fd text pre uzol entity \"{0}\" obsahuje uzol prvku \"{1}\" s nenaviazanou predponou \"{2}\"."
+             },
+
+             { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,
+                 "N\u00e1hradn\u00fd text uzla entity \"{0}\" obsahuje uzol atrib\u00fatu \"{1}\" s nenaviazanou predponou \"{2}\"."
+             },
+
+        };
+
+        return contents;
+    }
+}
diff --git a/src/org/apache/xml/serializer/utils/SerializerMessages_sl.java b/src/org/apache/xml/serializer/utils/SerializerMessages_sl.java
old mode 100755
new mode 100644
index fa40d4e..e1059e6
--- a/src/org/apache/xml/serializer/utils/SerializerMessages_sl.java
+++ b/src/org/apache/xml/serializer/utils/SerializerMessages_sl.java
@@ -1,293 +1,293 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: SerializerMessages_sl.java,v 1.7 2005/03/07 20:34:36 minchau Exp $

- */

-

-package org.apache.xml.serializer.utils;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * An instance of this class is a ListResourceBundle that

- * has the required getContents() method that returns

- * an array of message-key/message associations.

- * <p>

- * The message keys are defined in {@link MsgKey}. The

- * messages that those keys map to are defined here.

- * <p>

- * The messages in the English version are intended to be

- * translated.

- *

- * This class is not a public API, it is only public because it is

- * used in org.apache.xml.serializer.

- *

- * @xsl.usage internal

- */

-public class SerializerMessages_sl extends ListResourceBundle {

-

-    /*

-     * This file contains error and warning messages related to

-     * Serializer Error Handling.

-     *

-     *  General notes to translators:

-

-     *  1) A stylesheet is a description of how to transform an input XML document

-     *     into a resultant XML document (or HTML document or text).  The

-     *     stylesheet itself is described in the form of an XML document.

-

-     *

-     *  2) An element is a mark-up tag in an XML document; an attribute is a

-     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

-     *     "elem" is an element name, "attr" and "attr2" are attribute names with

-     *     the values "val" and "val2", respectively.

-     *

-     *  3) A namespace declaration is a special attribute that is used to associate

-     *     a prefix with a URI (the namespace).  The meanings of element names and

-     *     attribute names that use that prefix are defined with respect to that

-     *     namespace.

-     *

-     *

-     */

-

-    /** The lookup table for error messages.   */

-    public Object[][] getContents() {

-        Object[][] contents = new Object[][] {

-            {   MsgKey.BAD_MSGKEY,

-                "Klju\u010d sporo\u010dila ''{0}'' ni v rezredu sporo\u010dila ''{1}''" },

-

-            {   MsgKey.BAD_MSGFORMAT,

-                "Format sporo\u010dila ''{0}'' v razredu sporo\u010dila ''{1}'' je spodletel." },

-

-            {   MsgKey.ER_SERIALIZER_NOT_CONTENTHANDLER,

-                "Razred serializerja ''{0}'' ne izvede org.xml.sax.ContentHandler." },

-

-            {   MsgKey.ER_RESOURCE_COULD_NOT_FIND,

-                    "Vira [ {0} ] ni mogo\u010de najti.\n {1}" },

-

-            {   MsgKey.ER_RESOURCE_COULD_NOT_LOAD,

-                    "Sredstva [ {0} ] ni bilo mogo\u010de nalo\u017eiti: {1} \n {2} \t {3}" },

-

-            {   MsgKey.ER_BUFFER_SIZE_LESSTHAN_ZERO,

-                    "Velikost medpomnilnika <=0" },

-

-            {   MsgKey.ER_INVALID_UTF16_SURROGATE,

-                    "Zaznan neveljaven nadomestek UTF-16: {0} ?" },

-

-            {   MsgKey.ER_OIERROR,

-                "Napaka V/I" },

-

-            {   MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,

-                "Atributa {0} ne morem dodati za podrejenimi vozli\u0161\u010di ali pred izdelavo elementa.  Atribut bo prezrt." },

-

-            /*

-             * Note to translators:  The stylesheet contained a reference to a

-             * namespace prefix that was undefined.  The value of the substitution

-             * text is the name of the prefix.

-             */

-            {   MsgKey.ER_NAMESPACE_PREFIX,

-                "Imenski prostor za predpono ''{0}'' ni bil naveden." },

-

-            /*

-             * Note to translators:  This message is reported if the stylesheet

-             * being processed attempted to construct an XML document with an

-             * attribute in a place other than on an element.  The substitution text

-             * specifies the name of the attribute.

-             */

-            {   MsgKey.ER_STRAY_ATTRIBUTE,

-                "Atribut ''{0}'' je zunaj elementa." },

-

-            /*

-             * Note to translators:  As with the preceding message, a namespace

-             * declaration has the form of an attribute and is only permitted to

-             * appear on an element.  The substitution text {0} is the namespace

-             * prefix and {1} is the URI that was being used in the erroneous

-             * namespace declaration.

-             */

-            {   MsgKey.ER_STRAY_NAMESPACE,

-                "Deklaracija imenskega prostora ''{0}''=''{1}'' je zunaj elementa." },

-

-            {   MsgKey.ER_COULD_NOT_LOAD_RESOURCE,

-                "Ni bilo mogo\u010de nalo\u017eiti ''{0}'' (preverite CLASSPATH), trenutno se uporabljajo samo privzete vrednosti" },

-

-            {   MsgKey.ER_ILLEGAL_CHARACTER,

-                "Poskus izpisa znaka integralne vrednosti {0}, ki v navedenem izhodnem kodiranju {1} ni zastopan." },

-

-            {   MsgKey.ER_COULD_NOT_LOAD_METHOD_PROPERTY,

-                "Datoteke z lastnostmi ''{0}'' ni bilo mogo\u010de nalo\u017eiti za izhodno metodo ''{1}'' (preverite CLASSPATH)" },

-

-            {   MsgKey.ER_INVALID_PORT,

-                "Neveljavna \u0161tevilka vrat" },

-

-            {   MsgKey.ER_PORT_WHEN_HOST_NULL,

-                "Ko je gostitelj NULL, nastavitev vrat ni mogo\u010da" },

-

-            {   MsgKey.ER_HOST_ADDRESS_NOT_WELLFORMED,

-                "Naslov gostitelja ni pravilno oblikovan" },

-

-            {   MsgKey.ER_SCHEME_NOT_CONFORMANT,

-                "Shema ni skladna." },

-

-            {   MsgKey.ER_SCHEME_FROM_NULL_STRING,

-                "Ni mogo\u010de nastaviti sheme iz niza NULL" },

-

-            {   MsgKey.ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,

-                "Pot vsebuje neveljavno zaporedje za izhod" },

-

-            {   MsgKey.ER_PATH_INVALID_CHAR,

-                "Pot vsebuje neveljaven znak: {0}" },

-

-            {   MsgKey.ER_FRAG_INVALID_CHAR,

-                "Fragment vsebuje neveljaven znak" },

-

-            {   MsgKey.ER_FRAG_WHEN_PATH_NULL,

-                "Ko je pot NULL, nastavitev fragmenta ni mogo\u010da" },

-

-            {   MsgKey.ER_FRAG_FOR_GENERIC_URI,

-                "Fragment je lahko nastavljen samo za splo\u0161ni URI" },

-

-            {   MsgKey.ER_NO_SCHEME_IN_URI,

-                "Ne najdem sheme v URI" },

-

-            {   MsgKey.ER_CANNOT_INIT_URI_EMPTY_PARMS,

-                "Ni mogo\u010de inicializirati URI-ja s praznimi parametri" },

-

-            {   MsgKey.ER_NO_FRAGMENT_STRING_IN_PATH,

-                "Fragment ne more biti hkrati naveden v poti in v fragmentu" },

-

-            {   MsgKey.ER_NO_QUERY_STRING_IN_PATH,

-                "Poizvedbeni niz ne more biti naveden v nizu poti in poizvedbenem nizu" },

-

-            {   MsgKey.ER_NO_PORT_IF_NO_HOST,

-                "Vrata ne morejo biti navedena, \u010de ni naveden gostitelj" },

-

-            {   MsgKey.ER_NO_USERINFO_IF_NO_HOST,

-                "Informacije o uporabniku ne morejo biti navedene, \u010de ni naveden gostitelj" },

-            {   MsgKey.ER_XML_VERSION_NOT_SUPPORTED,

-                "Opozorilo: Zahtevana razli\u010dica izhodnega dokumenta je ''{0}''.  Ta razli\u010dica XML ni podprta.  Razli\u010dica izhodnega dokumenta bo ''1.0''." },

-

-            {   MsgKey.ER_SCHEME_REQUIRED,

-                "Zahtevana je shema!" },

-

-            /*

-             * Note to translators:  The words 'Properties' and

-             * 'SerializerFactory' in this message are Java class names

-             * and should not be translated.

-             */

-            {   MsgKey.ER_FACTORY_PROPERTY_MISSING,

-                "Predmet Properties (lastnosti), ki je prene\u0161en v SerializerFactory, nima lastnosti ''{0}''." },

-

-            {   MsgKey.ER_ENCODING_NOT_SUPPORTED,

-                "Opozorilo:  Izvajalno okolje Java ne podpira kodiranja ''{0}''." },

-

-             {MsgKey.ER_FEATURE_NOT_FOUND,

-             "Parameter ''{0}'' ni prepoznan."},

-

-             {MsgKey.ER_FEATURE_NOT_SUPPORTED,

-             "Parameter ''{0}'' je prepoznan, vendar pa zahtevane vrednosti ni mogo\u010de nastaviti."},

-

-             {MsgKey.ER_STRING_TOO_LONG,

-             "Nastali niz je predolg za DOMString: ''{0}''."},

-

-             {MsgKey.ER_TYPE_MISMATCH_ERR,

-             "Tip vrednosti za to ime parametra je nezdru\u017eljiv s pri\u010dakovanim tipom vrednosti."},

-

-             {MsgKey.ER_NO_OUTPUT_SPECIFIED,

-             "Izhodno mesto za vpisovanje podatkov je bilo ni\u010d."},

-

-             {MsgKey.ER_UNSUPPORTED_ENCODING,

-             "Odkrito je nepodprto kodiranje."},

-

-             {MsgKey.ER_UNABLE_TO_SERIALIZE_NODE,

-             "Vozli\u0161\u010da ni mogo\u010de serializirati."},

-

-             {MsgKey.ER_CDATA_SECTIONS_SPLIT,

-             "Odsek CDATA vsebuje enega ali ve\u010d ozna\u010devalnikov prekinitve ']]>'."},

-

-             {MsgKey.ER_WARNING_WF_NOT_CHECKED,

-                 "Primerka preverjevalnika Well-Formedness ni bilo mogo\u010de ustvariti.  Parameter well-formed je bil nastavljen na True, ampak ni mogo\u010de preveriti well-formedness."

-             },

-

-             {MsgKey.ER_WF_INVALID_CHARACTER,

-                 "Vozli\u0161\u010de ''{0}'' vsebuje neveljavne znake XML."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,

-                 "V komentarju je bil najden neveljaven XML znak (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,

-                 "V podatkih navodila za obdelavo je bil najden neveljaven znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,

-                 "V vsebini odseka CDATASection je bil najden neveljaven znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,

-                 "V podatkovni vsebini znaka vozli\u0161\u010da je bil najden neveljaven znak XML (Unicode: 0x{0})."

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                 "V vozli\u0161\u010du {0} z imenom ''{1}'' je bil najden neveljaven znak XML."

-             },

-

-             { MsgKey.ER_WF_DASH_IN_COMMENT,

-                 "Niz \"--\" ni dovoljen v komentarjih."

-             },

-

-             {MsgKey.ER_WF_LT_IN_ATTVAL,

-                 "Vrednost atributa \"{1}\", ki je povezan s tipom elementa \"{0}\", ne sme vsebovati znaka ''<''."

-             },

-

-             {MsgKey.ER_WF_REF_TO_UNPARSED_ENT,

-                 "Neraz\u010dlenjeni sklic entitete \"&{0};\" ni dovoljen."

-             },

-

-             {MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,

-                 "Zunanji sklic entitete \"&{0};\" ni dovoljen v vrednosti atributa."

-             },

-

-             {MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,

-                 "Predpona \"{0}\" ne more biti povezana z imenskim prostorom \"{1}\"."

-             },

-

-             {MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,

-                 "Lokalno ime elementa \"{0}\" je ni\u010d."

-             },

-

-             {MsgKey.ER_NULL_LOCAL_ATTR_NAME,

-                 "Lokalno ime atributa \"{0}\" je ni\u010d."

-             },

-

-             { MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,

-                 "Besedilo za zamenjavo za vozli\u0161\u010de entitete \"{0}\" vsebuje vozli\u0161\u010de elementa \"{1}\" z nevezano predpono \"{2}\"."

-             },

-

-             { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,

-                 "Besedilo za zamenjavo za vozli\u0161\u010de entitete \"{0}\" vsebuje vozli\u0161\u010de atributa \"{1}\" z nevezano predpono \"{2}\"."

-             },

-

-        };

-

-        return contents;

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xml.serializer.utils;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * An instance of this class is a ListResourceBundle that
+ * has the required getContents() method that returns
+ * an array of message-key/message associations.
+ * <p>
+ * The message keys are defined in {@link MsgKey}. The
+ * messages that those keys map to are defined here.
+ * <p>
+ * The messages in the English version are intended to be
+ * translated.
+ *
+ * This class is not a public API, it is only public because it is
+ * used in org.apache.xml.serializer.
+ *
+ * @xsl.usage internal
+ */
+public class SerializerMessages_sl extends ListResourceBundle {
+
+    /*
+     * This file contains error and warning messages related to
+     * Serializer Error Handling.
+     *
+     *  General notes to translators:
+
+     *  1) A stylesheet is a description of how to transform an input XML document
+     *     into a resultant XML document (or HTML document or text).  The
+     *     stylesheet itself is described in the form of an XML document.
+
+     *
+     *  2) An element is a mark-up tag in an XML document; an attribute is a
+     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+     *     "elem" is an element name, "attr" and "attr2" are attribute names with
+     *     the values "val" and "val2", respectively.
+     *
+     *  3) A namespace declaration is a special attribute that is used to associate
+     *     a prefix with a URI (the namespace).  The meanings of element names and
+     *     attribute names that use that prefix are defined with respect to that
+     *     namespace.
+     *
+     *
+     */
+
+    /** The lookup table for error messages.   */
+    public Object[][] getContents() {
+        Object[][] contents = new Object[][] {
+            {   MsgKey.BAD_MSGKEY,
+                "Klju\u010d sporo\u010dila ''{0}'' ni v rezredu sporo\u010dila ''{1}''" },
+
+            {   MsgKey.BAD_MSGFORMAT,
+                "Format sporo\u010dila ''{0}'' v razredu sporo\u010dila ''{1}'' je spodletel." },
+
+            {   MsgKey.ER_SERIALIZER_NOT_CONTENTHANDLER,
+                "Razred serializerja ''{0}'' ne izvede org.xml.sax.ContentHandler." },
+
+            {   MsgKey.ER_RESOURCE_COULD_NOT_FIND,
+                    "Vira [ {0} ] ni mogo\u010de najti.\n {1}" },
+
+            {   MsgKey.ER_RESOURCE_COULD_NOT_LOAD,
+                    "Sredstva [ {0} ] ni bilo mogo\u010de nalo\u017eiti: {1} \n {2} \t {3}" },
+
+            {   MsgKey.ER_BUFFER_SIZE_LESSTHAN_ZERO,
+                    "Velikost medpomnilnika <=0" },
+
+            {   MsgKey.ER_INVALID_UTF16_SURROGATE,
+                    "Zaznan neveljaven nadomestek UTF-16: {0} ?" },
+
+            {   MsgKey.ER_OIERROR,
+                "Napaka V/I" },
+
+            {   MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,
+                "Atributa {0} ne morem dodati za podrejenimi vozli\u0161\u010di ali pred izdelavo elementa.  Atribut bo prezrt." },
+
+            /*
+             * Note to translators:  The stylesheet contained a reference to a
+             * namespace prefix that was undefined.  The value of the substitution
+             * text is the name of the prefix.
+             */
+            {   MsgKey.ER_NAMESPACE_PREFIX,
+                "Imenski prostor za predpono ''{0}'' ni bil naveden." },
+
+            /*
+             * Note to translators:  This message is reported if the stylesheet
+             * being processed attempted to construct an XML document with an
+             * attribute in a place other than on an element.  The substitution text
+             * specifies the name of the attribute.
+             */
+            {   MsgKey.ER_STRAY_ATTRIBUTE,
+                "Atribut ''{0}'' je zunaj elementa." },
+
+            /*
+             * Note to translators:  As with the preceding message, a namespace
+             * declaration has the form of an attribute and is only permitted to
+             * appear on an element.  The substitution text {0} is the namespace
+             * prefix and {1} is the URI that was being used in the erroneous
+             * namespace declaration.
+             */
+            {   MsgKey.ER_STRAY_NAMESPACE,
+                "Deklaracija imenskega prostora ''{0}''=''{1}'' je zunaj elementa." },
+
+            {   MsgKey.ER_COULD_NOT_LOAD_RESOURCE,
+                "Ni bilo mogo\u010de nalo\u017eiti ''{0}'' (preverite CLASSPATH), trenutno se uporabljajo samo privzete vrednosti" },
+
+            {   MsgKey.ER_ILLEGAL_CHARACTER,
+                "Poskus izpisa znaka integralne vrednosti {0}, ki v navedenem izhodnem kodiranju {1} ni zastopan." },
+
+            {   MsgKey.ER_COULD_NOT_LOAD_METHOD_PROPERTY,
+                "Datoteke z lastnostmi ''{0}'' ni bilo mogo\u010de nalo\u017eiti za izhodno metodo ''{1}'' (preverite CLASSPATH)" },
+
+            {   MsgKey.ER_INVALID_PORT,
+                "Neveljavna \u0161tevilka vrat" },
+
+            {   MsgKey.ER_PORT_WHEN_HOST_NULL,
+                "Ko je gostitelj NULL, nastavitev vrat ni mogo\u010da" },
+
+            {   MsgKey.ER_HOST_ADDRESS_NOT_WELLFORMED,
+                "Naslov gostitelja ni pravilno oblikovan" },
+
+            {   MsgKey.ER_SCHEME_NOT_CONFORMANT,
+                "Shema ni skladna." },
+
+            {   MsgKey.ER_SCHEME_FROM_NULL_STRING,
+                "Ni mogo\u010de nastaviti sheme iz niza NULL" },
+
+            {   MsgKey.ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,
+                "Pot vsebuje neveljavno zaporedje za izhod" },
+
+            {   MsgKey.ER_PATH_INVALID_CHAR,
+                "Pot vsebuje neveljaven znak: {0}" },
+
+            {   MsgKey.ER_FRAG_INVALID_CHAR,
+                "Fragment vsebuje neveljaven znak" },
+
+            {   MsgKey.ER_FRAG_WHEN_PATH_NULL,
+                "Ko je pot NULL, nastavitev fragmenta ni mogo\u010da" },
+
+            {   MsgKey.ER_FRAG_FOR_GENERIC_URI,
+                "Fragment je lahko nastavljen samo za splo\u0161ni URI" },
+
+            {   MsgKey.ER_NO_SCHEME_IN_URI,
+                "Ne najdem sheme v URI" },
+
+            {   MsgKey.ER_CANNOT_INIT_URI_EMPTY_PARMS,
+                "Ni mogo\u010de inicializirati URI-ja s praznimi parametri" },
+
+            {   MsgKey.ER_NO_FRAGMENT_STRING_IN_PATH,
+                "Fragment ne more biti hkrati naveden v poti in v fragmentu" },
+
+            {   MsgKey.ER_NO_QUERY_STRING_IN_PATH,
+                "Poizvedbeni niz ne more biti naveden v nizu poti in poizvedbenem nizu" },
+
+            {   MsgKey.ER_NO_PORT_IF_NO_HOST,
+                "Vrata ne morejo biti navedena, \u010de ni naveden gostitelj" },
+
+            {   MsgKey.ER_NO_USERINFO_IF_NO_HOST,
+                "Informacije o uporabniku ne morejo biti navedene, \u010de ni naveden gostitelj" },
+            {   MsgKey.ER_XML_VERSION_NOT_SUPPORTED,
+                "Opozorilo: Zahtevana razli\u010dica izhodnega dokumenta je ''{0}''.  Ta razli\u010dica XML ni podprta.  Razli\u010dica izhodnega dokumenta bo ''1.0''." },
+
+            {   MsgKey.ER_SCHEME_REQUIRED,
+                "Zahtevana je shema!" },
+
+            /*
+             * Note to translators:  The words 'Properties' and
+             * 'SerializerFactory' in this message are Java class names
+             * and should not be translated.
+             */
+            {   MsgKey.ER_FACTORY_PROPERTY_MISSING,
+                "Predmet Properties (lastnosti), ki je prene\u0161en v SerializerFactory, nima lastnosti ''{0}''." },
+
+            {   MsgKey.ER_ENCODING_NOT_SUPPORTED,
+                "Opozorilo:  Izvajalno okolje Java ne podpira kodiranja ''{0}''." },
+
+             {MsgKey.ER_FEATURE_NOT_FOUND,
+             "Parameter ''{0}'' ni prepoznan."},
+
+             {MsgKey.ER_FEATURE_NOT_SUPPORTED,
+             "Parameter ''{0}'' je prepoznan, vendar pa zahtevane vrednosti ni mogo\u010de nastaviti."},
+
+             {MsgKey.ER_STRING_TOO_LONG,
+             "Nastali niz je predolg za DOMString: ''{0}''."},
+
+             {MsgKey.ER_TYPE_MISMATCH_ERR,
+             "Tip vrednosti za to ime parametra je nezdru\u017eljiv s pri\u010dakovanim tipom vrednosti."},
+
+             {MsgKey.ER_NO_OUTPUT_SPECIFIED,
+             "Izhodno mesto za vpisovanje podatkov je bilo ni\u010d."},
+
+             {MsgKey.ER_UNSUPPORTED_ENCODING,
+             "Odkrito je nepodprto kodiranje."},
+
+             {MsgKey.ER_UNABLE_TO_SERIALIZE_NODE,
+             "Vozli\u0161\u010da ni mogo\u010de serializirati."},
+
+             {MsgKey.ER_CDATA_SECTIONS_SPLIT,
+             "Odsek CDATA vsebuje enega ali ve\u010d ozna\u010devalnikov prekinitve ']]>'."},
+
+             {MsgKey.ER_WARNING_WF_NOT_CHECKED,
+                 "Primerka preverjevalnika Well-Formedness ni bilo mogo\u010de ustvariti.  Parameter well-formed je bil nastavljen na True, ampak ni mogo\u010de preveriti well-formedness."
+             },
+
+             {MsgKey.ER_WF_INVALID_CHARACTER,
+                 "Vozli\u0161\u010de ''{0}'' vsebuje neveljavne znake XML."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,
+                 "V komentarju je bil najden neveljaven XML znak (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,
+                 "V podatkih navodila za obdelavo je bil najden neveljaven znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,
+                 "V vsebini odseka CDATASection je bil najden neveljaven znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,
+                 "V podatkovni vsebini znaka vozli\u0161\u010da je bil najden neveljaven znak XML (Unicode: 0x{0})."
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                 "V vozli\u0161\u010du {0} z imenom ''{1}'' je bil najden neveljaven znak XML."
+             },
+
+             { MsgKey.ER_WF_DASH_IN_COMMENT,
+                 "Niz \"--\" ni dovoljen v komentarjih."
+             },
+
+             {MsgKey.ER_WF_LT_IN_ATTVAL,
+                 "Vrednost atributa \"{1}\", ki je povezan s tipom elementa \"{0}\", ne sme vsebovati znaka ''<''."
+             },
+
+             {MsgKey.ER_WF_REF_TO_UNPARSED_ENT,
+                 "Neraz\u010dlenjeni sklic entitete \"&{0};\" ni dovoljen."
+             },
+
+             {MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,
+                 "Zunanji sklic entitete \"&{0};\" ni dovoljen v vrednosti atributa."
+             },
+
+             {MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,
+                 "Predpona \"{0}\" ne more biti povezana z imenskim prostorom \"{1}\"."
+             },
+
+             {MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,
+                 "Lokalno ime elementa \"{0}\" je ni\u010d."
+             },
+
+             {MsgKey.ER_NULL_LOCAL_ATTR_NAME,
+                 "Lokalno ime atributa \"{0}\" je ni\u010d."
+             },
+
+             { MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,
+                 "Besedilo za zamenjavo za vozli\u0161\u010de entitete \"{0}\" vsebuje vozli\u0161\u010de elementa \"{1}\" z nevezano predpono \"{2}\"."
+             },
+
+             { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,
+                 "Besedilo za zamenjavo za vozli\u0161\u010de entitete \"{0}\" vsebuje vozli\u0161\u010de atributa \"{1}\" z nevezano predpono \"{2}\"."
+             },
+
+        };
+
+        return contents;
+    }
+}
diff --git a/src/org/apache/xml/serializer/utils/SerializerMessages_zh.java b/src/org/apache/xml/serializer/utils/SerializerMessages_zh.java
old mode 100755
new mode 100644
index dbb230d..db970ce
--- a/src/org/apache/xml/serializer/utils/SerializerMessages_zh.java
+++ b/src/org/apache/xml/serializer/utils/SerializerMessages_zh.java
@@ -1,291 +1,291 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: SerializerMessages_zh.java,v 1.7 2005/03/07 20:34:36 minchau Exp $

- */

-

-

-package org.apache.xml.serializer.utils;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * An instance of this class is a ListResourceBundle that

- * has the required getContents() method that returns

- * an array of message-key/message associations.

- * <p>

- * The message keys are defined in {@link MsgKey}. The

- * messages that those keys map to are defined here.

- * <p>

- * The messages in the English version are intended to be

- * translated.

- *

- * This class is not a public API, it is only public because it is

- * used in org.apache.xml.serializer.

- *

- * @xsl.usage internal

- */

-public class SerializerMessages_zh extends ListResourceBundle {

-

-    /*

-     * This file contains error and warning messages related to

-     * Serializer Error Handling.

-     *

-     *  General notes to translators:

-

-     *  1) A stylesheet is a description of how to transform an input XML document

-     *     into a resultant XML document (or HTML document or text).  The

-     *     stylesheet itself is described in the form of an XML document.

-

-     *

-     *  2) An element is a mark-up tag in an XML document; an attribute is a

-     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

-     *     "elem" is an element name, "attr" and "attr2" are attribute names with

-     *     the values "val" and "val2", respectively.

-     *

-     *  3) A namespace declaration is a special attribute that is used to associate

-     *     a prefix with a URI (the namespace).  The meanings of element names and

-     *     attribute names that use that prefix are defined with respect to that

-     *     namespace.

-     *

-     *

-     */

-

-    /** The lookup table for error messages.   */

-    public Object[][] getContents() {

-        Object[][] contents = new Object[][] {

-            {   MsgKey.BAD_MSGKEY,

-                "\u6d88\u606f\u5bc6\u94a5\u201c{0}\u201d\u4e0d\u5728\u6d88\u606f\u7c7b\u201c{1}\u201d\u4e2d" },

-

-            {   MsgKey.BAD_MSGFORMAT,

-                "\u6d88\u606f\u7c7b\u201c{1}\u201d\u4e2d\u7684\u6d88\u606f\u201c{0}\u201d\u7684\u683c\u5f0f\u65e0\u6548\u3002" },

-

-            {   MsgKey.ER_SERIALIZER_NOT_CONTENTHANDLER,

-                "\u4e32\u884c\u5668\u7c7b\u201c{0}\u201d\u4e0d\u80fd\u5b9e\u73b0 org.xml.sax.ContentHandler\u3002" },

-

-            {   MsgKey.ER_RESOURCE_COULD_NOT_FIND,

-                    "\u627e\u4e0d\u5230\u8d44\u6e90 [ {0} ]\u3002\n {1}" },

-

-            {   MsgKey.ER_RESOURCE_COULD_NOT_LOAD,

-                    "\u8d44\u6e90 [ {0} ] \u65e0\u6cd5\u88c5\u5165\uff1a{1} \n {2} \t {3}" },

-

-            {   MsgKey.ER_BUFFER_SIZE_LESSTHAN_ZERO,

-                    "\u7f13\u51b2\u533a\u5927\u5c0f <=0" },

-

-            {   MsgKey.ER_INVALID_UTF16_SURROGATE,

-                    "\u68c0\u6d4b\u5230\u65e0\u6548\u7684 UTF-16 \u8d85\u5927\u5b57\u7b26\u96c6\uff1a{0}\uff1f" },

-

-            {   MsgKey.ER_OIERROR,

-                "IO \u9519\u8bef" },

-

-            {   MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,

-                "\u5728\u751f\u6210\u5b50\u8282\u70b9\u4e4b\u540e\u6216\u5728\u751f\u6210\u5143\u7d20\u4e4b\u524d\u65e0\u6cd5\u6dfb\u52a0\u5c5e\u6027 {0}\u3002\u5c06\u5ffd\u7565\u5c5e\u6027\u3002" },

-

-            /*

-             * Note to translators:  The stylesheet contained a reference to a

-             * namespace prefix that was undefined.  The value of the substitution

-             * text is the name of the prefix.

-             */

-            {   MsgKey.ER_NAMESPACE_PREFIX,

-                "\u5c1a\u672a\u58f0\u660e\u524d\u7f00\u201c{0}\u201d\u7684\u540d\u79f0\u7a7a\u95f4\u3002" },

-

-            /*

-             * Note to translators:  This message is reported if the stylesheet

-             * being processed attempted to construct an XML document with an

-             * attribute in a place other than on an element.  The substitution text

-             * specifies the name of the attribute.

-             */

-            {   MsgKey.ER_STRAY_ATTRIBUTE,

-                "\u5c5e\u6027\u201c{0}\u201d\u5728\u5143\u7d20\u5916\u3002" },

-

-            /*

-             * Note to translators:  As with the preceding message, a namespace

-             * declaration has the form of an attribute and is only permitted to

-             * appear on an element.  The substitution text {0} is the namespace

-             * prefix and {1} is the URI that was being used in the erroneous

-             * namespace declaration.

-             */

-            {   MsgKey.ER_STRAY_NAMESPACE,

-                "\u540d\u79f0\u7a7a\u95f4\u58f0\u660e\u201c{0}\u201d=\u201c{1}\u201d\u5728\u5143\u7d20\u5916\u3002" },

-

-            {   MsgKey.ER_COULD_NOT_LOAD_RESOURCE,

-                "\u65e0\u6cd5\u88c5\u5165\u201c{0}\u201d\uff08\u68c0\u67e5 CLASSPATH\uff09\uff0c\u73b0\u5728\u53ea\u4f7f\u7528\u7f3a\u7701\u503c" },

-

-            {   MsgKey.ER_ILLEGAL_CHARACTER,

-                "\u5c1d\u8bd5\u8f93\u51fa\u6574\u6570\u503c {0}\uff08\u5b83\u4e0d\u662f\u4ee5\u6307\u5b9a\u7684 {1} \u8f93\u51fa\u7f16\u7801\u8868\u793a\uff09\u7684\u5b57\u7b26\u3002" },

-

-            {   MsgKey.ER_COULD_NOT_LOAD_METHOD_PROPERTY,

-                "\u65e0\u6cd5\u4e3a\u8f93\u51fa\u65b9\u6cd5\u201c{1}\u201d\u88c5\u5165\u5c5e\u6027\u6587\u4ef6\u201c{0}\u201d\uff08\u68c0\u67e5 CLASSPATH\uff09" },

-

-            {   MsgKey.ER_INVALID_PORT,

-                "\u7aef\u53e3\u53f7\u65e0\u6548" },

-

-            {   MsgKey.ER_PORT_WHEN_HOST_NULL,

-                "\u4e3b\u673a\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7aef\u53e3" },

-

-            {   MsgKey.ER_HOST_ADDRESS_NOT_WELLFORMED,

-                "\u4e3b\u673a\u4e0d\u662f\u683c\u5f0f\u6b63\u786e\u7684\u5730\u5740" },

-

-            {   MsgKey.ER_SCHEME_NOT_CONFORMANT,

-                "\u6a21\u5f0f\u4e0d\u4e00\u81f4\u3002" },

-

-            {   MsgKey.ER_SCHEME_FROM_NULL_STRING,

-                "\u65e0\u6cd5\u4ece\u7a7a\u5b57\u7b26\u4e32\u8bbe\u7f6e\u6a21\u5f0f" },

-

-            {   MsgKey.ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,

-                "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u8f6c\u4e49\u5e8f\u5217" },

-

-            {   MsgKey.ER_PATH_INVALID_CHAR,

-                "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26\uff1a{0}" },

-

-            {   MsgKey.ER_FRAG_INVALID_CHAR,

-                "\u7247\u6bb5\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26" },

-

-            {   MsgKey.ER_FRAG_WHEN_PATH_NULL,

-                "\u8def\u5f84\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7247\u6bb5" },

-

-            {   MsgKey.ER_FRAG_FOR_GENERIC_URI,

-                "\u53ea\u80fd\u4e3a\u7c7b\u5c5e URI \u8bbe\u7f6e\u7247\u6bb5" },

-

-            {   MsgKey.ER_NO_SCHEME_IN_URI,

-                "URI \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u6a21\u5f0f" },

-

-            {   MsgKey.ER_CANNOT_INIT_URI_EMPTY_PARMS,

-                "\u4e0d\u80fd\u4ee5\u7a7a\u53c2\u6570\u521d\u59cb\u5316 URI" },

-

-            {   MsgKey.ER_NO_FRAGMENT_STRING_IN_PATH,

-                "\u8def\u5f84\u548c\u7247\u6bb5\u4e2d\u90fd\u4e0d\u80fd\u6307\u5b9a\u7247\u6bb5" },

-

-            {   MsgKey.ER_NO_QUERY_STRING_IN_PATH,

-                "\u8def\u5f84\u548c\u67e5\u8be2\u5b57\u7b26\u4e32\u4e2d\u4e0d\u80fd\u6307\u5b9a\u67e5\u8be2\u5b57\u7b26\u4e32" },

-

-            {   MsgKey.ER_NO_PORT_IF_NO_HOST,

-                "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7aef\u53e3" },

-

-            {   MsgKey.ER_NO_USERINFO_IF_NO_HOST,

-                "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7528\u6237\u4fe1\u606f" },

-            {   MsgKey.ER_XML_VERSION_NOT_SUPPORTED,

-                "\u8b66\u544a\uff1a\u8981\u6c42\u8f93\u51fa\u6587\u6863\u7684\u7248\u672c\u662f\u201c{0}\u201d\u3002\u4e0d\u652f\u6301\u6b64 XML \u7248\u672c\u3002\u8f93\u51fa\u6587\u6863\u7684\u7248\u672c\u5c06\u4f1a\u662f\u201c1.0\u201d\u3002" },

-

-            {   MsgKey.ER_SCHEME_REQUIRED,

-                "\u6a21\u5f0f\u662f\u5fc5\u9700\u7684\uff01" },

-

-            /*

-             * Note to translators:  The words 'Properties' and

-             * 'SerializerFactory' in this message are Java class names

-             * and should not be translated.

-             */

-            {   MsgKey.ER_FACTORY_PROPERTY_MISSING,

-                "\u4f20\u9012\u7ed9 SerializerFactory \u7684 Properties \u5bf9\u8c61\u4e0d\u5177\u6709\u5c5e\u6027\u201c{0}\u201d\u3002" },

-

-             {MsgKey.ER_FEATURE_NOT_FOUND,

-             "\u672a\u8bc6\u522b\u51fa\u53c2\u6570\u201c{0}\u201d\u3002"},

-

-             {MsgKey.ER_FEATURE_NOT_SUPPORTED,

-             "\u5df2\u8bc6\u522b\u51fa\u53c2\u6570\u201c{0}\u201d\uff0c\u4f46\u65e0\u6cd5\u8bbe\u7f6e\u8bf7\u6c42\u7684\u503c\u3002"},

-

-             {MsgKey.ER_STRING_TOO_LONG,

-             "\u4ea7\u751f\u7684\u5b57\u7b26\u4e32\u8fc7\u957f\u4e0d\u80fd\u88c5\u5165 DOMString\uff1a\u201c{0}\u201d\u3002"},

-

-             {MsgKey.ER_TYPE_MISMATCH_ERR,

-             "\u6b64\u53c2\u6570\u540d\u79f0\u7684\u503c\u7c7b\u578b\u4e0e\u671f\u671b\u7684\u503c\u7c7b\u578b\u4e0d\u517c\u5bb9\u3002"},

-

-             {MsgKey.ER_NO_OUTPUT_SPECIFIED,

-             "\u5c06\u8981\u5199\u5165\u6570\u636e\u7684\u8f93\u51fa\u76ee\u6807\u4e3a\u7a7a\u3002"},

-

-             {MsgKey.ER_UNSUPPORTED_ENCODING,

-             "\u9047\u5230\u4e0d\u53d7\u652f\u6301\u7684\u7f16\u7801\u3002"},

-

-             {MsgKey.ER_UNABLE_TO_SERIALIZE_NODE,

-             "\u65e0\u6cd5\u5c06\u8282\u70b9\u5e8f\u5217\u5316\u3002 "},

-

-             {MsgKey.ER_CDATA_SECTIONS_SPLIT,

-             "CDATA \u90e8\u5206\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u7ec8\u6b62\u6807\u8bb0\u201c]]>\u201d\u3002"},

-

-             {MsgKey.ER_WARNING_WF_NOT_CHECKED,

-                 "\u65e0\u6cd5\u521b\u5efa\u683c\u5f0f\u6b63\u786e\u6027\u68c0\u67e5\u5668\u7684\u5b9e\u4f8b\u3002\u201c\u683c\u5f0f\u6b63\u786e\u201d\u53c2\u6570\u5df2\u8bbe\u7f6e\u4e3a true\uff0c\u4f46\u65e0\u6cd5\u6267\u884c\u683c\u5f0f\u6b63\u786e\u6027\u68c0\u67e5\u3002"

-             },

-

-             {MsgKey.ER_WF_INVALID_CHARACTER,

-                 "\u8282\u70b9\u201c{0}\u201d\u5305\u542b\u65e0\u6548\u7684 XML \u5b57\u7b26\u3002"

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,

-                 "\u5728\u6ce8\u91ca\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,

-                 "\u5728\u5904\u7406\u6307\u4ee4\u6570\u636e\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,

-                 "\u5728 CDATA \u90e8\u5206\u7684\u5185\u5bb9\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,

-                 "\u5728\u8282\u70b9\u7684\u5b57\u7b26\u6570\u636e\u5185\u5bb9\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"

-             },

-

-             { MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,

-                 "\u540d\u79f0\u4e3a\u201c{1})\u201d\u7684\u201c{0})\u201d\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26\u3002"

-             },

-

-             { MsgKey.ER_WF_DASH_IN_COMMENT,

-                 "\u6ce8\u91ca\u4e2d\u4e0d\u5141\u8bb8\u6709\u5b57\u7b26\u4e32\u201c--\u201d\u3002"

-             },

-

-             {MsgKey.ER_WF_LT_IN_ATTVAL,

-                 "\u4e0e\u5143\u7d20\u7c7b\u578b\u201c{0}\u201d\u5173\u8054\u7684\u5c5e\u6027\u201c{1}\u201d\u7684\u503c\u4e0d\u5f97\u5305\u542b\u201c<\u201d\u5b57\u7b26\u3002"

-             },

-

-             {MsgKey.ER_WF_REF_TO_UNPARSED_ENT,

-                 "\u4e0d\u5141\u8bb8\u6709\u672a\u89e3\u6790\u7684\u5b9e\u4f53\u5f15\u7528\u201c&{0};\u201d\u3002"

-             },

-

-             {MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,

-                 "\u5c5e\u6027\u503c\u4e2d\u4e0d\u5141\u8bb8\u6709\u5916\u90e8\u5b9e\u4f53\u5f15\u7528\u201c&{0};\u201d\u3002"

-             },

-

-             {MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,

-                 "\u524d\u7f00\u201c{0}\u201d\u4e0d\u80fd\u7ed1\u5b9a\u5230\u540d\u79f0\u7a7a\u95f4\u201c{1}\u201d\u3002"

-             },

-

-             {MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,

-                 "\u5143\u7d20\u201c{0}\u201d\u7684\u5c40\u90e8\u540d\u4e3a\u7a7a\u3002"

-             },

-

-             {MsgKey.ER_NULL_LOCAL_ATTR_NAME,

-                 "\u5c5e\u6027\u201c{0}\u201d\u7684\u5c40\u90e8\u540d\u4e3a\u7a7a\u3002"

-             },

-

-             { MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,

-                 "\u5b9e\u4f53\u8282\u70b9\u201c{0}\u201d\u7684\u66ff\u4ee3\u6587\u672c\u4e2d\u5305\u542b\u5143\u7d20\u8282\u70b9\u201c{1}\u201d\uff0c\u8be5\u8282\u70b9\u5177\u6709\u672a\u7ed1\u5b9a\u7684\u524d\u7f00\u201c{2}\u201d\u3002"

-             },

-

-             { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,

-                 "\u5b9e\u4f53\u8282\u70b9\u201c{0}\u201d\u7684\u66ff\u4ee3\u6587\u672c\u4e2d\u5305\u542b\u5c5e\u6027\u8282\u70b9\u201c{1}\u201d\uff0c\u8be5\u8282\u70b9\u5177\u6709\u672a\u7ed1\u5b9a\u7684\u524d\u7f00\u201c{2}\u201d\u3002"

-             },

-

-        };

-

-        return contents;

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+
+package org.apache.xml.serializer.utils;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * An instance of this class is a ListResourceBundle that
+ * has the required getContents() method that returns
+ * an array of message-key/message associations.
+ * <p>
+ * The message keys are defined in {@link MsgKey}. The
+ * messages that those keys map to are defined here.
+ * <p>
+ * The messages in the English version are intended to be
+ * translated.
+ *
+ * This class is not a public API, it is only public because it is
+ * used in org.apache.xml.serializer.
+ *
+ * @xsl.usage internal
+ */
+public class SerializerMessages_zh extends ListResourceBundle {
+
+    /*
+     * This file contains error and warning messages related to
+     * Serializer Error Handling.
+     *
+     *  General notes to translators:
+
+     *  1) A stylesheet is a description of how to transform an input XML document
+     *     into a resultant XML document (or HTML document or text).  The
+     *     stylesheet itself is described in the form of an XML document.
+
+     *
+     *  2) An element is a mark-up tag in an XML document; an attribute is a
+     *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+     *     "elem" is an element name, "attr" and "attr2" are attribute names with
+     *     the values "val" and "val2", respectively.
+     *
+     *  3) A namespace declaration is a special attribute that is used to associate
+     *     a prefix with a URI (the namespace).  The meanings of element names and
+     *     attribute names that use that prefix are defined with respect to that
+     *     namespace.
+     *
+     *
+     */
+
+    /** The lookup table for error messages.   */
+    public Object[][] getContents() {
+        Object[][] contents = new Object[][] {
+            {   MsgKey.BAD_MSGKEY,
+                "\u6d88\u606f\u5bc6\u94a5\u201c{0}\u201d\u4e0d\u5728\u6d88\u606f\u7c7b\u201c{1}\u201d\u4e2d" },
+
+            {   MsgKey.BAD_MSGFORMAT,
+                "\u6d88\u606f\u7c7b\u201c{1}\u201d\u4e2d\u7684\u6d88\u606f\u201c{0}\u201d\u7684\u683c\u5f0f\u65e0\u6548\u3002" },
+
+            {   MsgKey.ER_SERIALIZER_NOT_CONTENTHANDLER,
+                "\u4e32\u884c\u5668\u7c7b\u201c{0}\u201d\u4e0d\u80fd\u5b9e\u73b0 org.xml.sax.ContentHandler\u3002" },
+
+            {   MsgKey.ER_RESOURCE_COULD_NOT_FIND,
+                    "\u627e\u4e0d\u5230\u8d44\u6e90 [ {0} ]\u3002\n {1}" },
+
+            {   MsgKey.ER_RESOURCE_COULD_NOT_LOAD,
+                    "\u8d44\u6e90 [ {0} ] \u65e0\u6cd5\u88c5\u5165\uff1a{1} \n {2} \t {3}" },
+
+            {   MsgKey.ER_BUFFER_SIZE_LESSTHAN_ZERO,
+                    "\u7f13\u51b2\u533a\u5927\u5c0f <=0" },
+
+            {   MsgKey.ER_INVALID_UTF16_SURROGATE,
+                    "\u68c0\u6d4b\u5230\u65e0\u6548\u7684 UTF-16 \u8d85\u5927\u5b57\u7b26\u96c6\uff1a{0}\uff1f" },
+
+            {   MsgKey.ER_OIERROR,
+                "IO \u9519\u8bef" },
+
+            {   MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,
+                "\u5728\u751f\u6210\u5b50\u8282\u70b9\u4e4b\u540e\u6216\u5728\u751f\u6210\u5143\u7d20\u4e4b\u524d\u65e0\u6cd5\u6dfb\u52a0\u5c5e\u6027 {0}\u3002\u5c06\u5ffd\u7565\u5c5e\u6027\u3002" },
+
+            /*
+             * Note to translators:  The stylesheet contained a reference to a
+             * namespace prefix that was undefined.  The value of the substitution
+             * text is the name of the prefix.
+             */
+            {   MsgKey.ER_NAMESPACE_PREFIX,
+                "\u5c1a\u672a\u58f0\u660e\u524d\u7f00\u201c{0}\u201d\u7684\u540d\u79f0\u7a7a\u95f4\u3002" },
+
+            /*
+             * Note to translators:  This message is reported if the stylesheet
+             * being processed attempted to construct an XML document with an
+             * attribute in a place other than on an element.  The substitution text
+             * specifies the name of the attribute.
+             */
+            {   MsgKey.ER_STRAY_ATTRIBUTE,
+                "\u5c5e\u6027\u201c{0}\u201d\u5728\u5143\u7d20\u5916\u3002" },
+
+            /*
+             * Note to translators:  As with the preceding message, a namespace
+             * declaration has the form of an attribute and is only permitted to
+             * appear on an element.  The substitution text {0} is the namespace
+             * prefix and {1} is the URI that was being used in the erroneous
+             * namespace declaration.
+             */
+            {   MsgKey.ER_STRAY_NAMESPACE,
+                "\u540d\u79f0\u7a7a\u95f4\u58f0\u660e\u201c{0}\u201d=\u201c{1}\u201d\u5728\u5143\u7d20\u5916\u3002" },
+
+            {   MsgKey.ER_COULD_NOT_LOAD_RESOURCE,
+                "\u65e0\u6cd5\u88c5\u5165\u201c{0}\u201d\uff08\u68c0\u67e5 CLASSPATH\uff09\uff0c\u73b0\u5728\u53ea\u4f7f\u7528\u7f3a\u7701\u503c" },
+
+            {   MsgKey.ER_ILLEGAL_CHARACTER,
+                "\u5c1d\u8bd5\u8f93\u51fa\u6574\u6570\u503c {0}\uff08\u5b83\u4e0d\u662f\u4ee5\u6307\u5b9a\u7684 {1} \u8f93\u51fa\u7f16\u7801\u8868\u793a\uff09\u7684\u5b57\u7b26\u3002" },
+
+            {   MsgKey.ER_COULD_NOT_LOAD_METHOD_PROPERTY,
+                "\u65e0\u6cd5\u4e3a\u8f93\u51fa\u65b9\u6cd5\u201c{1}\u201d\u88c5\u5165\u5c5e\u6027\u6587\u4ef6\u201c{0}\u201d\uff08\u68c0\u67e5 CLASSPATH\uff09" },
+
+            {   MsgKey.ER_INVALID_PORT,
+                "\u7aef\u53e3\u53f7\u65e0\u6548" },
+
+            {   MsgKey.ER_PORT_WHEN_HOST_NULL,
+                "\u4e3b\u673a\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7aef\u53e3" },
+
+            {   MsgKey.ER_HOST_ADDRESS_NOT_WELLFORMED,
+                "\u4e3b\u673a\u4e0d\u662f\u683c\u5f0f\u6b63\u786e\u7684\u5730\u5740" },
+
+            {   MsgKey.ER_SCHEME_NOT_CONFORMANT,
+                "\u6a21\u5f0f\u4e0d\u4e00\u81f4\u3002" },
+
+            {   MsgKey.ER_SCHEME_FROM_NULL_STRING,
+                "\u65e0\u6cd5\u4ece\u7a7a\u5b57\u7b26\u4e32\u8bbe\u7f6e\u6a21\u5f0f" },
+
+            {   MsgKey.ER_PATH_CONTAINS_INVALID_ESCAPE_SEQUENCE,
+                "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u8f6c\u4e49\u5e8f\u5217" },
+
+            {   MsgKey.ER_PATH_INVALID_CHAR,
+                "\u8def\u5f84\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26\uff1a{0}" },
+
+            {   MsgKey.ER_FRAG_INVALID_CHAR,
+                "\u7247\u6bb5\u5305\u542b\u65e0\u6548\u7684\u5b57\u7b26" },
+
+            {   MsgKey.ER_FRAG_WHEN_PATH_NULL,
+                "\u8def\u5f84\u4e3a\u7a7a\u65f6\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u7247\u6bb5" },
+
+            {   MsgKey.ER_FRAG_FOR_GENERIC_URI,
+                "\u53ea\u80fd\u4e3a\u7c7b\u5c5e URI \u8bbe\u7f6e\u7247\u6bb5" },
+
+            {   MsgKey.ER_NO_SCHEME_IN_URI,
+                "URI \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u6a21\u5f0f" },
+
+            {   MsgKey.ER_CANNOT_INIT_URI_EMPTY_PARMS,
+                "\u4e0d\u80fd\u4ee5\u7a7a\u53c2\u6570\u521d\u59cb\u5316 URI" },
+
+            {   MsgKey.ER_NO_FRAGMENT_STRING_IN_PATH,
+                "\u8def\u5f84\u548c\u7247\u6bb5\u4e2d\u90fd\u4e0d\u80fd\u6307\u5b9a\u7247\u6bb5" },
+
+            {   MsgKey.ER_NO_QUERY_STRING_IN_PATH,
+                "\u8def\u5f84\u548c\u67e5\u8be2\u5b57\u7b26\u4e32\u4e2d\u4e0d\u80fd\u6307\u5b9a\u67e5\u8be2\u5b57\u7b26\u4e32" },
+
+            {   MsgKey.ER_NO_PORT_IF_NO_HOST,
+                "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7aef\u53e3" },
+
+            {   MsgKey.ER_NO_USERINFO_IF_NO_HOST,
+                "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u4e3b\u673a\uff0c\u5219\u4e0d\u53ef\u4ee5\u6307\u5b9a\u7528\u6237\u4fe1\u606f" },
+            {   MsgKey.ER_XML_VERSION_NOT_SUPPORTED,
+                "\u8b66\u544a\uff1a\u8981\u6c42\u8f93\u51fa\u6587\u6863\u7684\u7248\u672c\u662f\u201c{0}\u201d\u3002\u4e0d\u652f\u6301\u6b64 XML \u7248\u672c\u3002\u8f93\u51fa\u6587\u6863\u7684\u7248\u672c\u5c06\u4f1a\u662f\u201c1.0\u201d\u3002" },
+
+            {   MsgKey.ER_SCHEME_REQUIRED,
+                "\u6a21\u5f0f\u662f\u5fc5\u9700\u7684\uff01" },
+
+            /*
+             * Note to translators:  The words 'Properties' and
+             * 'SerializerFactory' in this message are Java class names
+             * and should not be translated.
+             */
+            {   MsgKey.ER_FACTORY_PROPERTY_MISSING,
+                "\u4f20\u9012\u7ed9 SerializerFactory \u7684 Properties \u5bf9\u8c61\u4e0d\u5177\u6709\u5c5e\u6027\u201c{0}\u201d\u3002" },
+
+             {MsgKey.ER_FEATURE_NOT_FOUND,
+             "\u672a\u8bc6\u522b\u51fa\u53c2\u6570\u201c{0}\u201d\u3002"},
+
+             {MsgKey.ER_FEATURE_NOT_SUPPORTED,
+             "\u5df2\u8bc6\u522b\u51fa\u53c2\u6570\u201c{0}\u201d\uff0c\u4f46\u65e0\u6cd5\u8bbe\u7f6e\u8bf7\u6c42\u7684\u503c\u3002"},
+
+             {MsgKey.ER_STRING_TOO_LONG,
+             "\u4ea7\u751f\u7684\u5b57\u7b26\u4e32\u8fc7\u957f\u4e0d\u80fd\u88c5\u5165 DOMString\uff1a\u201c{0}\u201d\u3002"},
+
+             {MsgKey.ER_TYPE_MISMATCH_ERR,
+             "\u6b64\u53c2\u6570\u540d\u79f0\u7684\u503c\u7c7b\u578b\u4e0e\u671f\u671b\u7684\u503c\u7c7b\u578b\u4e0d\u517c\u5bb9\u3002"},
+
+             {MsgKey.ER_NO_OUTPUT_SPECIFIED,
+             "\u5c06\u8981\u5199\u5165\u6570\u636e\u7684\u8f93\u51fa\u76ee\u6807\u4e3a\u7a7a\u3002"},
+
+             {MsgKey.ER_UNSUPPORTED_ENCODING,
+             "\u9047\u5230\u4e0d\u53d7\u652f\u6301\u7684\u7f16\u7801\u3002"},
+
+             {MsgKey.ER_UNABLE_TO_SERIALIZE_NODE,
+             "\u65e0\u6cd5\u5c06\u8282\u70b9\u5e8f\u5217\u5316\u3002 "},
+
+             {MsgKey.ER_CDATA_SECTIONS_SPLIT,
+             "CDATA \u90e8\u5206\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u7ec8\u6b62\u6807\u8bb0\u201c]]>\u201d\u3002"},
+
+             {MsgKey.ER_WARNING_WF_NOT_CHECKED,
+                 "\u65e0\u6cd5\u521b\u5efa\u683c\u5f0f\u6b63\u786e\u6027\u68c0\u67e5\u5668\u7684\u5b9e\u4f8b\u3002\u201c\u683c\u5f0f\u6b63\u786e\u201d\u53c2\u6570\u5df2\u8bbe\u7f6e\u4e3a true\uff0c\u4f46\u65e0\u6cd5\u6267\u884c\u683c\u5f0f\u6b63\u786e\u6027\u68c0\u67e5\u3002"
+             },
+
+             {MsgKey.ER_WF_INVALID_CHARACTER,
+                 "\u8282\u70b9\u201c{0}\u201d\u5305\u542b\u65e0\u6548\u7684 XML \u5b57\u7b26\u3002"
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_COMMENT,
+                 "\u5728\u6ce8\u91ca\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_PI,
+                 "\u5728\u5904\u7406\u6307\u4ee4\u6570\u636e\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_CDATA,
+                 "\u5728 CDATA \u90e8\u5206\u7684\u5185\u5bb9\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_TEXT,
+                 "\u5728\u8282\u70b9\u7684\u5b57\u7b26\u6570\u636e\u5185\u5bb9\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26 (Unicode: 0x''{0})''\u3002"
+             },
+
+             { MsgKey.ER_WF_INVALID_CHARACTER_IN_NODE_NAME,
+                 "\u540d\u79f0\u4e3a\u201c{1})\u201d\u7684\u201c{0})\u201d\u4e2d\u627e\u5230\u65e0\u6548\u7684 XML \u5b57\u7b26\u3002"
+             },
+
+             { MsgKey.ER_WF_DASH_IN_COMMENT,
+                 "\u6ce8\u91ca\u4e2d\u4e0d\u5141\u8bb8\u6709\u5b57\u7b26\u4e32\u201c--\u201d\u3002"
+             },
+
+             {MsgKey.ER_WF_LT_IN_ATTVAL,
+                 "\u4e0e\u5143\u7d20\u7c7b\u578b\u201c{0}\u201d\u5173\u8054\u7684\u5c5e\u6027\u201c{1}\u201d\u7684\u503c\u4e0d\u5f97\u5305\u542b\u201c<\u201d\u5b57\u7b26\u3002"
+             },
+
+             {MsgKey.ER_WF_REF_TO_UNPARSED_ENT,
+                 "\u4e0d\u5141\u8bb8\u6709\u672a\u89e3\u6790\u7684\u5b9e\u4f53\u5f15\u7528\u201c&{0};\u201d\u3002"
+             },
+
+             {MsgKey.ER_WF_REF_TO_EXTERNAL_ENT,
+                 "\u5c5e\u6027\u503c\u4e2d\u4e0d\u5141\u8bb8\u6709\u5916\u90e8\u5b9e\u4f53\u5f15\u7528\u201c&{0};\u201d\u3002"
+             },
+
+             {MsgKey.ER_NS_PREFIX_CANNOT_BE_BOUND,
+                 "\u524d\u7f00\u201c{0}\u201d\u4e0d\u80fd\u7ed1\u5b9a\u5230\u540d\u79f0\u7a7a\u95f4\u201c{1}\u201d\u3002"
+             },
+
+             {MsgKey.ER_NULL_LOCAL_ELEMENT_NAME,
+                 "\u5143\u7d20\u201c{0}\u201d\u7684\u5c40\u90e8\u540d\u4e3a\u7a7a\u3002"
+             },
+
+             {MsgKey.ER_NULL_LOCAL_ATTR_NAME,
+                 "\u5c5e\u6027\u201c{0}\u201d\u7684\u5c40\u90e8\u540d\u4e3a\u7a7a\u3002"
+             },
+
+             { MsgKey.ER_ELEM_UNBOUND_PREFIX_IN_ENTREF,
+                 "\u5b9e\u4f53\u8282\u70b9\u201c{0}\u201d\u7684\u66ff\u4ee3\u6587\u672c\u4e2d\u5305\u542b\u5143\u7d20\u8282\u70b9\u201c{1}\u201d\uff0c\u8be5\u8282\u70b9\u5177\u6709\u672a\u7ed1\u5b9a\u7684\u524d\u7f00\u201c{2}\u201d\u3002"
+             },
+
+             { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,
+                 "\u5b9e\u4f53\u8282\u70b9\u201c{0}\u201d\u7684\u66ff\u4ee3\u6587\u672c\u4e2d\u5305\u542b\u5c5e\u6027\u8282\u70b9\u201c{1}\u201d\uff0c\u8be5\u8282\u70b9\u5177\u6709\u672a\u7ed1\u5b9a\u7684\u524d\u7f00\u201c{2}\u201d\u3002"
+             },
+
+        };
+
+        return contents;
+    }
+}
diff --git a/src/org/apache/xml/serializer/utils/XML11Char.java b/src/org/apache/xml/serializer/utils/XML11Char.java
index 2cbd522..b32249e 100644
--- a/src/org/apache/xml/serializer/utils/XML11Char.java
+++ b/src/org/apache/xml/serializer/utils/XML11Char.java
@@ -1,414 +1,414 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-

-package org.apache.xml.serializer.utils;

-

-import java.util.Arrays;

-

-/**

- * THIS IS A COPY OF THE XERCES-2J CLASS org.apache.xerces.utls.XMLChar

- *  

- * This class defines the basic properties of characters in XML 1.1. The data

- * in this class can be used to verify that a character is a valid

- * XML 1.1 character or if the character is a space, name start, or name

- * character.

- * <p>

- * A series of convenience methods are supplied to ease the burden

- * of the developer.  Using the character as an index into the <code>XML11CHARS</code>

- * array and applying the appropriate mask flag (e.g.

- * <code>MASK_VALID</code>), yields the same results as calling the

- * convenience methods. There is one exception: check the comments

- * for the <code>isValid</code> method for details.

- *

- * @author Glenn Marcy, IBM

- * @author Andy Clark, IBM

- * @author Arnaud  Le Hors, IBM

- * @author Neil Graham, IBM

- * @author Michael Glavassevich, IBM

- *

- * @version $Id: $

- */

-public class XML11Char {

-

-    //

-    // Constants

-    //

-

-    /** Character flags for XML 1.1. */

-    private static final byte XML11CHARS [] = new byte [1 << 16];

-

-    /** XML 1.1 Valid character mask. */

-    public static final int MASK_XML11_VALID = 0x01;

-

-    /** XML 1.1 Space character mask. */

-    public static final int MASK_XML11_SPACE = 0x02;

-

-    /** XML 1.1 Name start character mask. */

-    public static final int MASK_XML11_NAME_START = 0x04;

-

-    /** XML 1.1 Name character mask. */

-    public static final int MASK_XML11_NAME = 0x08;

-

-    /** XML 1.1 control character mask */

-    public static final int MASK_XML11_CONTROL = 0x10;

-

-    /** XML 1.1 content for external entities (valid - "special" chars - control chars) */

-    public static final int MASK_XML11_CONTENT = 0x20;

-

-    /** XML namespaces 1.1 NCNameStart */

-    public static final int MASK_XML11_NCNAME_START = 0x40;

-

-    /** XML namespaces 1.1 NCName */

-    public static final int MASK_XML11_NCNAME = 0x80;

-    

-    /** XML 1.1 content for internal entities (valid - "special" chars) */

-    public static final int MASK_XML11_CONTENT_INTERNAL = MASK_XML11_CONTROL | MASK_XML11_CONTENT; 

-

-    //

-    // Static initialization

-    //

-

-    static {

-    	

-        // Initializing the Character Flag Array

-        // Code generated by: XML11CharGenerator.

-        

-        Arrays.fill(XML11CHARS, 1, 9, (byte) 17 ); // Fill 8 of value (byte) 17

-        XML11CHARS[9] = 35;

-        XML11CHARS[10] = 3;

-        Arrays.fill(XML11CHARS, 11, 13, (byte) 17 ); // Fill 2 of value (byte) 17

-        XML11CHARS[13] = 3;

-        Arrays.fill(XML11CHARS, 14, 32, (byte) 17 ); // Fill 18 of value (byte) 17

-        XML11CHARS[32] = 35;

-        Arrays.fill(XML11CHARS, 33, 38, (byte) 33 ); // Fill 5 of value (byte) 33

-        XML11CHARS[38] = 1;

-        Arrays.fill(XML11CHARS, 39, 45, (byte) 33 ); // Fill 6 of value (byte) 33

-        Arrays.fill(XML11CHARS, 45, 47, (byte) -87 ); // Fill 2 of value (byte) -87

-        XML11CHARS[47] = 33;

-        Arrays.fill(XML11CHARS, 48, 58, (byte) -87 ); // Fill 10 of value (byte) -87

-        XML11CHARS[58] = 45;

-        XML11CHARS[59] = 33;

-        XML11CHARS[60] = 1;

-        Arrays.fill(XML11CHARS, 61, 65, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(XML11CHARS, 65, 91, (byte) -19 ); // Fill 26 of value (byte) -19

-        Arrays.fill(XML11CHARS, 91, 93, (byte) 33 ); // Fill 2 of value (byte) 33

-        XML11CHARS[93] = 1;

-        XML11CHARS[94] = 33;

-        XML11CHARS[95] = -19;

-        XML11CHARS[96] = 33;

-        Arrays.fill(XML11CHARS, 97, 123, (byte) -19 ); // Fill 26 of value (byte) -19

-        Arrays.fill(XML11CHARS, 123, 127, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(XML11CHARS, 127, 133, (byte) 17 ); // Fill 6 of value (byte) 17

-        XML11CHARS[133] = 35;

-        Arrays.fill(XML11CHARS, 134, 160, (byte) 17 ); // Fill 26 of value (byte) 17

-        Arrays.fill(XML11CHARS, 160, 183, (byte) 33 ); // Fill 23 of value (byte) 33

-        XML11CHARS[183] = -87;

-        Arrays.fill(XML11CHARS, 184, 192, (byte) 33 ); // Fill 8 of value (byte) 33

-        Arrays.fill(XML11CHARS, 192, 215, (byte) -19 ); // Fill 23 of value (byte) -19

-        XML11CHARS[215] = 33;

-        Arrays.fill(XML11CHARS, 216, 247, (byte) -19 ); // Fill 31 of value (byte) -19

-        XML11CHARS[247] = 33;

-        Arrays.fill(XML11CHARS, 248, 768, (byte) -19 ); // Fill 520 of value (byte) -19

-        Arrays.fill(XML11CHARS, 768, 880, (byte) -87 ); // Fill 112 of value (byte) -87

-        Arrays.fill(XML11CHARS, 880, 894, (byte) -19 ); // Fill 14 of value (byte) -19

-        XML11CHARS[894] = 33;

-        Arrays.fill(XML11CHARS, 895, 8192, (byte) -19 ); // Fill 7297 of value (byte) -19

-        Arrays.fill(XML11CHARS, 8192, 8204, (byte) 33 ); // Fill 12 of value (byte) 33

-        Arrays.fill(XML11CHARS, 8204, 8206, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(XML11CHARS, 8206, 8232, (byte) 33 ); // Fill 26 of value (byte) 33

-        XML11CHARS[8232] = 35;

-        Arrays.fill(XML11CHARS, 8233, 8255, (byte) 33 ); // Fill 22 of value (byte) 33

-        Arrays.fill(XML11CHARS, 8255, 8257, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(XML11CHARS, 8257, 8304, (byte) 33 ); // Fill 47 of value (byte) 33

-        Arrays.fill(XML11CHARS, 8304, 8592, (byte) -19 ); // Fill 288 of value (byte) -19

-        Arrays.fill(XML11CHARS, 8592, 11264, (byte) 33 ); // Fill 2672 of value (byte) 33

-        Arrays.fill(XML11CHARS, 11264, 12272, (byte) -19 ); // Fill 1008 of value (byte) -19

-        Arrays.fill(XML11CHARS, 12272, 12289, (byte) 33 ); // Fill 17 of value (byte) 33

-        Arrays.fill(XML11CHARS, 12289, 55296, (byte) -19 ); // Fill 43007 of value (byte) -19

-        Arrays.fill(XML11CHARS, 57344, 63744, (byte) 33 ); // Fill 6400 of value (byte) 33

-        Arrays.fill(XML11CHARS, 63744, 64976, (byte) -19 ); // Fill 1232 of value (byte) -19

-        Arrays.fill(XML11CHARS, 64976, 65008, (byte) 33 ); // Fill 32 of value (byte) 33

-        Arrays.fill(XML11CHARS, 65008, 65534, (byte) -19 ); // Fill 526 of value (byte) -19

-

-    } // <clinit>()

-

-    //

-    // Public static methods

-    //

-

-    /**

-     * Returns true if the specified character is a space character

-     * as amdended in the XML 1.1 specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11Space(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_SPACE) != 0);

-    } // isXML11Space(int):boolean

-

-    /**

-     * Returns true if the specified character is valid. This method

-     * also checks the surrogate character range from 0x10000 to 0x10FFFF.

-     * <p>

-     * If the program chooses to apply the mask directly to the

-     * <code>XML11CHARS</code> array, then they are responsible for checking

-     * the surrogate character range.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11Valid(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_VALID) != 0) 

-                || (0x10000 <= c && c <= 0x10FFFF);

-    } // isXML11Valid(int):boolean

-

-    /**

-     * Returns true if the specified character is invalid.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11Invalid(int c) {

-        return !isXML11Valid(c);

-    } // isXML11Invalid(int):boolean

-

-    /**

-     * Returns true if the specified character is valid and permitted outside

-     * of a character reference.  

-     * That is, this method will return false for the same set as

-     * isXML11Valid, except it also reports false for "control characters".

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11ValidLiteral(int c) {

-        return ((c < 0x10000 && ((XML11CHARS[c] & MASK_XML11_VALID) != 0 && (XML11CHARS[c] & MASK_XML11_CONTROL) == 0))

-            || (0x10000 <= c && c <= 0x10FFFF)); 

-    } // isXML11ValidLiteral(int):boolean

-

-    /**

-     * Returns true if the specified character can be considered 

-     * content in an external parsed entity.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11Content(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_CONTENT) != 0) ||

-               (0x10000 <= c && c <= 0x10FFFF);

-    } // isXML11Content(int):boolean

-    

-    /**

-     * Returns true if the specified character can be considered 

-     * content in an internal parsed entity.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11InternalEntityContent(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_CONTENT_INTERNAL) != 0) ||

-               (0x10000 <= c && c <= 0x10FFFF);

-    } // isXML11InternalEntityContent(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid name start

-     * character as defined by production [4] in the XML 1.1

-     * specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11NameStart(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NAME_START) != 0)

-            || (0x10000 <= c && c < 0xF0000);

-    } // isXML11NameStart(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid name

-     * character as defined by production [4a] in the XML 1.1

-     * specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11Name(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NAME) != 0) 

-            || (c >= 0x10000 && c < 0xF0000);

-    } // isXML11Name(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid NCName start

-     * character as defined by production [4] in Namespaces in XML

-     * 1.1 recommendation.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11NCNameStart(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NCNAME_START) != 0)

-            || (0x10000 <= c && c < 0xF0000);

-    } // isXML11NCNameStart(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid NCName

-     * character as defined by production [5] in Namespaces in XML

-     * 1.1 recommendation.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11NCName(int c) {

-        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NCNAME) != 0)

-            || (0x10000 <= c && c < 0xF0000);

-    } // isXML11NCName(int):boolean

-    

-    /**

-     * Returns whether the given character is a valid 

-     * high surrogate for a name character. This includes

-     * all high surrogates for characters [0x10000-0xEFFFF].

-     * In other words everything excluding planes 15 and 16.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isXML11NameHighSurrogate(int c) {

-        return (0xD800 <= c && c <= 0xDB7F);

-    }

-

-    /*

-     * [5] Name ::= NameStartChar NameChar*

-     */

-    /**

-     * Check to see if a string is a valid Name according to [5]

-     * in the XML 1.1 Recommendation

-     *

-     * @param name string to check

-     * @return true if name is a valid Name

-     */

-    public static boolean isXML11ValidName(String name) {

-        int length = name.length();

-        if (length == 0)

-            return false;

-        int i = 1;

-        char ch = name.charAt(0);

-        if( !isXML11NameStart(ch) ) {

-            if ( length > 1 && isXML11NameHighSurrogate(ch) ) {

-                char ch2 = name.charAt(1);

-                if ( !XMLChar.isLowSurrogate(ch2) || 

-                     !isXML11NameStart(XMLChar.supplemental(ch, ch2)) ) {

-                    return false;

-                }

-                i = 2;

-            }

-            else {

-                return false;

-            }

-        }

-        while (i < length) {

-            ch = name.charAt(i);

-            if ( !isXML11Name(ch) ) {

-                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {

-                    char ch2 = name.charAt(i);

-                    if ( !XMLChar.isLowSurrogate(ch2) || 

-                         !isXML11Name(XMLChar.supplemental(ch, ch2)) ) {

-                        return false;

-                    }

-                }

-                else {

-                    return false;

-                }

-            }

-            ++i;

-        }

-        return true;

-    } // isXML11ValidName(String):boolean

-    

-

-    /*

-     * from the namespace 1.1 rec

-     * [4] NCName ::= NCNameStartChar NCNameChar*

-     */

-    /**

-     * Check to see if a string is a valid NCName according to [4]

-     * from the XML Namespaces 1.1 Recommendation

-     *

-     * @param ncName string to check

-     * @return true if name is a valid NCName

-     */

-    public static boolean isXML11ValidNCName(String ncName) {

-        int length = ncName.length();

-        if (length == 0)

-            return false;

-        int i = 1;

-        char ch = ncName.charAt(0);

-        if( !isXML11NCNameStart(ch) ) {

-            if ( length > 1 && isXML11NameHighSurrogate(ch) ) {

-                char ch2 = ncName.charAt(1);

-                if ( !XMLChar.isLowSurrogate(ch2) || 

-                     !isXML11NCNameStart(XMLChar.supplemental(ch, ch2)) ) {

-                    return false;

-                }

-                i = 2;

-            }

-            else {

-                return false;

-            }

-        }

-        while (i < length) {

-            ch = ncName.charAt(i);

-            if ( !isXML11NCName(ch) ) {

-                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {

-                    char ch2 = ncName.charAt(i);

-                    if ( !XMLChar.isLowSurrogate(ch2) || 

-                         !isXML11NCName(XMLChar.supplemental(ch, ch2)) ) {

-                        return false;

-                    }

-                }

-                else {

-                    return false;

-                }

-            }

-            ++i;

-        }

-        return true;

-    } // isXML11ValidNCName(String):boolean

-

-    /*

-     * [7] Nmtoken ::= (NameChar)+

-     */

-    /**

-     * Check to see if a string is a valid Nmtoken according to [7]

-     * in the XML 1.1 Recommendation

-     *

-     * @param nmtoken string to check

-     * @return true if nmtoken is a valid Nmtoken 

-     */

-    public static boolean isXML11ValidNmtoken(String nmtoken) {

-        int length = nmtoken.length();

-        if (length == 0)

-            return false;

-        for (int i = 0; i < length; ++i ) {

-            char ch = nmtoken.charAt(i);

-            if( !isXML11Name(ch) ) {

-                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {

-                    char ch2 = nmtoken.charAt(i);

-                    if ( !XMLChar.isLowSurrogate(ch2) || 

-                         !isXML11Name(XMLChar.supplemental(ch, ch2)) ) {

-                        return false;

-                    }

-                }

-                else {

-                    return false;

-                }

-            }

-        }

-        return true;

-    } // isXML11ValidName(String):boolean

-

-} // class XML11Char

-

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.xml.serializer.utils;
+
+import java.util.Arrays;
+
+/**
+ * THIS IS A COPY OF THE XERCES-2J CLASS org.apache.xerces.utls.XMLChar
+ *  
+ * This class defines the basic properties of characters in XML 1.1. The data
+ * in this class can be used to verify that a character is a valid
+ * XML 1.1 character or if the character is a space, name start, or name
+ * character.
+ * <p>
+ * A series of convenience methods are supplied to ease the burden
+ * of the developer.  Using the character as an index into the <code>XML11CHARS</code>
+ * array and applying the appropriate mask flag (e.g.
+ * <code>MASK_VALID</code>), yields the same results as calling the
+ * convenience methods. There is one exception: check the comments
+ * for the <code>isValid</code> method for details.
+ *
+ * @author Glenn Marcy, IBM
+ * @author Andy Clark, IBM
+ * @author Arnaud  Le Hors, IBM
+ * @author Neil Graham, IBM
+ * @author Michael Glavassevich, IBM
+ *
+ * @version $Id$
+ */
+public class XML11Char {
+
+    //
+    // Constants
+    //
+
+    /** Character flags for XML 1.1. */
+    private static final byte XML11CHARS [] = new byte [1 << 16];
+
+    /** XML 1.1 Valid character mask. */
+    public static final int MASK_XML11_VALID = 0x01;
+
+    /** XML 1.1 Space character mask. */
+    public static final int MASK_XML11_SPACE = 0x02;
+
+    /** XML 1.1 Name start character mask. */
+    public static final int MASK_XML11_NAME_START = 0x04;
+
+    /** XML 1.1 Name character mask. */
+    public static final int MASK_XML11_NAME = 0x08;
+
+    /** XML 1.1 control character mask */
+    public static final int MASK_XML11_CONTROL = 0x10;
+
+    /** XML 1.1 content for external entities (valid - "special" chars - control chars) */
+    public static final int MASK_XML11_CONTENT = 0x20;
+
+    /** XML namespaces 1.1 NCNameStart */
+    public static final int MASK_XML11_NCNAME_START = 0x40;
+
+    /** XML namespaces 1.1 NCName */
+    public static final int MASK_XML11_NCNAME = 0x80;
+    
+    /** XML 1.1 content for internal entities (valid - "special" chars) */
+    public static final int MASK_XML11_CONTENT_INTERNAL = MASK_XML11_CONTROL | MASK_XML11_CONTENT; 
+
+    //
+    // Static initialization
+    //
+
+    static {
+    	
+        // Initializing the Character Flag Array
+        // Code generated by: XML11CharGenerator.
+        
+        Arrays.fill(XML11CHARS, 1, 9, (byte) 17 ); // Fill 8 of value (byte) 17
+        XML11CHARS[9] = 35;
+        XML11CHARS[10] = 3;
+        Arrays.fill(XML11CHARS, 11, 13, (byte) 17 ); // Fill 2 of value (byte) 17
+        XML11CHARS[13] = 3;
+        Arrays.fill(XML11CHARS, 14, 32, (byte) 17 ); // Fill 18 of value (byte) 17
+        XML11CHARS[32] = 35;
+        Arrays.fill(XML11CHARS, 33, 38, (byte) 33 ); // Fill 5 of value (byte) 33
+        XML11CHARS[38] = 1;
+        Arrays.fill(XML11CHARS, 39, 45, (byte) 33 ); // Fill 6 of value (byte) 33
+        Arrays.fill(XML11CHARS, 45, 47, (byte) -87 ); // Fill 2 of value (byte) -87
+        XML11CHARS[47] = 33;
+        Arrays.fill(XML11CHARS, 48, 58, (byte) -87 ); // Fill 10 of value (byte) -87
+        XML11CHARS[58] = 45;
+        XML11CHARS[59] = 33;
+        XML11CHARS[60] = 1;
+        Arrays.fill(XML11CHARS, 61, 65, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(XML11CHARS, 65, 91, (byte) -19 ); // Fill 26 of value (byte) -19
+        Arrays.fill(XML11CHARS, 91, 93, (byte) 33 ); // Fill 2 of value (byte) 33
+        XML11CHARS[93] = 1;
+        XML11CHARS[94] = 33;
+        XML11CHARS[95] = -19;
+        XML11CHARS[96] = 33;
+        Arrays.fill(XML11CHARS, 97, 123, (byte) -19 ); // Fill 26 of value (byte) -19
+        Arrays.fill(XML11CHARS, 123, 127, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(XML11CHARS, 127, 133, (byte) 17 ); // Fill 6 of value (byte) 17
+        XML11CHARS[133] = 35;
+        Arrays.fill(XML11CHARS, 134, 160, (byte) 17 ); // Fill 26 of value (byte) 17
+        Arrays.fill(XML11CHARS, 160, 183, (byte) 33 ); // Fill 23 of value (byte) 33
+        XML11CHARS[183] = -87;
+        Arrays.fill(XML11CHARS, 184, 192, (byte) 33 ); // Fill 8 of value (byte) 33
+        Arrays.fill(XML11CHARS, 192, 215, (byte) -19 ); // Fill 23 of value (byte) -19
+        XML11CHARS[215] = 33;
+        Arrays.fill(XML11CHARS, 216, 247, (byte) -19 ); // Fill 31 of value (byte) -19
+        XML11CHARS[247] = 33;
+        Arrays.fill(XML11CHARS, 248, 768, (byte) -19 ); // Fill 520 of value (byte) -19
+        Arrays.fill(XML11CHARS, 768, 880, (byte) -87 ); // Fill 112 of value (byte) -87
+        Arrays.fill(XML11CHARS, 880, 894, (byte) -19 ); // Fill 14 of value (byte) -19
+        XML11CHARS[894] = 33;
+        Arrays.fill(XML11CHARS, 895, 8192, (byte) -19 ); // Fill 7297 of value (byte) -19
+        Arrays.fill(XML11CHARS, 8192, 8204, (byte) 33 ); // Fill 12 of value (byte) 33
+        Arrays.fill(XML11CHARS, 8204, 8206, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(XML11CHARS, 8206, 8232, (byte) 33 ); // Fill 26 of value (byte) 33
+        XML11CHARS[8232] = 35;
+        Arrays.fill(XML11CHARS, 8233, 8255, (byte) 33 ); // Fill 22 of value (byte) 33
+        Arrays.fill(XML11CHARS, 8255, 8257, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(XML11CHARS, 8257, 8304, (byte) 33 ); // Fill 47 of value (byte) 33
+        Arrays.fill(XML11CHARS, 8304, 8592, (byte) -19 ); // Fill 288 of value (byte) -19
+        Arrays.fill(XML11CHARS, 8592, 11264, (byte) 33 ); // Fill 2672 of value (byte) 33
+        Arrays.fill(XML11CHARS, 11264, 12272, (byte) -19 ); // Fill 1008 of value (byte) -19
+        Arrays.fill(XML11CHARS, 12272, 12289, (byte) 33 ); // Fill 17 of value (byte) 33
+        Arrays.fill(XML11CHARS, 12289, 55296, (byte) -19 ); // Fill 43007 of value (byte) -19
+        Arrays.fill(XML11CHARS, 57344, 63744, (byte) 33 ); // Fill 6400 of value (byte) 33
+        Arrays.fill(XML11CHARS, 63744, 64976, (byte) -19 ); // Fill 1232 of value (byte) -19
+        Arrays.fill(XML11CHARS, 64976, 65008, (byte) 33 ); // Fill 32 of value (byte) 33
+        Arrays.fill(XML11CHARS, 65008, 65534, (byte) -19 ); // Fill 526 of value (byte) -19
+
+    } // <clinit>()
+
+    //
+    // Public static methods
+    //
+
+    /**
+     * Returns true if the specified character is a space character
+     * as amdended in the XML 1.1 specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11Space(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_SPACE) != 0);
+    } // isXML11Space(int):boolean
+
+    /**
+     * Returns true if the specified character is valid. This method
+     * also checks the surrogate character range from 0x10000 to 0x10FFFF.
+     * <p>
+     * If the program chooses to apply the mask directly to the
+     * <code>XML11CHARS</code> array, then they are responsible for checking
+     * the surrogate character range.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11Valid(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_VALID) != 0) 
+                || (0x10000 <= c && c <= 0x10FFFF);
+    } // isXML11Valid(int):boolean
+
+    /**
+     * Returns true if the specified character is invalid.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11Invalid(int c) {
+        return !isXML11Valid(c);
+    } // isXML11Invalid(int):boolean
+
+    /**
+     * Returns true if the specified character is valid and permitted outside
+     * of a character reference.  
+     * That is, this method will return false for the same set as
+     * isXML11Valid, except it also reports false for "control characters".
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11ValidLiteral(int c) {
+        return ((c < 0x10000 && ((XML11CHARS[c] & MASK_XML11_VALID) != 0 && (XML11CHARS[c] & MASK_XML11_CONTROL) == 0))
+            || (0x10000 <= c && c <= 0x10FFFF)); 
+    } // isXML11ValidLiteral(int):boolean
+
+    /**
+     * Returns true if the specified character can be considered 
+     * content in an external parsed entity.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11Content(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_CONTENT) != 0) ||
+               (0x10000 <= c && c <= 0x10FFFF);
+    } // isXML11Content(int):boolean
+    
+    /**
+     * Returns true if the specified character can be considered 
+     * content in an internal parsed entity.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11InternalEntityContent(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_CONTENT_INTERNAL) != 0) ||
+               (0x10000 <= c && c <= 0x10FFFF);
+    } // isXML11InternalEntityContent(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid name start
+     * character as defined by production [4] in the XML 1.1
+     * specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11NameStart(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NAME_START) != 0)
+            || (0x10000 <= c && c < 0xF0000);
+    } // isXML11NameStart(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid name
+     * character as defined by production [4a] in the XML 1.1
+     * specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11Name(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NAME) != 0) 
+            || (c >= 0x10000 && c < 0xF0000);
+    } // isXML11Name(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid NCName start
+     * character as defined by production [4] in Namespaces in XML
+     * 1.1 recommendation.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11NCNameStart(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NCNAME_START) != 0)
+            || (0x10000 <= c && c < 0xF0000);
+    } // isXML11NCNameStart(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid NCName
+     * character as defined by production [5] in Namespaces in XML
+     * 1.1 recommendation.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11NCName(int c) {
+        return (c < 0x10000 && (XML11CHARS[c] & MASK_XML11_NCNAME) != 0)
+            || (0x10000 <= c && c < 0xF0000);
+    } // isXML11NCName(int):boolean
+    
+    /**
+     * Returns whether the given character is a valid 
+     * high surrogate for a name character. This includes
+     * all high surrogates for characters [0x10000-0xEFFFF].
+     * In other words everything excluding planes 15 and 16.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isXML11NameHighSurrogate(int c) {
+        return (0xD800 <= c && c <= 0xDB7F);
+    }
+
+    /*
+     * [5] Name ::= NameStartChar NameChar*
+     */
+    /**
+     * Check to see if a string is a valid Name according to [5]
+     * in the XML 1.1 Recommendation
+     *
+     * @param name string to check
+     * @return true if name is a valid Name
+     */
+    public static boolean isXML11ValidName(String name) {
+        int length = name.length();
+        if (length == 0)
+            return false;
+        int i = 1;
+        char ch = name.charAt(0);
+        if( !isXML11NameStart(ch) ) {
+            if ( length > 1 && isXML11NameHighSurrogate(ch) ) {
+                char ch2 = name.charAt(1);
+                if ( !XMLChar.isLowSurrogate(ch2) || 
+                     !isXML11NameStart(XMLChar.supplemental(ch, ch2)) ) {
+                    return false;
+                }
+                i = 2;
+            }
+            else {
+                return false;
+            }
+        }
+        while (i < length) {
+            ch = name.charAt(i);
+            if ( !isXML11Name(ch) ) {
+                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {
+                    char ch2 = name.charAt(i);
+                    if ( !XMLChar.isLowSurrogate(ch2) || 
+                         !isXML11Name(XMLChar.supplemental(ch, ch2)) ) {
+                        return false;
+                    }
+                }
+                else {
+                    return false;
+                }
+            }
+            ++i;
+        }
+        return true;
+    } // isXML11ValidName(String):boolean
+    
+
+    /*
+     * from the namespace 1.1 rec
+     * [4] NCName ::= NCNameStartChar NCNameChar*
+     */
+    /**
+     * Check to see if a string is a valid NCName according to [4]
+     * from the XML Namespaces 1.1 Recommendation
+     *
+     * @param ncName string to check
+     * @return true if name is a valid NCName
+     */
+    public static boolean isXML11ValidNCName(String ncName) {
+        int length = ncName.length();
+        if (length == 0)
+            return false;
+        int i = 1;
+        char ch = ncName.charAt(0);
+        if( !isXML11NCNameStart(ch) ) {
+            if ( length > 1 && isXML11NameHighSurrogate(ch) ) {
+                char ch2 = ncName.charAt(1);
+                if ( !XMLChar.isLowSurrogate(ch2) || 
+                     !isXML11NCNameStart(XMLChar.supplemental(ch, ch2)) ) {
+                    return false;
+                }
+                i = 2;
+            }
+            else {
+                return false;
+            }
+        }
+        while (i < length) {
+            ch = ncName.charAt(i);
+            if ( !isXML11NCName(ch) ) {
+                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {
+                    char ch2 = ncName.charAt(i);
+                    if ( !XMLChar.isLowSurrogate(ch2) || 
+                         !isXML11NCName(XMLChar.supplemental(ch, ch2)) ) {
+                        return false;
+                    }
+                }
+                else {
+                    return false;
+                }
+            }
+            ++i;
+        }
+        return true;
+    } // isXML11ValidNCName(String):boolean
+
+    /*
+     * [7] Nmtoken ::= (NameChar)+
+     */
+    /**
+     * Check to see if a string is a valid Nmtoken according to [7]
+     * in the XML 1.1 Recommendation
+     *
+     * @param nmtoken string to check
+     * @return true if nmtoken is a valid Nmtoken 
+     */
+    public static boolean isXML11ValidNmtoken(String nmtoken) {
+        int length = nmtoken.length();
+        if (length == 0)
+            return false;
+        for (int i = 0; i < length; ++i ) {
+            char ch = nmtoken.charAt(i);
+            if( !isXML11Name(ch) ) {
+                if ( ++i < length && isXML11NameHighSurrogate(ch) ) {
+                    char ch2 = nmtoken.charAt(i);
+                    if ( !XMLChar.isLowSurrogate(ch2) || 
+                         !isXML11Name(XMLChar.supplemental(ch, ch2)) ) {
+                        return false;
+                    }
+                }
+                else {
+                    return false;
+                }
+            }
+        }
+        return true;
+    } // isXML11ValidName(String):boolean
+
+} // class XML11Char
+
diff --git a/src/org/apache/xml/serializer/utils/XMLChar.java b/src/org/apache/xml/serializer/utils/XMLChar.java
index 313dd10..a0d8c85 100644
--- a/src/org/apache/xml/serializer/utils/XMLChar.java
+++ b/src/org/apache/xml/serializer/utils/XMLChar.java
@@ -1,1026 +1,1026 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-

-package org.apache.xml.serializer.utils;

-

-import java.util.Arrays;

-

-/**

- * THIS IS A COPY OF THE XERCES-2J CLASS org.apache.xerces.utls.XMLChar

- * 

- * This class defines the basic XML character properties. The data

- * in this class can be used to verify that a character is a valid

- * XML character or if the character is a space, name start, or name

- * character.

- * <p>

- * A series of convenience methods are supplied to ease the burden

- * of the developer. Because inlining the checks can improve per

- * character performance, the tables of character properties are

- * public. Using the character as an index into the <code>CHARS</code>

- * array and applying the appropriate mask flag (e.g.

- * <code>MASK_VALID</code>), yields the same results as calling the

- * convenience methods. There is one exception: check the comments

- * for the <code>isValid</code> method for details.

- *

- * @author Glenn Marcy, IBM

- * @author Andy Clark, IBM

- * @author Eric Ye, IBM

- * @author Arnaud  Le Hors, IBM

- * @author Michael Glavassevich, IBM

- * @author Rahul Srivastava, Sun Microsystems Inc.

- *

- * @version $Id: $

- */

-public class XMLChar {

-

-    //

-    // Constants

-    //

-

-    /** Character flags. */

-    private static final byte[] CHARS = new byte[1 << 16];

-

-    /** Valid character mask. */

-    public static final int MASK_VALID = 0x01;

-

-    /** Space character mask. */

-    public static final int MASK_SPACE = 0x02;

-

-    /** Name start character mask. */

-    public static final int MASK_NAME_START = 0x04;

-

-    /** Name character mask. */

-    public static final int MASK_NAME = 0x08;

-

-    /** Pubid character mask. */

-    public static final int MASK_PUBID = 0x10;

-    

-    /** 

-     * Content character mask. Special characters are those that can

-     * be considered the start of markup, such as '&lt;' and '&amp;'. 

-     * The various newline characters are considered special as well.

-     * All other valid XML characters can be considered content.

-     * <p>

-     * This is an optimization for the inner loop of character scanning.

-     */

-    public static final int MASK_CONTENT = 0x20;

-

-    /** NCName start character mask. */

-    public static final int MASK_NCNAME_START = 0x40;

-

-    /** NCName character mask. */

-    public static final int MASK_NCNAME = 0x80;

-

-    //

-    // Static initialization

-    //

-

-    static {

-        

-        // Initializing the Character Flag Array

-        // Code generated by: XMLCharGenerator.

-        

-        CHARS[9] = 35;

-        CHARS[10] = 19;

-        CHARS[13] = 19;

-        CHARS[32] = 51;

-        CHARS[33] = 49;

-        CHARS[34] = 33;

-        Arrays.fill(CHARS, 35, 38, (byte) 49 ); // Fill 3 of value (byte) 49

-        CHARS[38] = 1;

-        Arrays.fill(CHARS, 39, 45, (byte) 49 ); // Fill 6 of value (byte) 49

-        Arrays.fill(CHARS, 45, 47, (byte) -71 ); // Fill 2 of value (byte) -71

-        CHARS[47] = 49;

-        Arrays.fill(CHARS, 48, 58, (byte) -71 ); // Fill 10 of value (byte) -71

-        CHARS[58] = 61;

-        CHARS[59] = 49;

-        CHARS[60] = 1;

-        CHARS[61] = 49;

-        CHARS[62] = 33;

-        Arrays.fill(CHARS, 63, 65, (byte) 49 ); // Fill 2 of value (byte) 49

-        Arrays.fill(CHARS, 65, 91, (byte) -3 ); // Fill 26 of value (byte) -3

-        Arrays.fill(CHARS, 91, 93, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[93] = 1;

-        CHARS[94] = 33;

-        CHARS[95] = -3;

-        CHARS[96] = 33;

-        Arrays.fill(CHARS, 97, 123, (byte) -3 ); // Fill 26 of value (byte) -3

-        Arrays.fill(CHARS, 123, 183, (byte) 33 ); // Fill 60 of value (byte) 33

-        CHARS[183] = -87;

-        Arrays.fill(CHARS, 184, 192, (byte) 33 ); // Fill 8 of value (byte) 33

-        Arrays.fill(CHARS, 192, 215, (byte) -19 ); // Fill 23 of value (byte) -19

-        CHARS[215] = 33;

-        Arrays.fill(CHARS, 216, 247, (byte) -19 ); // Fill 31 of value (byte) -19

-        CHARS[247] = 33;

-        Arrays.fill(CHARS, 248, 306, (byte) -19 ); // Fill 58 of value (byte) -19

-        Arrays.fill(CHARS, 306, 308, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 308, 319, (byte) -19 ); // Fill 11 of value (byte) -19

-        Arrays.fill(CHARS, 319, 321, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 321, 329, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[329] = 33;

-        Arrays.fill(CHARS, 330, 383, (byte) -19 ); // Fill 53 of value (byte) -19

-        CHARS[383] = 33;

-        Arrays.fill(CHARS, 384, 452, (byte) -19 ); // Fill 68 of value (byte) -19

-        Arrays.fill(CHARS, 452, 461, (byte) 33 ); // Fill 9 of value (byte) 33

-        Arrays.fill(CHARS, 461, 497, (byte) -19 ); // Fill 36 of value (byte) -19

-        Arrays.fill(CHARS, 497, 500, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 500, 502, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 502, 506, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 506, 536, (byte) -19 ); // Fill 30 of value (byte) -19

-        Arrays.fill(CHARS, 536, 592, (byte) 33 ); // Fill 56 of value (byte) 33

-        Arrays.fill(CHARS, 592, 681, (byte) -19 ); // Fill 89 of value (byte) -19

-        Arrays.fill(CHARS, 681, 699, (byte) 33 ); // Fill 18 of value (byte) 33

-        Arrays.fill(CHARS, 699, 706, (byte) -19 ); // Fill 7 of value (byte) -19

-        Arrays.fill(CHARS, 706, 720, (byte) 33 ); // Fill 14 of value (byte) 33

-        Arrays.fill(CHARS, 720, 722, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 722, 768, (byte) 33 ); // Fill 46 of value (byte) 33

-        Arrays.fill(CHARS, 768, 838, (byte) -87 ); // Fill 70 of value (byte) -87

-        Arrays.fill(CHARS, 838, 864, (byte) 33 ); // Fill 26 of value (byte) 33

-        Arrays.fill(CHARS, 864, 866, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 866, 902, (byte) 33 ); // Fill 36 of value (byte) 33

-        CHARS[902] = -19;

-        CHARS[903] = -87;

-        Arrays.fill(CHARS, 904, 907, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[907] = 33;

-        CHARS[908] = -19;

-        CHARS[909] = 33;

-        Arrays.fill(CHARS, 910, 930, (byte) -19 ); // Fill 20 of value (byte) -19

-        CHARS[930] = 33;

-        Arrays.fill(CHARS, 931, 975, (byte) -19 ); // Fill 44 of value (byte) -19

-        CHARS[975] = 33;

-        Arrays.fill(CHARS, 976, 983, (byte) -19 ); // Fill 7 of value (byte) -19

-        Arrays.fill(CHARS, 983, 986, (byte) 33 ); // Fill 3 of value (byte) 33

-        CHARS[986] = -19;

-        CHARS[987] = 33;

-        CHARS[988] = -19;

-        CHARS[989] = 33;

-        CHARS[990] = -19;

-        CHARS[991] = 33;

-        CHARS[992] = -19;

-        CHARS[993] = 33;

-        Arrays.fill(CHARS, 994, 1012, (byte) -19 ); // Fill 18 of value (byte) -19

-        Arrays.fill(CHARS, 1012, 1025, (byte) 33 ); // Fill 13 of value (byte) 33

-        Arrays.fill(CHARS, 1025, 1037, (byte) -19 ); // Fill 12 of value (byte) -19

-        CHARS[1037] = 33;

-        Arrays.fill(CHARS, 1038, 1104, (byte) -19 ); // Fill 66 of value (byte) -19

-        CHARS[1104] = 33;

-        Arrays.fill(CHARS, 1105, 1117, (byte) -19 ); // Fill 12 of value (byte) -19

-        CHARS[1117] = 33;

-        Arrays.fill(CHARS, 1118, 1154, (byte) -19 ); // Fill 36 of value (byte) -19

-        CHARS[1154] = 33;

-        Arrays.fill(CHARS, 1155, 1159, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 1159, 1168, (byte) 33 ); // Fill 9 of value (byte) 33

-        Arrays.fill(CHARS, 1168, 1221, (byte) -19 ); // Fill 53 of value (byte) -19

-        Arrays.fill(CHARS, 1221, 1223, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 1223, 1225, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 1225, 1227, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 1227, 1229, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 1229, 1232, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 1232, 1260, (byte) -19 ); // Fill 28 of value (byte) -19

-        Arrays.fill(CHARS, 1260, 1262, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 1262, 1270, (byte) -19 ); // Fill 8 of value (byte) -19

-        Arrays.fill(CHARS, 1270, 1272, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 1272, 1274, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 1274, 1329, (byte) 33 ); // Fill 55 of value (byte) 33

-        Arrays.fill(CHARS, 1329, 1367, (byte) -19 ); // Fill 38 of value (byte) -19

-        Arrays.fill(CHARS, 1367, 1369, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[1369] = -19;

-        Arrays.fill(CHARS, 1370, 1377, (byte) 33 ); // Fill 7 of value (byte) 33

-        Arrays.fill(CHARS, 1377, 1415, (byte) -19 ); // Fill 38 of value (byte) -19

-        Arrays.fill(CHARS, 1415, 1425, (byte) 33 ); // Fill 10 of value (byte) 33

-        Arrays.fill(CHARS, 1425, 1442, (byte) -87 ); // Fill 17 of value (byte) -87

-        CHARS[1442] = 33;

-        Arrays.fill(CHARS, 1443, 1466, (byte) -87 ); // Fill 23 of value (byte) -87

-        CHARS[1466] = 33;

-        Arrays.fill(CHARS, 1467, 1470, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[1470] = 33;

-        CHARS[1471] = -87;

-        CHARS[1472] = 33;

-        Arrays.fill(CHARS, 1473, 1475, (byte) -87 ); // Fill 2 of value (byte) -87

-        CHARS[1475] = 33;

-        CHARS[1476] = -87;

-        Arrays.fill(CHARS, 1477, 1488, (byte) 33 ); // Fill 11 of value (byte) 33

-        Arrays.fill(CHARS, 1488, 1515, (byte) -19 ); // Fill 27 of value (byte) -19

-        Arrays.fill(CHARS, 1515, 1520, (byte) 33 ); // Fill 5 of value (byte) 33

-        Arrays.fill(CHARS, 1520, 1523, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 1523, 1569, (byte) 33 ); // Fill 46 of value (byte) 33

-        Arrays.fill(CHARS, 1569, 1595, (byte) -19 ); // Fill 26 of value (byte) -19

-        Arrays.fill(CHARS, 1595, 1600, (byte) 33 ); // Fill 5 of value (byte) 33

-        CHARS[1600] = -87;

-        Arrays.fill(CHARS, 1601, 1611, (byte) -19 ); // Fill 10 of value (byte) -19

-        Arrays.fill(CHARS, 1611, 1619, (byte) -87 ); // Fill 8 of value (byte) -87

-        Arrays.fill(CHARS, 1619, 1632, (byte) 33 ); // Fill 13 of value (byte) 33

-        Arrays.fill(CHARS, 1632, 1642, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 1642, 1648, (byte) 33 ); // Fill 6 of value (byte) 33

-        CHARS[1648] = -87;

-        Arrays.fill(CHARS, 1649, 1720, (byte) -19 ); // Fill 71 of value (byte) -19

-        Arrays.fill(CHARS, 1720, 1722, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 1722, 1727, (byte) -19 ); // Fill 5 of value (byte) -19

-        CHARS[1727] = 33;

-        Arrays.fill(CHARS, 1728, 1743, (byte) -19 ); // Fill 15 of value (byte) -19

-        CHARS[1743] = 33;

-        Arrays.fill(CHARS, 1744, 1748, (byte) -19 ); // Fill 4 of value (byte) -19

-        CHARS[1748] = 33;

-        CHARS[1749] = -19;

-        Arrays.fill(CHARS, 1750, 1765, (byte) -87 ); // Fill 15 of value (byte) -87

-        Arrays.fill(CHARS, 1765, 1767, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 1767, 1769, (byte) -87 ); // Fill 2 of value (byte) -87

-        CHARS[1769] = 33;

-        Arrays.fill(CHARS, 1770, 1774, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 1774, 1776, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 1776, 1786, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 1786, 2305, (byte) 33 ); // Fill 519 of value (byte) 33

-        Arrays.fill(CHARS, 2305, 2308, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[2308] = 33;

-        Arrays.fill(CHARS, 2309, 2362, (byte) -19 ); // Fill 53 of value (byte) -19

-        Arrays.fill(CHARS, 2362, 2364, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[2364] = -87;

-        CHARS[2365] = -19;

-        Arrays.fill(CHARS, 2366, 2382, (byte) -87 ); // Fill 16 of value (byte) -87

-        Arrays.fill(CHARS, 2382, 2385, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2385, 2389, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 2389, 2392, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2392, 2402, (byte) -19 ); // Fill 10 of value (byte) -19

-        Arrays.fill(CHARS, 2402, 2404, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 2404, 2406, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2406, 2416, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 2416, 2433, (byte) 33 ); // Fill 17 of value (byte) 33

-        Arrays.fill(CHARS, 2433, 2436, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[2436] = 33;

-        Arrays.fill(CHARS, 2437, 2445, (byte) -19 ); // Fill 8 of value (byte) -19

-        Arrays.fill(CHARS, 2445, 2447, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2447, 2449, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2449, 2451, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2451, 2473, (byte) -19 ); // Fill 22 of value (byte) -19

-        CHARS[2473] = 33;

-        Arrays.fill(CHARS, 2474, 2481, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[2481] = 33;

-        CHARS[2482] = -19;

-        Arrays.fill(CHARS, 2483, 2486, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2486, 2490, (byte) -19 ); // Fill 4 of value (byte) -19

-        Arrays.fill(CHARS, 2490, 2492, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[2492] = -87;

-        CHARS[2493] = 33;

-        Arrays.fill(CHARS, 2494, 2501, (byte) -87 ); // Fill 7 of value (byte) -87

-        Arrays.fill(CHARS, 2501, 2503, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2503, 2505, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 2505, 2507, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2507, 2510, (byte) -87 ); // Fill 3 of value (byte) -87

-        Arrays.fill(CHARS, 2510, 2519, (byte) 33 ); // Fill 9 of value (byte) 33

-        CHARS[2519] = -87;

-        Arrays.fill(CHARS, 2520, 2524, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 2524, 2526, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[2526] = 33;

-        Arrays.fill(CHARS, 2527, 2530, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 2530, 2532, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 2532, 2534, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2534, 2544, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 2544, 2546, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2546, 2562, (byte) 33 ); // Fill 16 of value (byte) 33

-        CHARS[2562] = -87;

-        Arrays.fill(CHARS, 2563, 2565, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2565, 2571, (byte) -19 ); // Fill 6 of value (byte) -19

-        Arrays.fill(CHARS, 2571, 2575, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 2575, 2577, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2577, 2579, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2579, 2601, (byte) -19 ); // Fill 22 of value (byte) -19

-        CHARS[2601] = 33;

-        Arrays.fill(CHARS, 2602, 2609, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[2609] = 33;

-        Arrays.fill(CHARS, 2610, 2612, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[2612] = 33;

-        Arrays.fill(CHARS, 2613, 2615, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[2615] = 33;

-        Arrays.fill(CHARS, 2616, 2618, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2618, 2620, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[2620] = -87;

-        CHARS[2621] = 33;

-        Arrays.fill(CHARS, 2622, 2627, (byte) -87 ); // Fill 5 of value (byte) -87

-        Arrays.fill(CHARS, 2627, 2631, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 2631, 2633, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 2633, 2635, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2635, 2638, (byte) -87 ); // Fill 3 of value (byte) -87

-        Arrays.fill(CHARS, 2638, 2649, (byte) 33 ); // Fill 11 of value (byte) 33

-        Arrays.fill(CHARS, 2649, 2653, (byte) -19 ); // Fill 4 of value (byte) -19

-        CHARS[2653] = 33;

-        CHARS[2654] = -19;

-        Arrays.fill(CHARS, 2655, 2662, (byte) 33 ); // Fill 7 of value (byte) 33

-        Arrays.fill(CHARS, 2662, 2674, (byte) -87 ); // Fill 12 of value (byte) -87

-        Arrays.fill(CHARS, 2674, 2677, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 2677, 2689, (byte) 33 ); // Fill 12 of value (byte) 33

-        Arrays.fill(CHARS, 2689, 2692, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[2692] = 33;

-        Arrays.fill(CHARS, 2693, 2700, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[2700] = 33;

-        CHARS[2701] = -19;

-        CHARS[2702] = 33;

-        Arrays.fill(CHARS, 2703, 2706, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[2706] = 33;

-        Arrays.fill(CHARS, 2707, 2729, (byte) -19 ); // Fill 22 of value (byte) -19

-        CHARS[2729] = 33;

-        Arrays.fill(CHARS, 2730, 2737, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[2737] = 33;

-        Arrays.fill(CHARS, 2738, 2740, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[2740] = 33;

-        Arrays.fill(CHARS, 2741, 2746, (byte) -19 ); // Fill 5 of value (byte) -19

-        Arrays.fill(CHARS, 2746, 2748, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[2748] = -87;

-        CHARS[2749] = -19;

-        Arrays.fill(CHARS, 2750, 2758, (byte) -87 ); // Fill 8 of value (byte) -87

-        CHARS[2758] = 33;

-        Arrays.fill(CHARS, 2759, 2762, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[2762] = 33;

-        Arrays.fill(CHARS, 2763, 2766, (byte) -87 ); // Fill 3 of value (byte) -87

-        Arrays.fill(CHARS, 2766, 2784, (byte) 33 ); // Fill 18 of value (byte) 33

-        CHARS[2784] = -19;

-        Arrays.fill(CHARS, 2785, 2790, (byte) 33 ); // Fill 5 of value (byte) 33

-        Arrays.fill(CHARS, 2790, 2800, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 2800, 2817, (byte) 33 ); // Fill 17 of value (byte) 33

-        Arrays.fill(CHARS, 2817, 2820, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[2820] = 33;

-        Arrays.fill(CHARS, 2821, 2829, (byte) -19 ); // Fill 8 of value (byte) -19

-        Arrays.fill(CHARS, 2829, 2831, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2831, 2833, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2833, 2835, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2835, 2857, (byte) -19 ); // Fill 22 of value (byte) -19

-        CHARS[2857] = 33;

-        Arrays.fill(CHARS, 2858, 2865, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[2865] = 33;

-        Arrays.fill(CHARS, 2866, 2868, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2868, 2870, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2870, 2874, (byte) -19 ); // Fill 4 of value (byte) -19

-        Arrays.fill(CHARS, 2874, 2876, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[2876] = -87;

-        CHARS[2877] = -19;

-        Arrays.fill(CHARS, 2878, 2884, (byte) -87 ); // Fill 6 of value (byte) -87

-        Arrays.fill(CHARS, 2884, 2887, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2887, 2889, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 2889, 2891, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 2891, 2894, (byte) -87 ); // Fill 3 of value (byte) -87

-        Arrays.fill(CHARS, 2894, 2902, (byte) 33 ); // Fill 8 of value (byte) 33

-        Arrays.fill(CHARS, 2902, 2904, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 2904, 2908, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 2908, 2910, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[2910] = 33;

-        Arrays.fill(CHARS, 2911, 2914, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 2914, 2918, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 2918, 2928, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 2928, 2946, (byte) 33 ); // Fill 18 of value (byte) 33

-        Arrays.fill(CHARS, 2946, 2948, (byte) -87 ); // Fill 2 of value (byte) -87

-        CHARS[2948] = 33;

-        Arrays.fill(CHARS, 2949, 2955, (byte) -19 ); // Fill 6 of value (byte) -19

-        Arrays.fill(CHARS, 2955, 2958, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2958, 2961, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[2961] = 33;

-        Arrays.fill(CHARS, 2962, 2966, (byte) -19 ); // Fill 4 of value (byte) -19

-        Arrays.fill(CHARS, 2966, 2969, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2969, 2971, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[2971] = 33;

-        CHARS[2972] = -19;

-        CHARS[2973] = 33;

-        Arrays.fill(CHARS, 2974, 2976, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2976, 2979, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2979, 2981, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 2981, 2984, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2984, 2987, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 2987, 2990, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 2990, 2998, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[2998] = 33;

-        Arrays.fill(CHARS, 2999, 3002, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 3002, 3006, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3006, 3011, (byte) -87 ); // Fill 5 of value (byte) -87

-        Arrays.fill(CHARS, 3011, 3014, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 3014, 3017, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[3017] = 33;

-        Arrays.fill(CHARS, 3018, 3022, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 3022, 3031, (byte) 33 ); // Fill 9 of value (byte) 33

-        CHARS[3031] = -87;

-        Arrays.fill(CHARS, 3032, 3047, (byte) 33 ); // Fill 15 of value (byte) 33

-        Arrays.fill(CHARS, 3047, 3056, (byte) -87 ); // Fill 9 of value (byte) -87

-        Arrays.fill(CHARS, 3056, 3073, (byte) 33 ); // Fill 17 of value (byte) 33

-        Arrays.fill(CHARS, 3073, 3076, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[3076] = 33;

-        Arrays.fill(CHARS, 3077, 3085, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[3085] = 33;

-        Arrays.fill(CHARS, 3086, 3089, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[3089] = 33;

-        Arrays.fill(CHARS, 3090, 3113, (byte) -19 ); // Fill 23 of value (byte) -19

-        CHARS[3113] = 33;

-        Arrays.fill(CHARS, 3114, 3124, (byte) -19 ); // Fill 10 of value (byte) -19

-        CHARS[3124] = 33;

-        Arrays.fill(CHARS, 3125, 3130, (byte) -19 ); // Fill 5 of value (byte) -19

-        Arrays.fill(CHARS, 3130, 3134, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3134, 3141, (byte) -87 ); // Fill 7 of value (byte) -87

-        CHARS[3141] = 33;

-        Arrays.fill(CHARS, 3142, 3145, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[3145] = 33;

-        Arrays.fill(CHARS, 3146, 3150, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 3150, 3157, (byte) 33 ); // Fill 7 of value (byte) 33

-        Arrays.fill(CHARS, 3157, 3159, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 3159, 3168, (byte) 33 ); // Fill 9 of value (byte) 33

-        Arrays.fill(CHARS, 3168, 3170, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 3170, 3174, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3174, 3184, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 3184, 3202, (byte) 33 ); // Fill 18 of value (byte) 33

-        Arrays.fill(CHARS, 3202, 3204, (byte) -87 ); // Fill 2 of value (byte) -87

-        CHARS[3204] = 33;

-        Arrays.fill(CHARS, 3205, 3213, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[3213] = 33;

-        Arrays.fill(CHARS, 3214, 3217, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[3217] = 33;

-        Arrays.fill(CHARS, 3218, 3241, (byte) -19 ); // Fill 23 of value (byte) -19

-        CHARS[3241] = 33;

-        Arrays.fill(CHARS, 3242, 3252, (byte) -19 ); // Fill 10 of value (byte) -19

-        CHARS[3252] = 33;

-        Arrays.fill(CHARS, 3253, 3258, (byte) -19 ); // Fill 5 of value (byte) -19

-        Arrays.fill(CHARS, 3258, 3262, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3262, 3269, (byte) -87 ); // Fill 7 of value (byte) -87

-        CHARS[3269] = 33;

-        Arrays.fill(CHARS, 3270, 3273, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[3273] = 33;

-        Arrays.fill(CHARS, 3274, 3278, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 3278, 3285, (byte) 33 ); // Fill 7 of value (byte) 33

-        Arrays.fill(CHARS, 3285, 3287, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 3287, 3294, (byte) 33 ); // Fill 7 of value (byte) 33

-        CHARS[3294] = -19;

-        CHARS[3295] = 33;

-        Arrays.fill(CHARS, 3296, 3298, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 3298, 3302, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3302, 3312, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 3312, 3330, (byte) 33 ); // Fill 18 of value (byte) 33

-        Arrays.fill(CHARS, 3330, 3332, (byte) -87 ); // Fill 2 of value (byte) -87

-        CHARS[3332] = 33;

-        Arrays.fill(CHARS, 3333, 3341, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[3341] = 33;

-        Arrays.fill(CHARS, 3342, 3345, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[3345] = 33;

-        Arrays.fill(CHARS, 3346, 3369, (byte) -19 ); // Fill 23 of value (byte) -19

-        CHARS[3369] = 33;

-        Arrays.fill(CHARS, 3370, 3386, (byte) -19 ); // Fill 16 of value (byte) -19

-        Arrays.fill(CHARS, 3386, 3390, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3390, 3396, (byte) -87 ); // Fill 6 of value (byte) -87

-        Arrays.fill(CHARS, 3396, 3398, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 3398, 3401, (byte) -87 ); // Fill 3 of value (byte) -87

-        CHARS[3401] = 33;

-        Arrays.fill(CHARS, 3402, 3406, (byte) -87 ); // Fill 4 of value (byte) -87

-        Arrays.fill(CHARS, 3406, 3415, (byte) 33 ); // Fill 9 of value (byte) 33

-        CHARS[3415] = -87;

-        Arrays.fill(CHARS, 3416, 3424, (byte) 33 ); // Fill 8 of value (byte) 33

-        Arrays.fill(CHARS, 3424, 3426, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 3426, 3430, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3430, 3440, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 3440, 3585, (byte) 33 ); // Fill 145 of value (byte) 33

-        Arrays.fill(CHARS, 3585, 3631, (byte) -19 ); // Fill 46 of value (byte) -19

-        CHARS[3631] = 33;

-        CHARS[3632] = -19;

-        CHARS[3633] = -87;

-        Arrays.fill(CHARS, 3634, 3636, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 3636, 3643, (byte) -87 ); // Fill 7 of value (byte) -87

-        Arrays.fill(CHARS, 3643, 3648, (byte) 33 ); // Fill 5 of value (byte) 33

-        Arrays.fill(CHARS, 3648, 3654, (byte) -19 ); // Fill 6 of value (byte) -19

-        Arrays.fill(CHARS, 3654, 3663, (byte) -87 ); // Fill 9 of value (byte) -87

-        CHARS[3663] = 33;

-        Arrays.fill(CHARS, 3664, 3674, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 3674, 3713, (byte) 33 ); // Fill 39 of value (byte) 33

-        Arrays.fill(CHARS, 3713, 3715, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[3715] = 33;

-        CHARS[3716] = -19;

-        Arrays.fill(CHARS, 3717, 3719, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 3719, 3721, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[3721] = 33;

-        CHARS[3722] = -19;

-        Arrays.fill(CHARS, 3723, 3725, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[3725] = -19;

-        Arrays.fill(CHARS, 3726, 3732, (byte) 33 ); // Fill 6 of value (byte) 33

-        Arrays.fill(CHARS, 3732, 3736, (byte) -19 ); // Fill 4 of value (byte) -19

-        CHARS[3736] = 33;

-        Arrays.fill(CHARS, 3737, 3744, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[3744] = 33;

-        Arrays.fill(CHARS, 3745, 3748, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[3748] = 33;

-        CHARS[3749] = -19;

-        CHARS[3750] = 33;

-        CHARS[3751] = -19;

-        Arrays.fill(CHARS, 3752, 3754, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 3754, 3756, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[3756] = 33;

-        Arrays.fill(CHARS, 3757, 3759, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[3759] = 33;

-        CHARS[3760] = -19;

-        CHARS[3761] = -87;

-        Arrays.fill(CHARS, 3762, 3764, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 3764, 3770, (byte) -87 ); // Fill 6 of value (byte) -87

-        CHARS[3770] = 33;

-        Arrays.fill(CHARS, 3771, 3773, (byte) -87 ); // Fill 2 of value (byte) -87

-        CHARS[3773] = -19;

-        Arrays.fill(CHARS, 3774, 3776, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 3776, 3781, (byte) -19 ); // Fill 5 of value (byte) -19

-        CHARS[3781] = 33;

-        CHARS[3782] = -87;

-        CHARS[3783] = 33;

-        Arrays.fill(CHARS, 3784, 3790, (byte) -87 ); // Fill 6 of value (byte) -87

-        Arrays.fill(CHARS, 3790, 3792, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 3792, 3802, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 3802, 3864, (byte) 33 ); // Fill 62 of value (byte) 33

-        Arrays.fill(CHARS, 3864, 3866, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 3866, 3872, (byte) 33 ); // Fill 6 of value (byte) 33

-        Arrays.fill(CHARS, 3872, 3882, (byte) -87 ); // Fill 10 of value (byte) -87

-        Arrays.fill(CHARS, 3882, 3893, (byte) 33 ); // Fill 11 of value (byte) 33

-        CHARS[3893] = -87;

-        CHARS[3894] = 33;

-        CHARS[3895] = -87;

-        CHARS[3896] = 33;

-        CHARS[3897] = -87;

-        Arrays.fill(CHARS, 3898, 3902, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3902, 3904, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 3904, 3912, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[3912] = 33;

-        Arrays.fill(CHARS, 3913, 3946, (byte) -19 ); // Fill 33 of value (byte) -19

-        Arrays.fill(CHARS, 3946, 3953, (byte) 33 ); // Fill 7 of value (byte) 33

-        Arrays.fill(CHARS, 3953, 3973, (byte) -87 ); // Fill 20 of value (byte) -87

-        CHARS[3973] = 33;

-        Arrays.fill(CHARS, 3974, 3980, (byte) -87 ); // Fill 6 of value (byte) -87

-        Arrays.fill(CHARS, 3980, 3984, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 3984, 3990, (byte) -87 ); // Fill 6 of value (byte) -87

-        CHARS[3990] = 33;

-        CHARS[3991] = -87;

-        CHARS[3992] = 33;

-        Arrays.fill(CHARS, 3993, 4014, (byte) -87 ); // Fill 21 of value (byte) -87

-        Arrays.fill(CHARS, 4014, 4017, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 4017, 4024, (byte) -87 ); // Fill 7 of value (byte) -87

-        CHARS[4024] = 33;

-        CHARS[4025] = -87;

-        Arrays.fill(CHARS, 4026, 4256, (byte) 33 ); // Fill 230 of value (byte) 33

-        Arrays.fill(CHARS, 4256, 4294, (byte) -19 ); // Fill 38 of value (byte) -19

-        Arrays.fill(CHARS, 4294, 4304, (byte) 33 ); // Fill 10 of value (byte) 33

-        Arrays.fill(CHARS, 4304, 4343, (byte) -19 ); // Fill 39 of value (byte) -19

-        Arrays.fill(CHARS, 4343, 4352, (byte) 33 ); // Fill 9 of value (byte) 33

-        CHARS[4352] = -19;

-        CHARS[4353] = 33;

-        Arrays.fill(CHARS, 4354, 4356, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[4356] = 33;

-        Arrays.fill(CHARS, 4357, 4360, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[4360] = 33;

-        CHARS[4361] = -19;

-        CHARS[4362] = 33;

-        Arrays.fill(CHARS, 4363, 4365, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[4365] = 33;

-        Arrays.fill(CHARS, 4366, 4371, (byte) -19 ); // Fill 5 of value (byte) -19

-        Arrays.fill(CHARS, 4371, 4412, (byte) 33 ); // Fill 41 of value (byte) 33

-        CHARS[4412] = -19;

-        CHARS[4413] = 33;

-        CHARS[4414] = -19;

-        CHARS[4415] = 33;

-        CHARS[4416] = -19;

-        Arrays.fill(CHARS, 4417, 4428, (byte) 33 ); // Fill 11 of value (byte) 33

-        CHARS[4428] = -19;

-        CHARS[4429] = 33;

-        CHARS[4430] = -19;

-        CHARS[4431] = 33;

-        CHARS[4432] = -19;

-        Arrays.fill(CHARS, 4433, 4436, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 4436, 4438, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 4438, 4441, (byte) 33 ); // Fill 3 of value (byte) 33

-        CHARS[4441] = -19;

-        Arrays.fill(CHARS, 4442, 4447, (byte) 33 ); // Fill 5 of value (byte) 33

-        Arrays.fill(CHARS, 4447, 4450, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[4450] = 33;

-        CHARS[4451] = -19;

-        CHARS[4452] = 33;

-        CHARS[4453] = -19;

-        CHARS[4454] = 33;

-        CHARS[4455] = -19;

-        CHARS[4456] = 33;

-        CHARS[4457] = -19;

-        Arrays.fill(CHARS, 4458, 4461, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 4461, 4463, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 4463, 4466, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 4466, 4468, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[4468] = 33;

-        CHARS[4469] = -19;

-        Arrays.fill(CHARS, 4470, 4510, (byte) 33 ); // Fill 40 of value (byte) 33

-        CHARS[4510] = -19;

-        Arrays.fill(CHARS, 4511, 4520, (byte) 33 ); // Fill 9 of value (byte) 33

-        CHARS[4520] = -19;

-        Arrays.fill(CHARS, 4521, 4523, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[4523] = -19;

-        Arrays.fill(CHARS, 4524, 4526, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 4526, 4528, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 4528, 4535, (byte) 33 ); // Fill 7 of value (byte) 33

-        Arrays.fill(CHARS, 4535, 4537, (byte) -19 ); // Fill 2 of value (byte) -19

-        CHARS[4537] = 33;

-        CHARS[4538] = -19;

-        CHARS[4539] = 33;

-        Arrays.fill(CHARS, 4540, 4547, (byte) -19 ); // Fill 7 of value (byte) -19

-        Arrays.fill(CHARS, 4547, 4587, (byte) 33 ); // Fill 40 of value (byte) 33

-        CHARS[4587] = -19;

-        Arrays.fill(CHARS, 4588, 4592, (byte) 33 ); // Fill 4 of value (byte) 33

-        CHARS[4592] = -19;

-        Arrays.fill(CHARS, 4593, 4601, (byte) 33 ); // Fill 8 of value (byte) 33

-        CHARS[4601] = -19;

-        Arrays.fill(CHARS, 4602, 7680, (byte) 33 ); // Fill 3078 of value (byte) 33

-        Arrays.fill(CHARS, 7680, 7836, (byte) -19 ); // Fill 156 of value (byte) -19

-        Arrays.fill(CHARS, 7836, 7840, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 7840, 7930, (byte) -19 ); // Fill 90 of value (byte) -19

-        Arrays.fill(CHARS, 7930, 7936, (byte) 33 ); // Fill 6 of value (byte) 33

-        Arrays.fill(CHARS, 7936, 7958, (byte) -19 ); // Fill 22 of value (byte) -19

-        Arrays.fill(CHARS, 7958, 7960, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 7960, 7966, (byte) -19 ); // Fill 6 of value (byte) -19

-        Arrays.fill(CHARS, 7966, 7968, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 7968, 8006, (byte) -19 ); // Fill 38 of value (byte) -19

-        Arrays.fill(CHARS, 8006, 8008, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 8008, 8014, (byte) -19 ); // Fill 6 of value (byte) -19

-        Arrays.fill(CHARS, 8014, 8016, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 8016, 8024, (byte) -19 ); // Fill 8 of value (byte) -19

-        CHARS[8024] = 33;

-        CHARS[8025] = -19;

-        CHARS[8026] = 33;

-        CHARS[8027] = -19;

-        CHARS[8028] = 33;

-        CHARS[8029] = -19;

-        CHARS[8030] = 33;

-        Arrays.fill(CHARS, 8031, 8062, (byte) -19 ); // Fill 31 of value (byte) -19

-        Arrays.fill(CHARS, 8062, 8064, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 8064, 8117, (byte) -19 ); // Fill 53 of value (byte) -19

-        CHARS[8117] = 33;

-        Arrays.fill(CHARS, 8118, 8125, (byte) -19 ); // Fill 7 of value (byte) -19

-        CHARS[8125] = 33;

-        CHARS[8126] = -19;

-        Arrays.fill(CHARS, 8127, 8130, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 8130, 8133, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[8133] = 33;

-        Arrays.fill(CHARS, 8134, 8141, (byte) -19 ); // Fill 7 of value (byte) -19

-        Arrays.fill(CHARS, 8141, 8144, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 8144, 8148, (byte) -19 ); // Fill 4 of value (byte) -19

-        Arrays.fill(CHARS, 8148, 8150, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 8150, 8156, (byte) -19 ); // Fill 6 of value (byte) -19

-        Arrays.fill(CHARS, 8156, 8160, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 8160, 8173, (byte) -19 ); // Fill 13 of value (byte) -19

-        Arrays.fill(CHARS, 8173, 8178, (byte) 33 ); // Fill 5 of value (byte) 33

-        Arrays.fill(CHARS, 8178, 8181, (byte) -19 ); // Fill 3 of value (byte) -19

-        CHARS[8181] = 33;

-        Arrays.fill(CHARS, 8182, 8189, (byte) -19 ); // Fill 7 of value (byte) -19

-        Arrays.fill(CHARS, 8189, 8400, (byte) 33 ); // Fill 211 of value (byte) 33

-        Arrays.fill(CHARS, 8400, 8413, (byte) -87 ); // Fill 13 of value (byte) -87

-        Arrays.fill(CHARS, 8413, 8417, (byte) 33 ); // Fill 4 of value (byte) 33

-        CHARS[8417] = -87;

-        Arrays.fill(CHARS, 8418, 8486, (byte) 33 ); // Fill 68 of value (byte) 33

-        CHARS[8486] = -19;

-        Arrays.fill(CHARS, 8487, 8490, (byte) 33 ); // Fill 3 of value (byte) 33

-        Arrays.fill(CHARS, 8490, 8492, (byte) -19 ); // Fill 2 of value (byte) -19

-        Arrays.fill(CHARS, 8492, 8494, (byte) 33 ); // Fill 2 of value (byte) 33

-        CHARS[8494] = -19;

-        Arrays.fill(CHARS, 8495, 8576, (byte) 33 ); // Fill 81 of value (byte) 33

-        Arrays.fill(CHARS, 8576, 8579, (byte) -19 ); // Fill 3 of value (byte) -19

-        Arrays.fill(CHARS, 8579, 12293, (byte) 33 ); // Fill 3714 of value (byte) 33

-        CHARS[12293] = -87;

-        CHARS[12294] = 33;

-        CHARS[12295] = -19;

-        Arrays.fill(CHARS, 12296, 12321, (byte) 33 ); // Fill 25 of value (byte) 33

-        Arrays.fill(CHARS, 12321, 12330, (byte) -19 ); // Fill 9 of value (byte) -19

-        Arrays.fill(CHARS, 12330, 12336, (byte) -87 ); // Fill 6 of value (byte) -87

-        CHARS[12336] = 33;

-        Arrays.fill(CHARS, 12337, 12342, (byte) -87 ); // Fill 5 of value (byte) -87

-        Arrays.fill(CHARS, 12342, 12353, (byte) 33 ); // Fill 11 of value (byte) 33

-        Arrays.fill(CHARS, 12353, 12437, (byte) -19 ); // Fill 84 of value (byte) -19

-        Arrays.fill(CHARS, 12437, 12441, (byte) 33 ); // Fill 4 of value (byte) 33

-        Arrays.fill(CHARS, 12441, 12443, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 12443, 12445, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 12445, 12447, (byte) -87 ); // Fill 2 of value (byte) -87

-        Arrays.fill(CHARS, 12447, 12449, (byte) 33 ); // Fill 2 of value (byte) 33

-        Arrays.fill(CHARS, 12449, 12539, (byte) -19 ); // Fill 90 of value (byte) -19

-        CHARS[12539] = 33;

-        Arrays.fill(CHARS, 12540, 12543, (byte) -87 ); // Fill 3 of value (byte) -87

-        Arrays.fill(CHARS, 12543, 12549, (byte) 33 ); // Fill 6 of value (byte) 33

-        Arrays.fill(CHARS, 12549, 12589, (byte) -19 ); // Fill 40 of value (byte) -19

-        Arrays.fill(CHARS, 12589, 19968, (byte) 33 ); // Fill 7379 of value (byte) 33

-        Arrays.fill(CHARS, 19968, 40870, (byte) -19 ); // Fill 20902 of value (byte) -19

-        Arrays.fill(CHARS, 40870, 44032, (byte) 33 ); // Fill 3162 of value (byte) 33

-        Arrays.fill(CHARS, 44032, 55204, (byte) -19 ); // Fill 11172 of value (byte) -19

-        Arrays.fill(CHARS, 55204, 55296, (byte) 33 ); // Fill 92 of value (byte) 33

-        Arrays.fill(CHARS, 57344, 65534, (byte) 33 ); // Fill 8190 of value (byte) 33

-

-    } // <clinit>()

-

-    //

-    // Public static methods

-    //

-

-    /**

-     * Returns true if the specified character is a supplemental character.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isSupplemental(int c) {

-        return (c >= 0x10000 && c <= 0x10FFFF);

-    }

-

-    /**

-     * Returns true the supplemental character corresponding to the given

-     * surrogates.

-     *

-     * @param h The high surrogate.

-     * @param l The low surrogate.

-     */

-    public static int supplemental(char h, char l) {

-        return (h - 0xD800) * 0x400 + (l - 0xDC00) + 0x10000;

-    }

-

-    /**

-     * Returns the high surrogate of a supplemental character

-     *

-     * @param c The supplemental character to "split".

-     */

-    public static char highSurrogate(int c) {

-        return (char) (((c - 0x00010000) >> 10) + 0xD800);

-    }

-

-    /**

-     * Returns the low surrogate of a supplemental character

-     *

-     * @param c The supplemental character to "split".

-     */

-    public static char lowSurrogate(int c) {

-        return (char) (((c - 0x00010000) & 0x3FF) + 0xDC00);

-    }

-

-    /**

-     * Returns whether the given character is a high surrogate

-     *

-     * @param c The character to check.

-     */

-    public static boolean isHighSurrogate(int c) {

-        return (0xD800 <= c && c <= 0xDBFF);

-    }

-

-    /**

-     * Returns whether the given character is a low surrogate

-     *

-     * @param c The character to check.

-     */

-    public static boolean isLowSurrogate(int c) {

-        return (0xDC00 <= c && c <= 0xDFFF);

-    }

-

-

-    /**

-     * Returns true if the specified character is valid. This method

-     * also checks the surrogate character range from 0x10000 to 0x10FFFF.

-     * <p>

-     * If the program chooses to apply the mask directly to the

-     * <code>CHARS</code> array, then they are responsible for checking

-     * the surrogate character range.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isValid(int c) {

-        return (c < 0x10000 && (CHARS[c] & MASK_VALID) != 0) ||

-               (0x10000 <= c && c <= 0x10FFFF);

-    } // isValid(int):boolean

-

-    /**

-     * Returns true if the specified character is invalid.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isInvalid(int c) {

-        return !isValid(c);

-    } // isInvalid(int):boolean

-

-    /**

-     * Returns true if the specified character can be considered content.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isContent(int c) {

-        return (c < 0x10000 && (CHARS[c] & MASK_CONTENT) != 0) ||

-               (0x10000 <= c && c <= 0x10FFFF);

-    } // isContent(int):boolean

-

-    /**

-     * Returns true if the specified character can be considered markup.

-     * Markup characters include '&lt;', '&amp;', and '%'.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isMarkup(int c) {

-        return c == '<' || c == '&' || c == '%';

-    } // isMarkup(int):boolean

-

-    /**

-     * Returns true if the specified character is a space character

-     * as defined by production [3] in the XML 1.0 specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isSpace(int c) {

-        return c <= 0x20 && (CHARS[c] & MASK_SPACE) != 0;

-    } // isSpace(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid name start

-     * character as defined by production [5] in the XML 1.0

-     * specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isNameStart(int c) {

-        return c < 0x10000 && (CHARS[c] & MASK_NAME_START) != 0;

-    } // isNameStart(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid name

-     * character as defined by production [4] in the XML 1.0

-     * specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isName(int c) {

-        return c < 0x10000 && (CHARS[c] & MASK_NAME) != 0;

-    } // isName(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid NCName start

-     * character as defined by production [4] in Namespaces in XML

-     * recommendation.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isNCNameStart(int c) {

-        return c < 0x10000 && (CHARS[c] & MASK_NCNAME_START) != 0;

-    } // isNCNameStart(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid NCName

-     * character as defined by production [5] in Namespaces in XML

-     * recommendation.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isNCName(int c) {

-        return c < 0x10000 && (CHARS[c] & MASK_NCNAME) != 0;

-    } // isNCName(int):boolean

-

-    /**

-     * Returns true if the specified character is a valid Pubid

-     * character as defined by production [13] in the XML 1.0

-     * specification.

-     *

-     * @param c The character to check.

-     */

-    public static boolean isPubid(int c) {

-        return c < 0x10000 && (CHARS[c] & MASK_PUBID) != 0;

-    } // isPubid(int):boolean

-

-    /*

-     * [5] Name ::= (Letter | '_' | ':') (NameChar)*

-     */

-    /**

-     * Check to see if a string is a valid Name according to [5]

-     * in the XML 1.0 Recommendation

-     *

-     * @param name string to check

-     * @return true if name is a valid Name

-     */

-    public static boolean isValidName(String name) {

-        if (name.length() == 0)

-            return false;

-        char ch = name.charAt(0);

-        if( isNameStart(ch) == false)

-           return false;

-        for (int i = 1; i < name.length(); i++ ) {

-           ch = name.charAt(i);

-           if( isName( ch ) == false ){

-              return false;

-           }

-        }

-        return true;

-    } // isValidName(String):boolean

-    

-

-    /*

-     * from the namespace rec

-     * [4] NCName ::= (Letter | '_') (NCNameChar)*

-     */

-    /**

-     * Check to see if a string is a valid NCName according to [4]

-     * from the XML Namespaces 1.0 Recommendation

-     *

-     * @param ncName string to check

-     * @return true if name is a valid NCName

-     */

-    public static boolean isValidNCName(String ncName) {

-        if (ncName.length() == 0)

-            return false;

-        char ch = ncName.charAt(0);

-        if( isNCNameStart(ch) == false)

-           return false;

-        for (int i = 1; i < ncName.length(); i++ ) {

-           ch = ncName.charAt(i);

-           if( isNCName( ch ) == false ){

-              return false;

-           }

-        }

-        return true;

-    } // isValidNCName(String):boolean

-

-    /*

-     * [7] Nmtoken ::= (NameChar)+

-     */

-    /**

-     * Check to see if a string is a valid Nmtoken according to [7]

-     * in the XML 1.0 Recommendation

-     *

-     * @param nmtoken string to check

-     * @return true if nmtoken is a valid Nmtoken 

-     */

-    public static boolean isValidNmtoken(String nmtoken) {

-        if (nmtoken.length() == 0)

-            return false;

-        for (int i = 0; i < nmtoken.length(); i++ ) {

-           char ch = nmtoken.charAt(i);

-           if(  ! isName( ch ) ){

-              return false;

-           }

-        }

-        return true;

-    } // isValidName(String):boolean

-

-

-

-

-

-    // encodings

-

-    /**

-     * Returns true if the encoding name is a valid IANA encoding.

-     * This method does not verify that there is a decoder available

-     * for this encoding, only that the characters are valid for an

-     * IANA encoding name.

-     *

-     * @param ianaEncoding The IANA encoding name.

-     */

-    public static boolean isValidIANAEncoding(String ianaEncoding) {

-        if (ianaEncoding != null) {

-            int length = ianaEncoding.length();

-            if (length > 0) {

-                char c = ianaEncoding.charAt(0);

-                if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {

-                    for (int i = 1; i < length; i++) {

-                        c = ianaEncoding.charAt(i);

-                        if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z') &&

-                            (c < '0' || c > '9') && c != '.' && c != '_' &&

-                            c != '-') {

-                            return false;

-                        }

-                    }

-                    return true;

-                }

-            }

-        }

-        return false;

-    } // isValidIANAEncoding(String):boolean

-

-    /**

-     * Returns true if the encoding name is a valid Java encoding.

-     * This method does not verify that there is a decoder available

-     * for this encoding, only that the characters are valid for an

-     * Java encoding name.

-     *

-     * @param javaEncoding The Java encoding name.

-     */

-    public static boolean isValidJavaEncoding(String javaEncoding) {

-        if (javaEncoding != null) {

-            int length = javaEncoding.length();

-            if (length > 0) {

-                for (int i = 1; i < length; i++) {

-                    char c = javaEncoding.charAt(i);

-                    if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z') &&

-                        (c < '0' || c > '9') && c != '.' && c != '_' &&

-                        c != '-') {

-                        return false;

-                    }

-                }

-                return true;

-            }

-        }

-        return false;

-    } // isValidIANAEncoding(String):boolean

-

-

-} // class XMLChar

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.xml.serializer.utils;
+
+import java.util.Arrays;
+
+/**
+ * THIS IS A COPY OF THE XERCES-2J CLASS org.apache.xerces.utls.XMLChar
+ * 
+ * This class defines the basic XML character properties. The data
+ * in this class can be used to verify that a character is a valid
+ * XML character or if the character is a space, name start, or name
+ * character.
+ * <p>
+ * A series of convenience methods are supplied to ease the burden
+ * of the developer. Because inlining the checks can improve per
+ * character performance, the tables of character properties are
+ * public. Using the character as an index into the <code>CHARS</code>
+ * array and applying the appropriate mask flag (e.g.
+ * <code>MASK_VALID</code>), yields the same results as calling the
+ * convenience methods. There is one exception: check the comments
+ * for the <code>isValid</code> method for details.
+ *
+ * @author Glenn Marcy, IBM
+ * @author Andy Clark, IBM
+ * @author Eric Ye, IBM
+ * @author Arnaud  Le Hors, IBM
+ * @author Michael Glavassevich, IBM
+ * @author Rahul Srivastava, Sun Microsystems Inc.
+ *
+ * @version $Id$
+ */
+public class XMLChar {
+
+    //
+    // Constants
+    //
+
+    /** Character flags. */
+    private static final byte[] CHARS = new byte[1 << 16];
+
+    /** Valid character mask. */
+    public static final int MASK_VALID = 0x01;
+
+    /** Space character mask. */
+    public static final int MASK_SPACE = 0x02;
+
+    /** Name start character mask. */
+    public static final int MASK_NAME_START = 0x04;
+
+    /** Name character mask. */
+    public static final int MASK_NAME = 0x08;
+
+    /** Pubid character mask. */
+    public static final int MASK_PUBID = 0x10;
+    
+    /** 
+     * Content character mask. Special characters are those that can
+     * be considered the start of markup, such as '&lt;' and '&amp;'. 
+     * The various newline characters are considered special as well.
+     * All other valid XML characters can be considered content.
+     * <p>
+     * This is an optimization for the inner loop of character scanning.
+     */
+    public static final int MASK_CONTENT = 0x20;
+
+    /** NCName start character mask. */
+    public static final int MASK_NCNAME_START = 0x40;
+
+    /** NCName character mask. */
+    public static final int MASK_NCNAME = 0x80;
+
+    //
+    // Static initialization
+    //
+
+    static {
+        
+        // Initializing the Character Flag Array
+        // Code generated by: XMLCharGenerator.
+        
+        CHARS[9] = 35;
+        CHARS[10] = 19;
+        CHARS[13] = 19;
+        CHARS[32] = 51;
+        CHARS[33] = 49;
+        CHARS[34] = 33;
+        Arrays.fill(CHARS, 35, 38, (byte) 49 ); // Fill 3 of value (byte) 49
+        CHARS[38] = 1;
+        Arrays.fill(CHARS, 39, 45, (byte) 49 ); // Fill 6 of value (byte) 49
+        Arrays.fill(CHARS, 45, 47, (byte) -71 ); // Fill 2 of value (byte) -71
+        CHARS[47] = 49;
+        Arrays.fill(CHARS, 48, 58, (byte) -71 ); // Fill 10 of value (byte) -71
+        CHARS[58] = 61;
+        CHARS[59] = 49;
+        CHARS[60] = 1;
+        CHARS[61] = 49;
+        CHARS[62] = 33;
+        Arrays.fill(CHARS, 63, 65, (byte) 49 ); // Fill 2 of value (byte) 49
+        Arrays.fill(CHARS, 65, 91, (byte) -3 ); // Fill 26 of value (byte) -3
+        Arrays.fill(CHARS, 91, 93, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[93] = 1;
+        CHARS[94] = 33;
+        CHARS[95] = -3;
+        CHARS[96] = 33;
+        Arrays.fill(CHARS, 97, 123, (byte) -3 ); // Fill 26 of value (byte) -3
+        Arrays.fill(CHARS, 123, 183, (byte) 33 ); // Fill 60 of value (byte) 33
+        CHARS[183] = -87;
+        Arrays.fill(CHARS, 184, 192, (byte) 33 ); // Fill 8 of value (byte) 33
+        Arrays.fill(CHARS, 192, 215, (byte) -19 ); // Fill 23 of value (byte) -19
+        CHARS[215] = 33;
+        Arrays.fill(CHARS, 216, 247, (byte) -19 ); // Fill 31 of value (byte) -19
+        CHARS[247] = 33;
+        Arrays.fill(CHARS, 248, 306, (byte) -19 ); // Fill 58 of value (byte) -19
+        Arrays.fill(CHARS, 306, 308, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 308, 319, (byte) -19 ); // Fill 11 of value (byte) -19
+        Arrays.fill(CHARS, 319, 321, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 321, 329, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[329] = 33;
+        Arrays.fill(CHARS, 330, 383, (byte) -19 ); // Fill 53 of value (byte) -19
+        CHARS[383] = 33;
+        Arrays.fill(CHARS, 384, 452, (byte) -19 ); // Fill 68 of value (byte) -19
+        Arrays.fill(CHARS, 452, 461, (byte) 33 ); // Fill 9 of value (byte) 33
+        Arrays.fill(CHARS, 461, 497, (byte) -19 ); // Fill 36 of value (byte) -19
+        Arrays.fill(CHARS, 497, 500, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 500, 502, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 502, 506, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 506, 536, (byte) -19 ); // Fill 30 of value (byte) -19
+        Arrays.fill(CHARS, 536, 592, (byte) 33 ); // Fill 56 of value (byte) 33
+        Arrays.fill(CHARS, 592, 681, (byte) -19 ); // Fill 89 of value (byte) -19
+        Arrays.fill(CHARS, 681, 699, (byte) 33 ); // Fill 18 of value (byte) 33
+        Arrays.fill(CHARS, 699, 706, (byte) -19 ); // Fill 7 of value (byte) -19
+        Arrays.fill(CHARS, 706, 720, (byte) 33 ); // Fill 14 of value (byte) 33
+        Arrays.fill(CHARS, 720, 722, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 722, 768, (byte) 33 ); // Fill 46 of value (byte) 33
+        Arrays.fill(CHARS, 768, 838, (byte) -87 ); // Fill 70 of value (byte) -87
+        Arrays.fill(CHARS, 838, 864, (byte) 33 ); // Fill 26 of value (byte) 33
+        Arrays.fill(CHARS, 864, 866, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 866, 902, (byte) 33 ); // Fill 36 of value (byte) 33
+        CHARS[902] = -19;
+        CHARS[903] = -87;
+        Arrays.fill(CHARS, 904, 907, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[907] = 33;
+        CHARS[908] = -19;
+        CHARS[909] = 33;
+        Arrays.fill(CHARS, 910, 930, (byte) -19 ); // Fill 20 of value (byte) -19
+        CHARS[930] = 33;
+        Arrays.fill(CHARS, 931, 975, (byte) -19 ); // Fill 44 of value (byte) -19
+        CHARS[975] = 33;
+        Arrays.fill(CHARS, 976, 983, (byte) -19 ); // Fill 7 of value (byte) -19
+        Arrays.fill(CHARS, 983, 986, (byte) 33 ); // Fill 3 of value (byte) 33
+        CHARS[986] = -19;
+        CHARS[987] = 33;
+        CHARS[988] = -19;
+        CHARS[989] = 33;
+        CHARS[990] = -19;
+        CHARS[991] = 33;
+        CHARS[992] = -19;
+        CHARS[993] = 33;
+        Arrays.fill(CHARS, 994, 1012, (byte) -19 ); // Fill 18 of value (byte) -19
+        Arrays.fill(CHARS, 1012, 1025, (byte) 33 ); // Fill 13 of value (byte) 33
+        Arrays.fill(CHARS, 1025, 1037, (byte) -19 ); // Fill 12 of value (byte) -19
+        CHARS[1037] = 33;
+        Arrays.fill(CHARS, 1038, 1104, (byte) -19 ); // Fill 66 of value (byte) -19
+        CHARS[1104] = 33;
+        Arrays.fill(CHARS, 1105, 1117, (byte) -19 ); // Fill 12 of value (byte) -19
+        CHARS[1117] = 33;
+        Arrays.fill(CHARS, 1118, 1154, (byte) -19 ); // Fill 36 of value (byte) -19
+        CHARS[1154] = 33;
+        Arrays.fill(CHARS, 1155, 1159, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 1159, 1168, (byte) 33 ); // Fill 9 of value (byte) 33
+        Arrays.fill(CHARS, 1168, 1221, (byte) -19 ); // Fill 53 of value (byte) -19
+        Arrays.fill(CHARS, 1221, 1223, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 1223, 1225, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 1225, 1227, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 1227, 1229, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 1229, 1232, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 1232, 1260, (byte) -19 ); // Fill 28 of value (byte) -19
+        Arrays.fill(CHARS, 1260, 1262, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 1262, 1270, (byte) -19 ); // Fill 8 of value (byte) -19
+        Arrays.fill(CHARS, 1270, 1272, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 1272, 1274, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 1274, 1329, (byte) 33 ); // Fill 55 of value (byte) 33
+        Arrays.fill(CHARS, 1329, 1367, (byte) -19 ); // Fill 38 of value (byte) -19
+        Arrays.fill(CHARS, 1367, 1369, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[1369] = -19;
+        Arrays.fill(CHARS, 1370, 1377, (byte) 33 ); // Fill 7 of value (byte) 33
+        Arrays.fill(CHARS, 1377, 1415, (byte) -19 ); // Fill 38 of value (byte) -19
+        Arrays.fill(CHARS, 1415, 1425, (byte) 33 ); // Fill 10 of value (byte) 33
+        Arrays.fill(CHARS, 1425, 1442, (byte) -87 ); // Fill 17 of value (byte) -87
+        CHARS[1442] = 33;
+        Arrays.fill(CHARS, 1443, 1466, (byte) -87 ); // Fill 23 of value (byte) -87
+        CHARS[1466] = 33;
+        Arrays.fill(CHARS, 1467, 1470, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[1470] = 33;
+        CHARS[1471] = -87;
+        CHARS[1472] = 33;
+        Arrays.fill(CHARS, 1473, 1475, (byte) -87 ); // Fill 2 of value (byte) -87
+        CHARS[1475] = 33;
+        CHARS[1476] = -87;
+        Arrays.fill(CHARS, 1477, 1488, (byte) 33 ); // Fill 11 of value (byte) 33
+        Arrays.fill(CHARS, 1488, 1515, (byte) -19 ); // Fill 27 of value (byte) -19
+        Arrays.fill(CHARS, 1515, 1520, (byte) 33 ); // Fill 5 of value (byte) 33
+        Arrays.fill(CHARS, 1520, 1523, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 1523, 1569, (byte) 33 ); // Fill 46 of value (byte) 33
+        Arrays.fill(CHARS, 1569, 1595, (byte) -19 ); // Fill 26 of value (byte) -19
+        Arrays.fill(CHARS, 1595, 1600, (byte) 33 ); // Fill 5 of value (byte) 33
+        CHARS[1600] = -87;
+        Arrays.fill(CHARS, 1601, 1611, (byte) -19 ); // Fill 10 of value (byte) -19
+        Arrays.fill(CHARS, 1611, 1619, (byte) -87 ); // Fill 8 of value (byte) -87
+        Arrays.fill(CHARS, 1619, 1632, (byte) 33 ); // Fill 13 of value (byte) 33
+        Arrays.fill(CHARS, 1632, 1642, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 1642, 1648, (byte) 33 ); // Fill 6 of value (byte) 33
+        CHARS[1648] = -87;
+        Arrays.fill(CHARS, 1649, 1720, (byte) -19 ); // Fill 71 of value (byte) -19
+        Arrays.fill(CHARS, 1720, 1722, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 1722, 1727, (byte) -19 ); // Fill 5 of value (byte) -19
+        CHARS[1727] = 33;
+        Arrays.fill(CHARS, 1728, 1743, (byte) -19 ); // Fill 15 of value (byte) -19
+        CHARS[1743] = 33;
+        Arrays.fill(CHARS, 1744, 1748, (byte) -19 ); // Fill 4 of value (byte) -19
+        CHARS[1748] = 33;
+        CHARS[1749] = -19;
+        Arrays.fill(CHARS, 1750, 1765, (byte) -87 ); // Fill 15 of value (byte) -87
+        Arrays.fill(CHARS, 1765, 1767, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 1767, 1769, (byte) -87 ); // Fill 2 of value (byte) -87
+        CHARS[1769] = 33;
+        Arrays.fill(CHARS, 1770, 1774, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 1774, 1776, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 1776, 1786, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 1786, 2305, (byte) 33 ); // Fill 519 of value (byte) 33
+        Arrays.fill(CHARS, 2305, 2308, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[2308] = 33;
+        Arrays.fill(CHARS, 2309, 2362, (byte) -19 ); // Fill 53 of value (byte) -19
+        Arrays.fill(CHARS, 2362, 2364, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[2364] = -87;
+        CHARS[2365] = -19;
+        Arrays.fill(CHARS, 2366, 2382, (byte) -87 ); // Fill 16 of value (byte) -87
+        Arrays.fill(CHARS, 2382, 2385, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2385, 2389, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 2389, 2392, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2392, 2402, (byte) -19 ); // Fill 10 of value (byte) -19
+        Arrays.fill(CHARS, 2402, 2404, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 2404, 2406, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2406, 2416, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 2416, 2433, (byte) 33 ); // Fill 17 of value (byte) 33
+        Arrays.fill(CHARS, 2433, 2436, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[2436] = 33;
+        Arrays.fill(CHARS, 2437, 2445, (byte) -19 ); // Fill 8 of value (byte) -19
+        Arrays.fill(CHARS, 2445, 2447, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2447, 2449, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2449, 2451, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2451, 2473, (byte) -19 ); // Fill 22 of value (byte) -19
+        CHARS[2473] = 33;
+        Arrays.fill(CHARS, 2474, 2481, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[2481] = 33;
+        CHARS[2482] = -19;
+        Arrays.fill(CHARS, 2483, 2486, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2486, 2490, (byte) -19 ); // Fill 4 of value (byte) -19
+        Arrays.fill(CHARS, 2490, 2492, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[2492] = -87;
+        CHARS[2493] = 33;
+        Arrays.fill(CHARS, 2494, 2501, (byte) -87 ); // Fill 7 of value (byte) -87
+        Arrays.fill(CHARS, 2501, 2503, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2503, 2505, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 2505, 2507, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2507, 2510, (byte) -87 ); // Fill 3 of value (byte) -87
+        Arrays.fill(CHARS, 2510, 2519, (byte) 33 ); // Fill 9 of value (byte) 33
+        CHARS[2519] = -87;
+        Arrays.fill(CHARS, 2520, 2524, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 2524, 2526, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[2526] = 33;
+        Arrays.fill(CHARS, 2527, 2530, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 2530, 2532, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 2532, 2534, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2534, 2544, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 2544, 2546, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2546, 2562, (byte) 33 ); // Fill 16 of value (byte) 33
+        CHARS[2562] = -87;
+        Arrays.fill(CHARS, 2563, 2565, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2565, 2571, (byte) -19 ); // Fill 6 of value (byte) -19
+        Arrays.fill(CHARS, 2571, 2575, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 2575, 2577, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2577, 2579, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2579, 2601, (byte) -19 ); // Fill 22 of value (byte) -19
+        CHARS[2601] = 33;
+        Arrays.fill(CHARS, 2602, 2609, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[2609] = 33;
+        Arrays.fill(CHARS, 2610, 2612, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[2612] = 33;
+        Arrays.fill(CHARS, 2613, 2615, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[2615] = 33;
+        Arrays.fill(CHARS, 2616, 2618, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2618, 2620, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[2620] = -87;
+        CHARS[2621] = 33;
+        Arrays.fill(CHARS, 2622, 2627, (byte) -87 ); // Fill 5 of value (byte) -87
+        Arrays.fill(CHARS, 2627, 2631, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 2631, 2633, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 2633, 2635, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2635, 2638, (byte) -87 ); // Fill 3 of value (byte) -87
+        Arrays.fill(CHARS, 2638, 2649, (byte) 33 ); // Fill 11 of value (byte) 33
+        Arrays.fill(CHARS, 2649, 2653, (byte) -19 ); // Fill 4 of value (byte) -19
+        CHARS[2653] = 33;
+        CHARS[2654] = -19;
+        Arrays.fill(CHARS, 2655, 2662, (byte) 33 ); // Fill 7 of value (byte) 33
+        Arrays.fill(CHARS, 2662, 2674, (byte) -87 ); // Fill 12 of value (byte) -87
+        Arrays.fill(CHARS, 2674, 2677, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 2677, 2689, (byte) 33 ); // Fill 12 of value (byte) 33
+        Arrays.fill(CHARS, 2689, 2692, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[2692] = 33;
+        Arrays.fill(CHARS, 2693, 2700, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[2700] = 33;
+        CHARS[2701] = -19;
+        CHARS[2702] = 33;
+        Arrays.fill(CHARS, 2703, 2706, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[2706] = 33;
+        Arrays.fill(CHARS, 2707, 2729, (byte) -19 ); // Fill 22 of value (byte) -19
+        CHARS[2729] = 33;
+        Arrays.fill(CHARS, 2730, 2737, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[2737] = 33;
+        Arrays.fill(CHARS, 2738, 2740, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[2740] = 33;
+        Arrays.fill(CHARS, 2741, 2746, (byte) -19 ); // Fill 5 of value (byte) -19
+        Arrays.fill(CHARS, 2746, 2748, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[2748] = -87;
+        CHARS[2749] = -19;
+        Arrays.fill(CHARS, 2750, 2758, (byte) -87 ); // Fill 8 of value (byte) -87
+        CHARS[2758] = 33;
+        Arrays.fill(CHARS, 2759, 2762, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[2762] = 33;
+        Arrays.fill(CHARS, 2763, 2766, (byte) -87 ); // Fill 3 of value (byte) -87
+        Arrays.fill(CHARS, 2766, 2784, (byte) 33 ); // Fill 18 of value (byte) 33
+        CHARS[2784] = -19;
+        Arrays.fill(CHARS, 2785, 2790, (byte) 33 ); // Fill 5 of value (byte) 33
+        Arrays.fill(CHARS, 2790, 2800, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 2800, 2817, (byte) 33 ); // Fill 17 of value (byte) 33
+        Arrays.fill(CHARS, 2817, 2820, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[2820] = 33;
+        Arrays.fill(CHARS, 2821, 2829, (byte) -19 ); // Fill 8 of value (byte) -19
+        Arrays.fill(CHARS, 2829, 2831, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2831, 2833, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2833, 2835, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2835, 2857, (byte) -19 ); // Fill 22 of value (byte) -19
+        CHARS[2857] = 33;
+        Arrays.fill(CHARS, 2858, 2865, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[2865] = 33;
+        Arrays.fill(CHARS, 2866, 2868, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2868, 2870, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2870, 2874, (byte) -19 ); // Fill 4 of value (byte) -19
+        Arrays.fill(CHARS, 2874, 2876, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[2876] = -87;
+        CHARS[2877] = -19;
+        Arrays.fill(CHARS, 2878, 2884, (byte) -87 ); // Fill 6 of value (byte) -87
+        Arrays.fill(CHARS, 2884, 2887, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2887, 2889, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 2889, 2891, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 2891, 2894, (byte) -87 ); // Fill 3 of value (byte) -87
+        Arrays.fill(CHARS, 2894, 2902, (byte) 33 ); // Fill 8 of value (byte) 33
+        Arrays.fill(CHARS, 2902, 2904, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 2904, 2908, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 2908, 2910, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[2910] = 33;
+        Arrays.fill(CHARS, 2911, 2914, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 2914, 2918, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 2918, 2928, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 2928, 2946, (byte) 33 ); // Fill 18 of value (byte) 33
+        Arrays.fill(CHARS, 2946, 2948, (byte) -87 ); // Fill 2 of value (byte) -87
+        CHARS[2948] = 33;
+        Arrays.fill(CHARS, 2949, 2955, (byte) -19 ); // Fill 6 of value (byte) -19
+        Arrays.fill(CHARS, 2955, 2958, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2958, 2961, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[2961] = 33;
+        Arrays.fill(CHARS, 2962, 2966, (byte) -19 ); // Fill 4 of value (byte) -19
+        Arrays.fill(CHARS, 2966, 2969, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2969, 2971, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[2971] = 33;
+        CHARS[2972] = -19;
+        CHARS[2973] = 33;
+        Arrays.fill(CHARS, 2974, 2976, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2976, 2979, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2979, 2981, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 2981, 2984, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2984, 2987, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 2987, 2990, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 2990, 2998, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[2998] = 33;
+        Arrays.fill(CHARS, 2999, 3002, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 3002, 3006, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3006, 3011, (byte) -87 ); // Fill 5 of value (byte) -87
+        Arrays.fill(CHARS, 3011, 3014, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 3014, 3017, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[3017] = 33;
+        Arrays.fill(CHARS, 3018, 3022, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 3022, 3031, (byte) 33 ); // Fill 9 of value (byte) 33
+        CHARS[3031] = -87;
+        Arrays.fill(CHARS, 3032, 3047, (byte) 33 ); // Fill 15 of value (byte) 33
+        Arrays.fill(CHARS, 3047, 3056, (byte) -87 ); // Fill 9 of value (byte) -87
+        Arrays.fill(CHARS, 3056, 3073, (byte) 33 ); // Fill 17 of value (byte) 33
+        Arrays.fill(CHARS, 3073, 3076, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[3076] = 33;
+        Arrays.fill(CHARS, 3077, 3085, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[3085] = 33;
+        Arrays.fill(CHARS, 3086, 3089, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[3089] = 33;
+        Arrays.fill(CHARS, 3090, 3113, (byte) -19 ); // Fill 23 of value (byte) -19
+        CHARS[3113] = 33;
+        Arrays.fill(CHARS, 3114, 3124, (byte) -19 ); // Fill 10 of value (byte) -19
+        CHARS[3124] = 33;
+        Arrays.fill(CHARS, 3125, 3130, (byte) -19 ); // Fill 5 of value (byte) -19
+        Arrays.fill(CHARS, 3130, 3134, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3134, 3141, (byte) -87 ); // Fill 7 of value (byte) -87
+        CHARS[3141] = 33;
+        Arrays.fill(CHARS, 3142, 3145, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[3145] = 33;
+        Arrays.fill(CHARS, 3146, 3150, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 3150, 3157, (byte) 33 ); // Fill 7 of value (byte) 33
+        Arrays.fill(CHARS, 3157, 3159, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 3159, 3168, (byte) 33 ); // Fill 9 of value (byte) 33
+        Arrays.fill(CHARS, 3168, 3170, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 3170, 3174, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3174, 3184, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 3184, 3202, (byte) 33 ); // Fill 18 of value (byte) 33
+        Arrays.fill(CHARS, 3202, 3204, (byte) -87 ); // Fill 2 of value (byte) -87
+        CHARS[3204] = 33;
+        Arrays.fill(CHARS, 3205, 3213, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[3213] = 33;
+        Arrays.fill(CHARS, 3214, 3217, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[3217] = 33;
+        Arrays.fill(CHARS, 3218, 3241, (byte) -19 ); // Fill 23 of value (byte) -19
+        CHARS[3241] = 33;
+        Arrays.fill(CHARS, 3242, 3252, (byte) -19 ); // Fill 10 of value (byte) -19
+        CHARS[3252] = 33;
+        Arrays.fill(CHARS, 3253, 3258, (byte) -19 ); // Fill 5 of value (byte) -19
+        Arrays.fill(CHARS, 3258, 3262, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3262, 3269, (byte) -87 ); // Fill 7 of value (byte) -87
+        CHARS[3269] = 33;
+        Arrays.fill(CHARS, 3270, 3273, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[3273] = 33;
+        Arrays.fill(CHARS, 3274, 3278, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 3278, 3285, (byte) 33 ); // Fill 7 of value (byte) 33
+        Arrays.fill(CHARS, 3285, 3287, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 3287, 3294, (byte) 33 ); // Fill 7 of value (byte) 33
+        CHARS[3294] = -19;
+        CHARS[3295] = 33;
+        Arrays.fill(CHARS, 3296, 3298, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 3298, 3302, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3302, 3312, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 3312, 3330, (byte) 33 ); // Fill 18 of value (byte) 33
+        Arrays.fill(CHARS, 3330, 3332, (byte) -87 ); // Fill 2 of value (byte) -87
+        CHARS[3332] = 33;
+        Arrays.fill(CHARS, 3333, 3341, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[3341] = 33;
+        Arrays.fill(CHARS, 3342, 3345, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[3345] = 33;
+        Arrays.fill(CHARS, 3346, 3369, (byte) -19 ); // Fill 23 of value (byte) -19
+        CHARS[3369] = 33;
+        Arrays.fill(CHARS, 3370, 3386, (byte) -19 ); // Fill 16 of value (byte) -19
+        Arrays.fill(CHARS, 3386, 3390, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3390, 3396, (byte) -87 ); // Fill 6 of value (byte) -87
+        Arrays.fill(CHARS, 3396, 3398, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 3398, 3401, (byte) -87 ); // Fill 3 of value (byte) -87
+        CHARS[3401] = 33;
+        Arrays.fill(CHARS, 3402, 3406, (byte) -87 ); // Fill 4 of value (byte) -87
+        Arrays.fill(CHARS, 3406, 3415, (byte) 33 ); // Fill 9 of value (byte) 33
+        CHARS[3415] = -87;
+        Arrays.fill(CHARS, 3416, 3424, (byte) 33 ); // Fill 8 of value (byte) 33
+        Arrays.fill(CHARS, 3424, 3426, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 3426, 3430, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3430, 3440, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 3440, 3585, (byte) 33 ); // Fill 145 of value (byte) 33
+        Arrays.fill(CHARS, 3585, 3631, (byte) -19 ); // Fill 46 of value (byte) -19
+        CHARS[3631] = 33;
+        CHARS[3632] = -19;
+        CHARS[3633] = -87;
+        Arrays.fill(CHARS, 3634, 3636, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 3636, 3643, (byte) -87 ); // Fill 7 of value (byte) -87
+        Arrays.fill(CHARS, 3643, 3648, (byte) 33 ); // Fill 5 of value (byte) 33
+        Arrays.fill(CHARS, 3648, 3654, (byte) -19 ); // Fill 6 of value (byte) -19
+        Arrays.fill(CHARS, 3654, 3663, (byte) -87 ); // Fill 9 of value (byte) -87
+        CHARS[3663] = 33;
+        Arrays.fill(CHARS, 3664, 3674, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 3674, 3713, (byte) 33 ); // Fill 39 of value (byte) 33
+        Arrays.fill(CHARS, 3713, 3715, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[3715] = 33;
+        CHARS[3716] = -19;
+        Arrays.fill(CHARS, 3717, 3719, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 3719, 3721, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[3721] = 33;
+        CHARS[3722] = -19;
+        Arrays.fill(CHARS, 3723, 3725, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[3725] = -19;
+        Arrays.fill(CHARS, 3726, 3732, (byte) 33 ); // Fill 6 of value (byte) 33
+        Arrays.fill(CHARS, 3732, 3736, (byte) -19 ); // Fill 4 of value (byte) -19
+        CHARS[3736] = 33;
+        Arrays.fill(CHARS, 3737, 3744, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[3744] = 33;
+        Arrays.fill(CHARS, 3745, 3748, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[3748] = 33;
+        CHARS[3749] = -19;
+        CHARS[3750] = 33;
+        CHARS[3751] = -19;
+        Arrays.fill(CHARS, 3752, 3754, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 3754, 3756, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[3756] = 33;
+        Arrays.fill(CHARS, 3757, 3759, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[3759] = 33;
+        CHARS[3760] = -19;
+        CHARS[3761] = -87;
+        Arrays.fill(CHARS, 3762, 3764, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 3764, 3770, (byte) -87 ); // Fill 6 of value (byte) -87
+        CHARS[3770] = 33;
+        Arrays.fill(CHARS, 3771, 3773, (byte) -87 ); // Fill 2 of value (byte) -87
+        CHARS[3773] = -19;
+        Arrays.fill(CHARS, 3774, 3776, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 3776, 3781, (byte) -19 ); // Fill 5 of value (byte) -19
+        CHARS[3781] = 33;
+        CHARS[3782] = -87;
+        CHARS[3783] = 33;
+        Arrays.fill(CHARS, 3784, 3790, (byte) -87 ); // Fill 6 of value (byte) -87
+        Arrays.fill(CHARS, 3790, 3792, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 3792, 3802, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 3802, 3864, (byte) 33 ); // Fill 62 of value (byte) 33
+        Arrays.fill(CHARS, 3864, 3866, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 3866, 3872, (byte) 33 ); // Fill 6 of value (byte) 33
+        Arrays.fill(CHARS, 3872, 3882, (byte) -87 ); // Fill 10 of value (byte) -87
+        Arrays.fill(CHARS, 3882, 3893, (byte) 33 ); // Fill 11 of value (byte) 33
+        CHARS[3893] = -87;
+        CHARS[3894] = 33;
+        CHARS[3895] = -87;
+        CHARS[3896] = 33;
+        CHARS[3897] = -87;
+        Arrays.fill(CHARS, 3898, 3902, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3902, 3904, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 3904, 3912, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[3912] = 33;
+        Arrays.fill(CHARS, 3913, 3946, (byte) -19 ); // Fill 33 of value (byte) -19
+        Arrays.fill(CHARS, 3946, 3953, (byte) 33 ); // Fill 7 of value (byte) 33
+        Arrays.fill(CHARS, 3953, 3973, (byte) -87 ); // Fill 20 of value (byte) -87
+        CHARS[3973] = 33;
+        Arrays.fill(CHARS, 3974, 3980, (byte) -87 ); // Fill 6 of value (byte) -87
+        Arrays.fill(CHARS, 3980, 3984, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 3984, 3990, (byte) -87 ); // Fill 6 of value (byte) -87
+        CHARS[3990] = 33;
+        CHARS[3991] = -87;
+        CHARS[3992] = 33;
+        Arrays.fill(CHARS, 3993, 4014, (byte) -87 ); // Fill 21 of value (byte) -87
+        Arrays.fill(CHARS, 4014, 4017, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 4017, 4024, (byte) -87 ); // Fill 7 of value (byte) -87
+        CHARS[4024] = 33;
+        CHARS[4025] = -87;
+        Arrays.fill(CHARS, 4026, 4256, (byte) 33 ); // Fill 230 of value (byte) 33
+        Arrays.fill(CHARS, 4256, 4294, (byte) -19 ); // Fill 38 of value (byte) -19
+        Arrays.fill(CHARS, 4294, 4304, (byte) 33 ); // Fill 10 of value (byte) 33
+        Arrays.fill(CHARS, 4304, 4343, (byte) -19 ); // Fill 39 of value (byte) -19
+        Arrays.fill(CHARS, 4343, 4352, (byte) 33 ); // Fill 9 of value (byte) 33
+        CHARS[4352] = -19;
+        CHARS[4353] = 33;
+        Arrays.fill(CHARS, 4354, 4356, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[4356] = 33;
+        Arrays.fill(CHARS, 4357, 4360, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[4360] = 33;
+        CHARS[4361] = -19;
+        CHARS[4362] = 33;
+        Arrays.fill(CHARS, 4363, 4365, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[4365] = 33;
+        Arrays.fill(CHARS, 4366, 4371, (byte) -19 ); // Fill 5 of value (byte) -19
+        Arrays.fill(CHARS, 4371, 4412, (byte) 33 ); // Fill 41 of value (byte) 33
+        CHARS[4412] = -19;
+        CHARS[4413] = 33;
+        CHARS[4414] = -19;
+        CHARS[4415] = 33;
+        CHARS[4416] = -19;
+        Arrays.fill(CHARS, 4417, 4428, (byte) 33 ); // Fill 11 of value (byte) 33
+        CHARS[4428] = -19;
+        CHARS[4429] = 33;
+        CHARS[4430] = -19;
+        CHARS[4431] = 33;
+        CHARS[4432] = -19;
+        Arrays.fill(CHARS, 4433, 4436, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 4436, 4438, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 4438, 4441, (byte) 33 ); // Fill 3 of value (byte) 33
+        CHARS[4441] = -19;
+        Arrays.fill(CHARS, 4442, 4447, (byte) 33 ); // Fill 5 of value (byte) 33
+        Arrays.fill(CHARS, 4447, 4450, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[4450] = 33;
+        CHARS[4451] = -19;
+        CHARS[4452] = 33;
+        CHARS[4453] = -19;
+        CHARS[4454] = 33;
+        CHARS[4455] = -19;
+        CHARS[4456] = 33;
+        CHARS[4457] = -19;
+        Arrays.fill(CHARS, 4458, 4461, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 4461, 4463, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 4463, 4466, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 4466, 4468, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[4468] = 33;
+        CHARS[4469] = -19;
+        Arrays.fill(CHARS, 4470, 4510, (byte) 33 ); // Fill 40 of value (byte) 33
+        CHARS[4510] = -19;
+        Arrays.fill(CHARS, 4511, 4520, (byte) 33 ); // Fill 9 of value (byte) 33
+        CHARS[4520] = -19;
+        Arrays.fill(CHARS, 4521, 4523, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[4523] = -19;
+        Arrays.fill(CHARS, 4524, 4526, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 4526, 4528, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 4528, 4535, (byte) 33 ); // Fill 7 of value (byte) 33
+        Arrays.fill(CHARS, 4535, 4537, (byte) -19 ); // Fill 2 of value (byte) -19
+        CHARS[4537] = 33;
+        CHARS[4538] = -19;
+        CHARS[4539] = 33;
+        Arrays.fill(CHARS, 4540, 4547, (byte) -19 ); // Fill 7 of value (byte) -19
+        Arrays.fill(CHARS, 4547, 4587, (byte) 33 ); // Fill 40 of value (byte) 33
+        CHARS[4587] = -19;
+        Arrays.fill(CHARS, 4588, 4592, (byte) 33 ); // Fill 4 of value (byte) 33
+        CHARS[4592] = -19;
+        Arrays.fill(CHARS, 4593, 4601, (byte) 33 ); // Fill 8 of value (byte) 33
+        CHARS[4601] = -19;
+        Arrays.fill(CHARS, 4602, 7680, (byte) 33 ); // Fill 3078 of value (byte) 33
+        Arrays.fill(CHARS, 7680, 7836, (byte) -19 ); // Fill 156 of value (byte) -19
+        Arrays.fill(CHARS, 7836, 7840, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 7840, 7930, (byte) -19 ); // Fill 90 of value (byte) -19
+        Arrays.fill(CHARS, 7930, 7936, (byte) 33 ); // Fill 6 of value (byte) 33
+        Arrays.fill(CHARS, 7936, 7958, (byte) -19 ); // Fill 22 of value (byte) -19
+        Arrays.fill(CHARS, 7958, 7960, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 7960, 7966, (byte) -19 ); // Fill 6 of value (byte) -19
+        Arrays.fill(CHARS, 7966, 7968, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 7968, 8006, (byte) -19 ); // Fill 38 of value (byte) -19
+        Arrays.fill(CHARS, 8006, 8008, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 8008, 8014, (byte) -19 ); // Fill 6 of value (byte) -19
+        Arrays.fill(CHARS, 8014, 8016, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 8016, 8024, (byte) -19 ); // Fill 8 of value (byte) -19
+        CHARS[8024] = 33;
+        CHARS[8025] = -19;
+        CHARS[8026] = 33;
+        CHARS[8027] = -19;
+        CHARS[8028] = 33;
+        CHARS[8029] = -19;
+        CHARS[8030] = 33;
+        Arrays.fill(CHARS, 8031, 8062, (byte) -19 ); // Fill 31 of value (byte) -19
+        Arrays.fill(CHARS, 8062, 8064, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 8064, 8117, (byte) -19 ); // Fill 53 of value (byte) -19
+        CHARS[8117] = 33;
+        Arrays.fill(CHARS, 8118, 8125, (byte) -19 ); // Fill 7 of value (byte) -19
+        CHARS[8125] = 33;
+        CHARS[8126] = -19;
+        Arrays.fill(CHARS, 8127, 8130, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 8130, 8133, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[8133] = 33;
+        Arrays.fill(CHARS, 8134, 8141, (byte) -19 ); // Fill 7 of value (byte) -19
+        Arrays.fill(CHARS, 8141, 8144, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 8144, 8148, (byte) -19 ); // Fill 4 of value (byte) -19
+        Arrays.fill(CHARS, 8148, 8150, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 8150, 8156, (byte) -19 ); // Fill 6 of value (byte) -19
+        Arrays.fill(CHARS, 8156, 8160, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 8160, 8173, (byte) -19 ); // Fill 13 of value (byte) -19
+        Arrays.fill(CHARS, 8173, 8178, (byte) 33 ); // Fill 5 of value (byte) 33
+        Arrays.fill(CHARS, 8178, 8181, (byte) -19 ); // Fill 3 of value (byte) -19
+        CHARS[8181] = 33;
+        Arrays.fill(CHARS, 8182, 8189, (byte) -19 ); // Fill 7 of value (byte) -19
+        Arrays.fill(CHARS, 8189, 8400, (byte) 33 ); // Fill 211 of value (byte) 33
+        Arrays.fill(CHARS, 8400, 8413, (byte) -87 ); // Fill 13 of value (byte) -87
+        Arrays.fill(CHARS, 8413, 8417, (byte) 33 ); // Fill 4 of value (byte) 33
+        CHARS[8417] = -87;
+        Arrays.fill(CHARS, 8418, 8486, (byte) 33 ); // Fill 68 of value (byte) 33
+        CHARS[8486] = -19;
+        Arrays.fill(CHARS, 8487, 8490, (byte) 33 ); // Fill 3 of value (byte) 33
+        Arrays.fill(CHARS, 8490, 8492, (byte) -19 ); // Fill 2 of value (byte) -19
+        Arrays.fill(CHARS, 8492, 8494, (byte) 33 ); // Fill 2 of value (byte) 33
+        CHARS[8494] = -19;
+        Arrays.fill(CHARS, 8495, 8576, (byte) 33 ); // Fill 81 of value (byte) 33
+        Arrays.fill(CHARS, 8576, 8579, (byte) -19 ); // Fill 3 of value (byte) -19
+        Arrays.fill(CHARS, 8579, 12293, (byte) 33 ); // Fill 3714 of value (byte) 33
+        CHARS[12293] = -87;
+        CHARS[12294] = 33;
+        CHARS[12295] = -19;
+        Arrays.fill(CHARS, 12296, 12321, (byte) 33 ); // Fill 25 of value (byte) 33
+        Arrays.fill(CHARS, 12321, 12330, (byte) -19 ); // Fill 9 of value (byte) -19
+        Arrays.fill(CHARS, 12330, 12336, (byte) -87 ); // Fill 6 of value (byte) -87
+        CHARS[12336] = 33;
+        Arrays.fill(CHARS, 12337, 12342, (byte) -87 ); // Fill 5 of value (byte) -87
+        Arrays.fill(CHARS, 12342, 12353, (byte) 33 ); // Fill 11 of value (byte) 33
+        Arrays.fill(CHARS, 12353, 12437, (byte) -19 ); // Fill 84 of value (byte) -19
+        Arrays.fill(CHARS, 12437, 12441, (byte) 33 ); // Fill 4 of value (byte) 33
+        Arrays.fill(CHARS, 12441, 12443, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 12443, 12445, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 12445, 12447, (byte) -87 ); // Fill 2 of value (byte) -87
+        Arrays.fill(CHARS, 12447, 12449, (byte) 33 ); // Fill 2 of value (byte) 33
+        Arrays.fill(CHARS, 12449, 12539, (byte) -19 ); // Fill 90 of value (byte) -19
+        CHARS[12539] = 33;
+        Arrays.fill(CHARS, 12540, 12543, (byte) -87 ); // Fill 3 of value (byte) -87
+        Arrays.fill(CHARS, 12543, 12549, (byte) 33 ); // Fill 6 of value (byte) 33
+        Arrays.fill(CHARS, 12549, 12589, (byte) -19 ); // Fill 40 of value (byte) -19
+        Arrays.fill(CHARS, 12589, 19968, (byte) 33 ); // Fill 7379 of value (byte) 33
+        Arrays.fill(CHARS, 19968, 40870, (byte) -19 ); // Fill 20902 of value (byte) -19
+        Arrays.fill(CHARS, 40870, 44032, (byte) 33 ); // Fill 3162 of value (byte) 33
+        Arrays.fill(CHARS, 44032, 55204, (byte) -19 ); // Fill 11172 of value (byte) -19
+        Arrays.fill(CHARS, 55204, 55296, (byte) 33 ); // Fill 92 of value (byte) 33
+        Arrays.fill(CHARS, 57344, 65534, (byte) 33 ); // Fill 8190 of value (byte) 33
+
+    } // <clinit>()
+
+    //
+    // Public static methods
+    //
+
+    /**
+     * Returns true if the specified character is a supplemental character.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isSupplemental(int c) {
+        return (c >= 0x10000 && c <= 0x10FFFF);
+    }
+
+    /**
+     * Returns true the supplemental character corresponding to the given
+     * surrogates.
+     *
+     * @param h The high surrogate.
+     * @param l The low surrogate.
+     */
+    public static int supplemental(char h, char l) {
+        return (h - 0xD800) * 0x400 + (l - 0xDC00) + 0x10000;
+    }
+
+    /**
+     * Returns the high surrogate of a supplemental character
+     *
+     * @param c The supplemental character to "split".
+     */
+    public static char highSurrogate(int c) {
+        return (char) (((c - 0x00010000) >> 10) + 0xD800);
+    }
+
+    /**
+     * Returns the low surrogate of a supplemental character
+     *
+     * @param c The supplemental character to "split".
+     */
+    public static char lowSurrogate(int c) {
+        return (char) (((c - 0x00010000) & 0x3FF) + 0xDC00);
+    }
+
+    /**
+     * Returns whether the given character is a high surrogate
+     *
+     * @param c The character to check.
+     */
+    public static boolean isHighSurrogate(int c) {
+        return (0xD800 <= c && c <= 0xDBFF);
+    }
+
+    /**
+     * Returns whether the given character is a low surrogate
+     *
+     * @param c The character to check.
+     */
+    public static boolean isLowSurrogate(int c) {
+        return (0xDC00 <= c && c <= 0xDFFF);
+    }
+
+
+    /**
+     * Returns true if the specified character is valid. This method
+     * also checks the surrogate character range from 0x10000 to 0x10FFFF.
+     * <p>
+     * If the program chooses to apply the mask directly to the
+     * <code>CHARS</code> array, then they are responsible for checking
+     * the surrogate character range.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isValid(int c) {
+        return (c < 0x10000 && (CHARS[c] & MASK_VALID) != 0) ||
+               (0x10000 <= c && c <= 0x10FFFF);
+    } // isValid(int):boolean
+
+    /**
+     * Returns true if the specified character is invalid.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isInvalid(int c) {
+        return !isValid(c);
+    } // isInvalid(int):boolean
+
+    /**
+     * Returns true if the specified character can be considered content.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isContent(int c) {
+        return (c < 0x10000 && (CHARS[c] & MASK_CONTENT) != 0) ||
+               (0x10000 <= c && c <= 0x10FFFF);
+    } // isContent(int):boolean
+
+    /**
+     * Returns true if the specified character can be considered markup.
+     * Markup characters include '&lt;', '&amp;', and '%'.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isMarkup(int c) {
+        return c == '<' || c == '&' || c == '%';
+    } // isMarkup(int):boolean
+
+    /**
+     * Returns true if the specified character is a space character
+     * as defined by production [3] in the XML 1.0 specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isSpace(int c) {
+        return c <= 0x20 && (CHARS[c] & MASK_SPACE) != 0;
+    } // isSpace(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid name start
+     * character as defined by production [5] in the XML 1.0
+     * specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isNameStart(int c) {
+        return c < 0x10000 && (CHARS[c] & MASK_NAME_START) != 0;
+    } // isNameStart(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid name
+     * character as defined by production [4] in the XML 1.0
+     * specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isName(int c) {
+        return c < 0x10000 && (CHARS[c] & MASK_NAME) != 0;
+    } // isName(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid NCName start
+     * character as defined by production [4] in Namespaces in XML
+     * recommendation.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isNCNameStart(int c) {
+        return c < 0x10000 && (CHARS[c] & MASK_NCNAME_START) != 0;
+    } // isNCNameStart(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid NCName
+     * character as defined by production [5] in Namespaces in XML
+     * recommendation.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isNCName(int c) {
+        return c < 0x10000 && (CHARS[c] & MASK_NCNAME) != 0;
+    } // isNCName(int):boolean
+
+    /**
+     * Returns true if the specified character is a valid Pubid
+     * character as defined by production [13] in the XML 1.0
+     * specification.
+     *
+     * @param c The character to check.
+     */
+    public static boolean isPubid(int c) {
+        return c < 0x10000 && (CHARS[c] & MASK_PUBID) != 0;
+    } // isPubid(int):boolean
+
+    /*
+     * [5] Name ::= (Letter | '_' | ':') (NameChar)*
+     */
+    /**
+     * Check to see if a string is a valid Name according to [5]
+     * in the XML 1.0 Recommendation
+     *
+     * @param name string to check
+     * @return true if name is a valid Name
+     */
+    public static boolean isValidName(String name) {
+        if (name.length() == 0)
+            return false;
+        char ch = name.charAt(0);
+        if( isNameStart(ch) == false)
+           return false;
+        for (int i = 1; i < name.length(); i++ ) {
+           ch = name.charAt(i);
+           if( isName( ch ) == false ){
+              return false;
+           }
+        }
+        return true;
+    } // isValidName(String):boolean
+    
+
+    /*
+     * from the namespace rec
+     * [4] NCName ::= (Letter | '_') (NCNameChar)*
+     */
+    /**
+     * Check to see if a string is a valid NCName according to [4]
+     * from the XML Namespaces 1.0 Recommendation
+     *
+     * @param ncName string to check
+     * @return true if name is a valid NCName
+     */
+    public static boolean isValidNCName(String ncName) {
+        if (ncName.length() == 0)
+            return false;
+        char ch = ncName.charAt(0);
+        if( isNCNameStart(ch) == false)
+           return false;
+        for (int i = 1; i < ncName.length(); i++ ) {
+           ch = ncName.charAt(i);
+           if( isNCName( ch ) == false ){
+              return false;
+           }
+        }
+        return true;
+    } // isValidNCName(String):boolean
+
+    /*
+     * [7] Nmtoken ::= (NameChar)+
+     */
+    /**
+     * Check to see if a string is a valid Nmtoken according to [7]
+     * in the XML 1.0 Recommendation
+     *
+     * @param nmtoken string to check
+     * @return true if nmtoken is a valid Nmtoken 
+     */
+    public static boolean isValidNmtoken(String nmtoken) {
+        if (nmtoken.length() == 0)
+            return false;
+        for (int i = 0; i < nmtoken.length(); i++ ) {
+           char ch = nmtoken.charAt(i);
+           if(  ! isName( ch ) ){
+              return false;
+           }
+        }
+        return true;
+    } // isValidName(String):boolean
+
+
+
+
+
+    // encodings
+
+    /**
+     * Returns true if the encoding name is a valid IANA encoding.
+     * This method does not verify that there is a decoder available
+     * for this encoding, only that the characters are valid for an
+     * IANA encoding name.
+     *
+     * @param ianaEncoding The IANA encoding name.
+     */
+    public static boolean isValidIANAEncoding(String ianaEncoding) {
+        if (ianaEncoding != null) {
+            int length = ianaEncoding.length();
+            if (length > 0) {
+                char c = ianaEncoding.charAt(0);
+                if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
+                    for (int i = 1; i < length; i++) {
+                        c = ianaEncoding.charAt(i);
+                        if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z') &&
+                            (c < '0' || c > '9') && c != '.' && c != '_' &&
+                            c != '-') {
+                            return false;
+                        }
+                    }
+                    return true;
+                }
+            }
+        }
+        return false;
+    } // isValidIANAEncoding(String):boolean
+
+    /**
+     * Returns true if the encoding name is a valid Java encoding.
+     * This method does not verify that there is a decoder available
+     * for this encoding, only that the characters are valid for an
+     * Java encoding name.
+     *
+     * @param javaEncoding The Java encoding name.
+     */
+    public static boolean isValidJavaEncoding(String javaEncoding) {
+        if (javaEncoding != null) {
+            int length = javaEncoding.length();
+            if (length > 0) {
+                for (int i = 1; i < length; i++) {
+                    char c = javaEncoding.charAt(i);
+                    if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z') &&
+                        (c < '0' || c > '9') && c != '.' && c != '_' &&
+                        c != '-') {
+                        return false;
+                    }
+                }
+                return true;
+            }
+        }
+        return false;
+    } // isValidIANAEncoding(String):boolean
+
+
+} // class XMLChar
diff --git a/src/org/apache/xml/utils/ObjectFactory.java b/src/org/apache/xml/utils/ObjectFactory.java
index 189537c..5077e53 100644
--- a/src/org/apache/xml/utils/ObjectFactory.java
+++ b/src/org/apache/xml/utils/ObjectFactory.java
@@ -45,7 +45,7 @@
  * class and modified to be used as a general utility for creating objects 
  * dynamically.
  *
- * @version $Id:  $
+ * @version $Id$
  */
 class ObjectFactory {
 
diff --git a/src/org/apache/xml/utils/XMLChar.java b/src/org/apache/xml/utils/XMLChar.java
index 779a4c0..29345fc 100644
--- a/src/org/apache/xml/utils/XMLChar.java
+++ b/src/org/apache/xml/utils/XMLChar.java
@@ -42,7 +42,7 @@
  * @author Arnaud  Le Hors, IBM
  * @author Rahul Srivastava, Sun Microsystems Inc.
  *
- * @version $Id: XMLChar.java,v 1.7 2002/01/29 01:15:18 lehors Exp $
+ * @version $Id$
  */
 public class XMLChar {
 
diff --git a/src/org/apache/xpath/res/XPATHErrorResources_sl.java b/src/org/apache/xpath/res/XPATHErrorResources_sl.java
old mode 100755
new mode 100644
index 5f418f0..afe4790
--- a/src/org/apache/xpath/res/XPATHErrorResources_sl.java
+++ b/src/org/apache/xpath/res/XPATHErrorResources_sl.java
@@ -1,992 +1,992 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: XPATHErrorResources_sl.java,v 1.29 2005/02/09 21:44:08 zongaro Exp $

- */

-

-package org.apache.xpath.res;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * Set up error messages.

- * We build a two dimensional array of message keys and

- * message strings. In order to add a new message here,

- * you need to first add a Static string constant for the

- * Key and update the contents array with Key, Value pair

-  * Also you need to  update the count of messages(MAX_CODE)or

- * the count of warnings(MAX_WARNING) [ Information purpose only]

- * @xsl.usage advanced

- */

-public class XPATHErrorResources_sl extends ListResourceBundle

-{

-

-/*

- * General notes to translators:

- *

- * This file contains error and warning messages related to XPath Error

- * Handling.

- *

- *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of

- *     components.

- *     XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *     XSLTC is an acronym for XSLT Compiler.

- *

- *  2) A stylesheet is a description of how to transform an input XML document

- *     into a resultant XML document (or HTML document or text).  The

- *     stylesheet itself is described in the form of an XML document.

- *

- *  3) A template is a component of a stylesheet that is used to match a

- *     particular portion of an input document and specifies the form of the

- *     corresponding portion of the output document.

- *

- *  4) An element is a mark-up tag in an XML document; an attribute is a

- *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *     "elem" is an element name, "attr" and "attr2" are attribute names with

- *     the values "val" and "val2", respectively.

- *

- *  5) A namespace declaration is a special attribute that is used to associate

- *     a prefix with a URI (the namespace).  The meanings of element names and

- *     attribute names that use that prefix are defined with respect to that

- *     namespace.

- *

- *  6) "Translet" is an invented term that describes the class file that

- *     results from compiling an XML stylesheet into a Java class.

- *

- *  7) XPath is a specification that describes a notation for identifying

- *     nodes in a tree-structured representation of an XML document.  An

- *     instance of that notation is referred to as an XPath expression.

- *

- *  8) The context node is the node in the document with respect to which an

- *     XPath expression is being evaluated.

- *

- *  9) An iterator is an object that traverses nodes in the tree, one at a time.

- *

- *  10) NCName is an XML term used to describe a name that does not contain a

- *     colon (a "no-colon name").

- *

- *  11) QName is an XML term meaning "qualified name".

- */

-

-  /*

-   * static variables

-   */

-  public static final String ERROR0000 = "ERROR0000";

-  public static final String ER_CURRENT_NOT_ALLOWED_IN_MATCH =

-         "ER_CURRENT_NOT_ALLOWED_IN_MATCH";

-  public static final String ER_CURRENT_TAKES_NO_ARGS =

-         "ER_CURRENT_TAKES_NO_ARGS";

-  public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED";

-  public static final String ER_CONTEXT_HAS_NO_OWNERDOC =

-         "ER_CONTEXT_HAS_NO_OWNERDOC";

-  public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS =

-         "ER_LOCALNAME_HAS_TOO_MANY_ARGS";

-  public static final String ER_NAMESPACEURI_HAS_TOO_MANY_ARGS =

-         "ER_NAMESPACEURI_HAS_TOO_MANY_ARGS";

-  public static final String ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS =

-         "ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS";

-  public static final String ER_NUMBER_HAS_TOO_MANY_ARGS =

-         "ER_NUMBER_HAS_TOO_MANY_ARGS";

-  public static final String ER_NAME_HAS_TOO_MANY_ARGS =

-         "ER_NAME_HAS_TOO_MANY_ARGS";

-  public static final String ER_STRING_HAS_TOO_MANY_ARGS =

-         "ER_STRING_HAS_TOO_MANY_ARGS";

-  public static final String ER_STRINGLENGTH_HAS_TOO_MANY_ARGS =

-         "ER_STRINGLENGTH_HAS_TOO_MANY_ARGS";

-  public static final String ER_TRANSLATE_TAKES_3_ARGS =

-         "ER_TRANSLATE_TAKES_3_ARGS";

-  public static final String ER_UNPARSEDENTITYURI_TAKES_1_ARG =

-         "ER_UNPARSEDENTITYURI_TAKES_1_ARG";

-  public static final String ER_NAMESPACEAXIS_NOT_IMPLEMENTED =

-         "ER_NAMESPACEAXIS_NOT_IMPLEMENTED";

-  public static final String ER_UNKNOWN_AXIS = "ER_UNKNOWN_AXIS";

-  public static final String ER_UNKNOWN_MATCH_OPERATION =

-         "ER_UNKNOWN_MATCH_OPERATION";

-  public static final String ER_INCORRECT_ARG_LENGTH ="ER_INCORRECT_ARG_LENGTH";

-  public static final String ER_CANT_CONVERT_TO_NUMBER =

-         "ER_CANT_CONVERT_TO_NUMBER";

-  public static final String ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER =

-           "ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER";

-  public static final String ER_CANT_CONVERT_TO_NODELIST =

-         "ER_CANT_CONVERT_TO_NODELIST";

-  public static final String ER_CANT_CONVERT_TO_MUTABLENODELIST =

-         "ER_CANT_CONVERT_TO_MUTABLENODELIST";

-  public static final String ER_CANT_CONVERT_TO_TYPE ="ER_CANT_CONVERT_TO_TYPE";

-  public static final String ER_EXPECTED_MATCH_PATTERN =

-         "ER_EXPECTED_MATCH_PATTERN";

-  public static final String ER_COULDNOT_GET_VAR_NAMED =

-         "ER_COULDNOT_GET_VAR_NAMED";

-  public static final String ER_UNKNOWN_OPCODE = "ER_UNKNOWN_OPCODE";

-  public static final String ER_EXTRA_ILLEGAL_TOKENS ="ER_EXTRA_ILLEGAL_TOKENS";

-  public static final String ER_EXPECTED_DOUBLE_QUOTE =

-         "ER_EXPECTED_DOUBLE_QUOTE";

-  public static final String ER_EXPECTED_SINGLE_QUOTE =

-         "ER_EXPECTED_SINGLE_QUOTE";

-  public static final String ER_EMPTY_EXPRESSION = "ER_EMPTY_EXPRESSION";

-  public static final String ER_EXPECTED_BUT_FOUND = "ER_EXPECTED_BUT_FOUND";

-  public static final String ER_INCORRECT_PROGRAMMER_ASSERTION =

-         "ER_INCORRECT_PROGRAMMER_ASSERTION";

-  public static final String ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL =

-         "ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL";

-  public static final String ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG =

-         "ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG";

-  public static final String ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG =

-         "ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG";

-  public static final String ER_PREDICATE_ILLEGAL_SYNTAX =

-         "ER_PREDICATE_ILLEGAL_SYNTAX";

-  public static final String ER_ILLEGAL_AXIS_NAME = "ER_ILLEGAL_AXIS_NAME";

-  public static final String ER_UNKNOWN_NODETYPE = "ER_UNKNOWN_NODETYPE";

-  public static final String ER_PATTERN_LITERAL_NEEDS_BE_QUOTED =

-         "ER_PATTERN_LITERAL_NEEDS_BE_QUOTED";

-  public static final String ER_COULDNOT_BE_FORMATTED_TO_NUMBER =

-         "ER_COULDNOT_BE_FORMATTED_TO_NUMBER";

-  public static final String ER_COULDNOT_CREATE_XMLPROCESSORLIAISON =

-         "ER_COULDNOT_CREATE_XMLPROCESSORLIAISON";

-  public static final String ER_DIDNOT_FIND_XPATH_SELECT_EXP =

-         "ER_DIDNOT_FIND_XPATH_SELECT_EXP";

-  public static final String ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH =

-         "ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH";

-  public static final String ER_ERROR_OCCURED = "ER_ERROR_OCCURED";

-  public static final String ER_ILLEGAL_VARIABLE_REFERENCE =

-         "ER_ILLEGAL_VARIABLE_REFERENCE";

-  public static final String ER_AXES_NOT_ALLOWED = "ER_AXES_NOT_ALLOWED";

-  public static final String ER_KEY_HAS_TOO_MANY_ARGS =

-         "ER_KEY_HAS_TOO_MANY_ARGS";

-  public static final String ER_COUNT_TAKES_1_ARG = "ER_COUNT_TAKES_1_ARG";

-  public static final String ER_COULDNOT_FIND_FUNCTION =

-         "ER_COULDNOT_FIND_FUNCTION";

-  public static final String ER_UNSUPPORTED_ENCODING ="ER_UNSUPPORTED_ENCODING";

-  public static final String ER_PROBLEM_IN_DTM_NEXTSIBLING =

-         "ER_PROBLEM_IN_DTM_NEXTSIBLING";

-  public static final String ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL =

-         "ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL";

-  public static final String ER_SETDOMFACTORY_NOT_SUPPORTED =

-         "ER_SETDOMFACTORY_NOT_SUPPORTED";

-  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";

-  public static final String ER_PARSE_NOT_SUPPORTED = "ER_PARSE_NOT_SUPPORTED";

-  public static final String ER_SAX_API_NOT_HANDLED = "ER_SAX_API_NOT_HANDLED";

-public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED =

-         "ER_IGNORABLE_WHITESPACE_NOT_HANDLED";

-  public static final String ER_DTM_CANNOT_HANDLE_NODES =

-         "ER_DTM_CANNOT_HANDLE_NODES";

-  public static final String ER_XERCES_CANNOT_HANDLE_NODES =

-         "ER_XERCES_CANNOT_HANDLE_NODES";

-  public static final String ER_XERCES_PARSE_ERROR_DETAILS =

-         "ER_XERCES_PARSE_ERROR_DETAILS";

-  public static final String ER_XERCES_PARSE_ERROR = "ER_XERCES_PARSE_ERROR";

-  public static final String ER_INVALID_UTF16_SURROGATE =

-         "ER_INVALID_UTF16_SURROGATE";

-  public static final String ER_OIERROR = "ER_OIERROR";

-  public static final String ER_CANNOT_CREATE_URL = "ER_CANNOT_CREATE_URL";

-  public static final String ER_XPATH_READOBJECT = "ER_XPATH_READOBJECT";

- public static final String ER_FUNCTION_TOKEN_NOT_FOUND =

-         "ER_FUNCTION_TOKEN_NOT_FOUND";

-  public static final String ER_CANNOT_DEAL_XPATH_TYPE =

-         "ER_CANNOT_DEAL_XPATH_TYPE";

-  public static final String ER_NODESET_NOT_MUTABLE = "ER_NODESET_NOT_MUTABLE";

-  public static final String ER_NODESETDTM_NOT_MUTABLE =

-         "ER_NODESETDTM_NOT_MUTABLE";

-   /**  Variable not resolvable:   */

-  public static final String ER_VAR_NOT_RESOLVABLE = "ER_VAR_NOT_RESOLVABLE";

-   /** Null error handler  */

- public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";

-   /**  Programmer's assertion: unknown opcode  */

-  public static final String ER_PROG_ASSERT_UNKNOWN_OPCODE =

-         "ER_PROG_ASSERT_UNKNOWN_OPCODE";

-   /**  0 or 1   */

-  public static final String ER_ZERO_OR_ONE = "ER_ZERO_OR_ONE";

-   /**  rtf() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-   /**  asNodeIterator() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER = "ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-   /**  fsb() not supported for XStringForChars   */

-  public static final String ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS =

-         "ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS";

-   /**  Could not find variable with the name of   */

- public static final String ER_COULD_NOT_FIND_VAR = "ER_COULD_NOT_FIND_VAR";

-   /**  XStringForChars can not take a string for an argument   */

- public static final String ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING =

-         "ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING";

-   /**  The FastStringBuffer argument can not be null   */

- public static final String ER_FASTSTRINGBUFFER_CANNOT_BE_NULL =

-         "ER_FASTSTRINGBUFFER_CANNOT_BE_NULL";

-   /**  2 or 3   */

-  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";

-   /** Variable accessed before it is bound! */

-  public static final String ER_VARIABLE_ACCESSED_BEFORE_BIND =

-         "ER_VARIABLE_ACCESSED_BEFORE_BIND";

-   /** XStringForFSB can not take a string for an argument! */

- public static final String ER_FSB_CANNOT_TAKE_STRING =

-         "ER_FSB_CANNOT_TAKE_STRING";

-   /** Error! Setting the root of a walker to null! */

-  public static final String ER_SETTING_WALKER_ROOT_TO_NULL =

-         "ER_SETTING_WALKER_ROOT_TO_NULL";

-   /** This NodeSetDTM can not iterate to a previous node! */

-  public static final String ER_NODESETDTM_CANNOT_ITERATE =

-         "ER_NODESETDTM_CANNOT_ITERATE";

-  /** This NodeSet can not iterate to a previous node! */

- public static final String ER_NODESET_CANNOT_ITERATE =

-         "ER_NODESET_CANNOT_ITERATE";

-  /** This NodeSetDTM can not do indexing or counting functions! */

-  public static final String ER_NODESETDTM_CANNOT_INDEX =

-         "ER_NODESETDTM_CANNOT_INDEX";

-  /** This NodeSet can not do indexing or counting functions! */

-  public static final String ER_NODESET_CANNOT_INDEX =

-         "ER_NODESET_CANNOT_INDEX";

-  /** Can not call setShouldCacheNodes after nextNode has been called! */

-  public static final String ER_CANNOT_CALL_SETSHOULDCACHENODE =

-         "ER_CANNOT_CALL_SETSHOULDCACHENODE";

-  /** {0} only allows {1} arguments */

- public static final String ER_ONLY_ALLOWS = "ER_ONLY_ALLOWS";

-  /** Programmer's assertion in getNextStepPos: unknown stepType: {0} */

-  public static final String ER_UNKNOWN_STEP = "ER_UNKNOWN_STEP";

-  /** Problem with RelativeLocationPath */

-  public static final String ER_EXPECTED_REL_LOC_PATH =

-         "ER_EXPECTED_REL_LOC_PATH";

-  /** Problem with LocationPath */

-  public static final String ER_EXPECTED_LOC_PATH = "ER_EXPECTED_LOC_PATH";

-  public static final String ER_EXPECTED_LOC_PATH_AT_END_EXPR =

-                                        "ER_EXPECTED_LOC_PATH_AT_END_EXPR";

-  /** Problem with Step */

-  public static final String ER_EXPECTED_LOC_STEP = "ER_EXPECTED_LOC_STEP";

-  /** Problem with NodeTest */

-  public static final String ER_EXPECTED_NODE_TEST = "ER_EXPECTED_NODE_TEST";

-  /** Expected step pattern */

-  public static final String ER_EXPECTED_STEP_PATTERN =

-        "ER_EXPECTED_STEP_PATTERN";

-  /** Expected relative path pattern */

-  public static final String ER_EXPECTED_REL_PATH_PATTERN =

-         "ER_EXPECTED_REL_PATH_PATTERN";

-  /** ER_CANT_CONVERT_XPATHRESULTTYPE_TO_BOOLEAN          */

-  public static final String ER_CANT_CONVERT_TO_BOOLEAN =

-         "ER_CANT_CONVERT_TO_BOOLEAN";

-  /** Field ER_CANT_CONVERT_TO_SINGLENODE       */

-  public static final String ER_CANT_CONVERT_TO_SINGLENODE =

-         "ER_CANT_CONVERT_TO_SINGLENODE";

-  /** Field ER_CANT_GET_SNAPSHOT_LENGTH         */

-  public static final String ER_CANT_GET_SNAPSHOT_LENGTH =

-         "ER_CANT_GET_SNAPSHOT_LENGTH";

-  /** Field ER_NON_ITERATOR_TYPE                */

-  public static final String ER_NON_ITERATOR_TYPE = "ER_NON_ITERATOR_TYPE";

-  /** Field ER_DOC_MUTATED                      */

-  public static final String ER_DOC_MUTATED = "ER_DOC_MUTATED";

-  public static final String ER_INVALID_XPATH_TYPE = "ER_INVALID_XPATH_TYPE";

-  public static final String ER_EMPTY_XPATH_RESULT = "ER_EMPTY_XPATH_RESULT";

-  public static final String ER_INCOMPATIBLE_TYPES = "ER_INCOMPATIBLE_TYPES";

-  public static final String ER_NULL_RESOLVER = "ER_NULL_RESOLVER";

-  public static final String ER_CANT_CONVERT_TO_STRING =

-         "ER_CANT_CONVERT_TO_STRING";

-  public static final String ER_NON_SNAPSHOT_TYPE = "ER_NON_SNAPSHOT_TYPE";

-  public static final String ER_WRONG_DOCUMENT = "ER_WRONG_DOCUMENT";

-  /* Note to translators:  The XPath expression cannot be evaluated with respect

-   * to this type of node.

-   */

-  /** Field ER_WRONG_NODETYPE                    */

-  public static final String ER_WRONG_NODETYPE = "ER_WRONG_NODETYPE";

-  public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";

-

-  //BEGIN: Keys needed for exception messages of  JAXP 1.3 XPath API implementation

-  public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";

-  public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";

-  public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";

-  public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";

-  public static final String ER_ARG_CANNOT_BE_NULL = "ER_ARG_CANNOT_BE_NULL";

-

-  public static final String ER_OBJECT_MODEL_NULL = "ER_OBJECT_MODEL_NULL";

-  public static final String ER_OBJECT_MODEL_EMPTY = "ER_OBJECT_MODEL_EMPTY";

-  public static final String ER_FEATURE_NAME_NULL = "ER_FEATURE_NAME_NULL";

-  public static final String ER_FEATURE_UNKNOWN = "ER_FEATURE_UNKNOWN";

-  public static final String ER_GETTING_NULL_FEATURE = "ER_GETTING_NULL_FEATURE";

-  public static final String ER_GETTING_UNKNOWN_FEATURE = "ER_GETTING_UNKNOWN_FEATURE";

-  public static final String ER_NULL_XPATH_FUNCTION_RESOLVER = "ER_NULL_XPATH_FUNCTION_RESOLVER";

-  public static final String ER_NULL_XPATH_VARIABLE_RESOLVER = "ER_NULL_XPATH_VARIABLE_RESOLVER";

-  //END: Keys needed for exception messages of  JAXP 1.3 XPath API implementation

-

-  public static final String WG_LOCALE_NAME_NOT_HANDLED =

-         "WG_LOCALE_NAME_NOT_HANDLED";

-  public static final String WG_PROPERTY_NOT_SUPPORTED =

-         "WG_PROPERTY_NOT_SUPPORTED";

-  public static final String WG_DONT_DO_ANYTHING_WITH_NS =

-         "WG_DONT_DO_ANYTHING_WITH_NS";

-  public static final String WG_SECURITY_EXCEPTION = "WG_SECURITY_EXCEPTION";

-  public static final String WG_QUO_NO_LONGER_DEFINED =

-         "WG_QUO_NO_LONGER_DEFINED";

-  public static final String WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST =

-         "WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST";

-  public static final String WG_FUNCTION_TOKEN_NOT_FOUND =

-         "WG_FUNCTION_TOKEN_NOT_FOUND";

-  public static final String WG_COULDNOT_FIND_FUNCTION =

-         "WG_COULDNOT_FIND_FUNCTION";

-  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";

-  public static final String WG_EXPAND_ENTITIES_NOT_SUPPORTED =

-         "WG_EXPAND_ENTITIES_NOT_SUPPORTED";

-  public static final String WG_ILLEGAL_VARIABLE_REFERENCE =

-         "WG_ILLEGAL_VARIABLE_REFERENCE";

-  public static final String WG_UNSUPPORTED_ENCODING ="WG_UNSUPPORTED_ENCODING";

-

-  /**  detach() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-  /**  num() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-  /**  xstr() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-  /**  str() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-

-  // Error messages...

-

-

-  /**

-   * Get the association list.

-   *

-   * @return The association list.

-   */

-  public Object[][] getContents()

-  {

-    return new Object[][]{

-

-  { "ERROR0000" , "{0}" },

-

-  { ER_CURRENT_NOT_ALLOWED_IN_MATCH, "Funkcija current() v primerjalnem vzorcu ni dovoljena!" },

-

-  { ER_CURRENT_TAKES_NO_ARGS, "Funkcija current() ne sprejema argumentov!" },

-

-  { ER_DOCUMENT_REPLACED,

-      "Implementacija funkcije document() je bila nadome\u0161\u010dena z org.apache.xalan.xslt.FuncDocument!"},

-

-  { ER_CONTEXT_HAS_NO_OWNERDOC,

-      "Kontekst ne vsebuje lastni\u0161kega dokumenta!"},

-

-  { ER_LOCALNAME_HAS_TOO_MANY_ARGS,

-      "local-name() ima preve\u010d argumentov."},

-

-  { ER_NAMESPACEURI_HAS_TOO_MANY_ARGS,

-      "namespace-uri() ima preve\u010d argumentov."},

-

-  { ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS,

-      "normalize-space() ima preve\u010d argumentov."},

-

-  { ER_NUMBER_HAS_TOO_MANY_ARGS,

-      "number() ima preve\u010d argumentov."},

-

-  { ER_NAME_HAS_TOO_MANY_ARGS,

-     "name() ima preve\u010d argumentov."},

-

-  { ER_STRING_HAS_TOO_MANY_ARGS,

-      "string() ima preve\u010d argumentov."},

-

-  { ER_STRINGLENGTH_HAS_TOO_MANY_ARGS,

-      "string-length() ima preve\u010d argumentov."},

-

-  { ER_TRANSLATE_TAKES_3_ARGS,

-      "Funkcija translate() sprejme tri argumente!"},

-

-  { ER_UNPARSEDENTITYURI_TAKES_1_ARG,

-      "Funkcija unparsed-entity-uri bi morala vsebovati en argument!"},

-

-  { ER_NAMESPACEAXIS_NOT_IMPLEMENTED,

-      "Os imenskega prostora \u0161e ni implementirana!"},

-

-  { ER_UNKNOWN_AXIS,

-     "neznana os: {0}"},

-

-  { ER_UNKNOWN_MATCH_OPERATION,

-     "neznana operacija ujemanja!"},

-

-  { ER_INCORRECT_ARG_LENGTH,

-      "Dol\u017eina argumenta pri preskusu vozli\u0161\u010da s processing-instruction() ni pravilna!"},

-

-  { ER_CANT_CONVERT_TO_NUMBER,

-      "{0} ni mogo\u010de pretvoriti v \u0161tevilko"},

-

-  { ER_CANT_CONVERT_TO_NODELIST,

-      "{0} ni mogo\u010de pretvoriti v seznam vozli\u0161\u010d (NodeList)"},

-

-  { ER_CANT_CONVERT_TO_MUTABLENODELIST,

-      "{0} ni mogo\u010de pretvoriti v NodeSetDTM"},

-

-  { ER_CANT_CONVERT_TO_TYPE,

-      "{0} ni mogo\u010de pretvoriti v type#{1}"},

-

-  { ER_EXPECTED_MATCH_PATTERN,

-      "Pri\u010dakovan primerjalni vzorec v getMatchScore!"},

-

-  { ER_COULDNOT_GET_VAR_NAMED,

-      "Nisem na\u0161el predloge z imenom {0}"},

-

-  { ER_UNKNOWN_OPCODE,

-     "NAPAKA! Neznana op. koda: {0}"},

-

-  { ER_EXTRA_ILLEGAL_TOKENS,

-     "Dodatni neveljavni \u017eetoni: {0}"},

-

-

-  { ER_EXPECTED_DOUBLE_QUOTE,

-      "Napa\u010dno postavljena dobesedna navedba... pri\u010dakovani dvojni narekovaji!"},

-

-  { ER_EXPECTED_SINGLE_QUOTE,

-      "Napa\u010dno postavljena dobesedna navedba... pri\u010dakovani enojni narekovaji!"},

-

-  { ER_EMPTY_EXPRESSION,

-     "Prazen izraz!"},

-

-  { ER_EXPECTED_BUT_FOUND,

-     "Pri\u010dakovano {0}, najdeno: {1}"},

-

-  { ER_INCORRECT_PROGRAMMER_ASSERTION,

-      "Programerjeva predpostavka ni pravilna! - {0}"},

-

-  { ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL,

-      "Argument logi\u010dne vrednosti(...) ni ve\u010d izbiren z osnutkom 19990709 XPath."},

-

-  { ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG,

-      "Najdeno ',' vendar ni predhodnih argumentov!"},

-

-  { ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG,

-      "Najdeno ',' vendar ni slede\u010dih argumentov!"},

-

-  { ER_PREDICATE_ILLEGAL_SYNTAX,

-      "'..[predicate]' ali '.[predicate]' je neveljavna sintaksa.  Namesto tega uporabite 'self::node()[predicate]'."},

-

-  { ER_ILLEGAL_AXIS_NAME,

-     "Neveljavno ime osi: {0}"},

-

-  { ER_UNKNOWN_NODETYPE,

-     "Neveljavni tip vozli\u0161\u010da: {0}"},

-

-  { ER_PATTERN_LITERAL_NEEDS_BE_QUOTED,

-      "Navedek vzorca ({0}) mora biti v navednicah!"},

-

-  { ER_COULDNOT_BE_FORMATTED_TO_NUMBER,

-      "{0} ni mogo\u010de oblikovati v \u0161tevilko!"},

-

-  { ER_COULDNOT_CREATE_XMLPROCESSORLIAISON,

-      "Ne morem ustvariti zveze XML TransformerFactory: {0}"},

-

-  { ER_DIDNOT_FIND_XPATH_SELECT_EXP,

-      "Napaka! Ne najdem izbirnega izraza xpath (-select)."},

-

-  { ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH,

-      "NAPAKA! Ne najdem ENDOP po OP_LOCATIONPATH"},

-

-  { ER_ERROR_OCCURED,

-     "Pri\u0161lo je do napake!"},

-

-  { ER_ILLEGAL_VARIABLE_REFERENCE,

-      "Dani VariableReference je izven konteksta ali brez definicije!  Ime = {0}"},

-

-  { ER_AXES_NOT_ALLOWED,

-      "V primerjalnih vzorcih so dovoljene samo osi podrejenega:: in atributa::!  Sporne osi = {0}"},

-

-  { ER_KEY_HAS_TOO_MANY_ARGS,

-      "key()ima nepravilno \u0161tevilo argumentov."},

-

-  { ER_COUNT_TAKES_1_ARG,

-      "\u0160tevna funkcija zahteva en argument!"},

-

-  { ER_COULDNOT_FIND_FUNCTION,

-     "Ne najdem funkcije: {0}"},

-

-  { ER_UNSUPPORTED_ENCODING,

-     "Nepodprto kodiranje: {0}"},

-

-  { ER_PROBLEM_IN_DTM_NEXTSIBLING,

-      "Pri\u0161lo je do te\u017eave v DTM pri getNextSibling... poskus obnovitve"},

-

-  { ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL,

-      "Programerska napaka: pisanje v EmptyNodeList ni mogo\u010de."},

-

-  { ER_SETDOMFACTORY_NOT_SUPPORTED,

-      "setDOMFactory v XPathContext ni podprt!"},

-

-  { ER_PREFIX_MUST_RESOLVE,

-      "Predpona se mora razre\u0161iti v imenski prostor: {0}"},

-

-  { ER_PARSE_NOT_SUPPORTED,

-      "Raz\u010dlenitev (vir InputSource) v XPathContext ni podprta! Ne morem odpreti {0}"},

-

-  { ER_SAX_API_NOT_HANDLED,

-      "Znaki SAX API(znaka ch[]... ne obravnava DTM!"},

-

-  { ER_IGNORABLE_WHITESPACE_NOT_HANDLED,

-      "ignorableWhitespace(znaka ch[]... ne obravnava DTM!"},

-

-  { ER_DTM_CANNOT_HANDLE_NODES,

-      "DTMLiaison ne more upravljati z vozli\u0161\u010di tipa {0}"},

-

-  { ER_XERCES_CANNOT_HANDLE_NODES,

-      "DOM2Helper ne more upravljati z vozli\u0161\u010di tipa {0}"},

-

-  { ER_XERCES_PARSE_ERROR_DETAILS,

-      "Napaka DOM2Helper.parse: ID sistema - {0} vrstica - {1}"},

-

-  { ER_XERCES_PARSE_ERROR,

-     "Napaka DOM2Helper.parse"},

-

-  { ER_INVALID_UTF16_SURROGATE,

-      "Zaznan neveljaven nadomestek UTF-16: {0} ?"},

-

-  { ER_OIERROR,

-     "Napaka V/I"},

-

-  { ER_CANNOT_CREATE_URL,

-     "Ne morem ustvariti naslova URL za: {0}"},

-

-  { ER_XPATH_READOBJECT,

-     "V XPath.readObject: {0}"},

-

-  { ER_FUNCTION_TOKEN_NOT_FOUND,

-      "ne najdem \u017eetona funkcije."},

-

-  { ER_CANNOT_DEAL_XPATH_TYPE,

-       "Ne morem ravnati z tipom XPath: {0}"},

-

-  { ER_NODESET_NOT_MUTABLE,

-       "Ta NodeSet ni spremenljiv"},

-

-  { ER_NODESETDTM_NOT_MUTABLE,

-       "Ta NodeSetDTM ni spremenljiv"},

-

-  { ER_VAR_NOT_RESOLVABLE,

-        "Spremenljivka ni razre\u0161ljiva: {0}"},

-

-  { ER_NULL_ERROR_HANDLER,

-        "Program za obravnavo napak NULL"},

-

-  { ER_PROG_ASSERT_UNKNOWN_OPCODE,

-       "Programerjeva izjava: neznana opkoda: {0}"},

-

-  { ER_ZERO_OR_ONE,

-       "0 ali 1"},

-

-  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-       "XRTreeFragSelectWrapper ne podpira rtf()"},

-

-  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-       "XRTreeFragSelectWrapper ne podpira asNodeIterator()"},

-

-   { ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper ne podpira detach()"},

-

-   { ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper ne podpira num()"},

-

-   { ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper ne podpira xstr()"},

-

-   { ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper ne podpira str()"},

-

-  { ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS,

-       "fsb() ni podprt za XStringForChars"},

-

-  { ER_COULD_NOT_FIND_VAR,

-      "Spremenljivke z imenom {0} ni mogo\u010de najti"},

-

-  { ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING,

-      "XStringForChars ne more uporabiti niza za argument"},

-

-  { ER_FASTSTRINGBUFFER_CANNOT_BE_NULL,

-      "Argument FastStringBuffer ne more biti NULL"},

-

-  { ER_TWO_OR_THREE,

-       "2 ali 3"},

-

-  { ER_VARIABLE_ACCESSED_BEFORE_BIND,

-       "Spremenljivka uporabljena \u0161e pred njeno vezavo!"},

-

-  { ER_FSB_CANNOT_TAKE_STRING,

-       "XStringForFSB ne more uporabiti niza za argument!"},

-

-  { ER_SETTING_WALKER_ROOT_TO_NULL,

-       "\n !!!! Napaka! Koren sprehajalca nastavljam na NULL!!!"},

-

-  { ER_NODESETDTM_CANNOT_ITERATE,

-       "Tega NodeSetDTM ni mogo\u010de ponavljati do prej\u0161njega vozli\u0161\u010da!"},

-

-  { ER_NODESET_CANNOT_ITERATE,

-       "Tega NodeSet ni mogo\u010de ponavljati do prej\u0161njega vozli\u0161\u010da!"},

-

-  { ER_NODESETDTM_CANNOT_INDEX,

-       "Ta NodeSetDTM ne more opravljati funkcij priprave kazala ali \u0161tetja!"},

-

-  { ER_NODESET_CANNOT_INDEX,

-       "Ta NodeSet ne more opravljati funkcij priprave kazala ali \u0161tetja!"},

-

-  { ER_CANNOT_CALL_SETSHOULDCACHENODE,

-       "Za klicem nextNode klic setShouldCacheNodes ni mogo\u010d!"},

-

-  { ER_ONLY_ALLOWS,

-       "{0} dovoljuje samo argumente {1}"},

-

-  { ER_UNKNOWN_STEP,

-       "Programerjeva izjava v getNextStepPos: neznan stepType: {0}"},

-

-  //Note to translators:  A relative location path is a form of XPath expression.

-  // The message indicates that such an expression was expected following the

-  // characters '/' or '//', but was not found.

-  { ER_EXPECTED_REL_LOC_PATH,

-      "Za \u017eetonom '/' ali '//' je pri\u010dakovana relativna pot do mesta."},

-

-  // Note to translators:  A location path is a form of XPath expression.

-  // The message indicates that syntactically such an expression was expected,but

-  // the characters specified by the substitution text were encountered instead.

-  { ER_EXPECTED_LOC_PATH,

-       "Pri\u010dakovana pot do lokacije, na\u0161jden pa je naslednji \u017eeton\u003a  {0}"},

-

-  // Note to translators:  A location path is a form of XPath expression.

-  // The message indicates that syntactically such a subexpression was expected,

-  // but no more characters were found in the expression.

-  { ER_EXPECTED_LOC_PATH_AT_END_EXPR,

-       "Namesto pri\u010dakovane poti do lokacije je najden konec izraza XPath."},

-

-  // Note to translators:  A location step is part of an XPath expression.

-  // The message indicates that syntactically such an expression was expected

-  // following the specified characters.

-  { ER_EXPECTED_LOC_STEP,

-       "Za \u017eetonom '/' ali '//' je pri\u010dakovan korak mesta."},

-

-  // Note to translators:  A node test is part of an XPath expression that is

-  // used to test for particular kinds of nodes.  In this case, a node test that

-  // consists of an NCName followed by a colon and an asterisk or that consists

-  // of a QName was expected, but was not found.

-  { ER_EXPECTED_NODE_TEST,

-       "Pri\u010dakovan preskus vozli\u0161\u010da, ki ustreza NCImenu:* ali QImenu."},

-

-  // Note to translators:  A step pattern is part of an XPath expression.

-  // The message indicates that syntactically such an expression was expected,

-  // but the specified character was found in the expression instead.

-  { ER_EXPECTED_STEP_PATTERN,

-       "Pri\u010dakovan stopnjevalni vzorec, najden pa je '/'."},

-

-  // Note to translators: A relative path pattern is part of an XPath expression.

-  // The message indicates that syntactically such an expression was expected,

-  // but was not found.

-  { ER_EXPECTED_REL_PATH_PATTERN,

-       "Pri\u010dakovan vzorec z relativno potjo."},

-

-  // Note to translators:  The substitution text is the name of a data type.  The

-  // message indicates that a value of a particular type could not be converted

-  // to a value of type boolean.

-  { ER_CANT_CONVERT_TO_BOOLEAN,

-       "XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogoe\u010de pretvoriti v boolovo vrednost."},

-

-  // Note to translators: Do not translate ANY_UNORDERED_NODE_TYPE and

-  // FIRST_ORDERED_NODE_TYPE.

-  { ER_CANT_CONVERT_TO_SINGLENODE,

-       "XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de pretvoriti v eno vozli\u0161\u010de. Metoda getSingleNodeValue velja samo za tipa ANY_UNORDERED_NODE_TYPE in FIRST_ORDERED_NODE_TYPE."},

-

-  // Note to translators: Do not translate UNORDERED_NODE_SNAPSHOT_TYPE and

-  // ORDERED_NODE_SNAPSHOT_TYPE.

-  { ER_CANT_GET_SNAPSHOT_LENGTH,

-       "Metoda getSnapshotLength ne more biti priklicana za XPathResult izraza XPath ''{0}'', ker je tip XPathResultType {1}. Ta metoda se nana\u0161a samo na tipa UNORDERED_NODE_SNAPSHOT_TYPE in ORDERED_NODE_SNAPSHOT_TYPE."},

-

-  { ER_NON_ITERATOR_TYPE,

-       "Metoda iterateNext ne more biti priklicana za XPathResult izraza XPath ''{0}'', ker je tip XPathResultType {1}. Ta metoda se nana\u0161a samo na tipa UNORDERED_NODE_ITERATOR_TYPE in ORDERED_NODE_ITERATOR_TYPE."},

-

-  // Note to translators: This message indicates that the document being operated

-  // upon changed, so the iterator object that was being used to traverse the

-  // document has now become invalid.

-  { ER_DOC_MUTATED,

-       "Dokument se je spremenil po vrnitvi rezultatov. Iterator je neveljaven."},

-

-  { ER_INVALID_XPATH_TYPE,

-       "Neveljaven argument tipa XPath: {0}"},

-

-  { ER_EMPTY_XPATH_RESULT,

-       "Prazen objekt rezultatov XPath"},

-

-  { ER_INCOMPATIBLE_TYPES,

-       "Rezultat XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de prisiliti v dolo\u010den tip XPathResultType {2}."},

-

-  { ER_NULL_RESOLVER,

-       "Predpone ni bilo mogo\u010de razre\u0161iti z razre\u0161evalnikom predpon NULL."},

-

-  // Note to translators:  The substitution text is the name of a data type.  The

-  // message indicates that a value of a particular type could not be converted

-  // to a value of type string.

-  { ER_CANT_CONVERT_TO_STRING,

-       "Rezultat XPathResult izraza XPath''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de pretvoriti v niz."},

-

-  // Note to translators: Do not translate snapshotItem,

-  // UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE.

-  { ER_NON_SNAPSHOT_TYPE,

-       "Metoda snapshotItem ne more biti priklicana za XPathResult izraza XPath ''{0}'', ker je tip XPathResultType {1}. Ta metoda se nana\u0161a samo na tipa UNORDERED_NODE_SNAPSHOT_TYPE in ORDERED_NODE_SNAPSHOT_TYPE."},

-

-  // Note to translators:  XPathEvaluator is a Java interface name.  An

-  // XPathEvaluator is created with respect to a particular XML document, and in

-  // this case the expression represented by this object was being evaluated with

-  // respect to a context node from a different document.

-  { ER_WRONG_DOCUMENT,

-       "Kontekstno vozli\u0161\u010de ne pripada dokumentu, povezanem s tem XPathEvaluator."},

-

-  // Note to translators:  The XPath expression cannot be evaluated with respect

-  // to this type of node.

-  { ER_WRONG_NODETYPE,

-       "Tip kontekstnega vozli\u0161\u010da ni podprt."},

-

-  { ER_XPATH_ERROR,

-       "Neznana napaka v XPath."},

-

-        { ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER,

-                "XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de pretvoriti v \u0161tevilko."},

-

-  //BEGIN:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation

-

-  /** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED                       */

-

-  { ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,

-       "Raz\u0161iritvene funkcije: ''{0}'' ni mogo\u010de priklicati, kadar je zna\u010dilnost XMLConstants.FEATURE_SECURE_PROCESSING nastavljena na True."},

-

-  /** Field ER_RESOLVE_VARIABLE_RETURNS_NULL                       */

-

-  { ER_RESOLVE_VARIABLE_RETURNS_NULL,

-       "Funkcija resolveVariable za spremenljivko {0} vra\u010da rezultat ni\u010d"},

-

-  /** Field ER_UNSUPPORTED_RETURN_TYPE                       */

-

-  { ER_UNSUPPORTED_RETURN_TYPE,

-       "Nepodprt tip vrnitve : {0}"},

-

-  /** Field ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL                       */

-

-  { ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL,

-       "Vir in/ali Tip vrnitve ne moreta biti ni\u010d"},

-

-  /** Field ER_ARG_CANNOT_BE_NULL                       */

-

-  { ER_ARG_CANNOT_BE_NULL,

-       "Argument {0} ne more biti ni\u010d"},

-

-  /** Field ER_OBJECT_MODEL_NULL                       */

-

-  { ER_OBJECT_MODEL_NULL,

-       "Funkcije {0}#isObjectModelSupported( String objectModel ) ni mogo\u010de priklicati, kadar je objectModel == null"},

-

-  /** Field ER_OBJECT_MODEL_EMPTY                       */

-

-  { ER_OBJECT_MODEL_EMPTY,

-       "Funkcije {0}#isObjectModelSupported( String objectModel ) ni mogo\u010de priklicati, kadar je objectModel == \"\""},

-

-  /** Field ER_OBJECT_MODEL_EMPTY                       */

-

-  { ER_FEATURE_NAME_NULL,

-       "Poskus nastavitve funkcije brez imena (null name): {0}#setFeature( null, {1})"},

-

-  /** Field ER_FEATURE_UNKNOWN                       */

-

-  { ER_FEATURE_UNKNOWN,

-       "Poskus nastavitve neznane funkcije \"{0}\":{1}#setFeature({0},{2})"},

-

-  /** Field ER_GETTING_NULL_FEATURE                       */

-

-  { ER_GETTING_NULL_FEATURE,

-       "Poskus pridobitve funkcije brez imena (null name): {0}#getFeature(null)"},

-

-  /** Field ER_GETTING_NULL_FEATURE                       */

-

-  { ER_GETTING_UNKNOWN_FEATURE,

-       "Poskus pridobitve neznane funkcije \"{0}\":{1}#getFeature({0})"},

-

-  /** Field ER_NULL_XPATH_FUNCTION_RESOLVER                       */

-

-  { ER_NULL_XPATH_FUNCTION_RESOLVER,

-       "Poskus nastavitve XPathFunctionResolver na ni\u010d:{0}#setXPathFunctionResolver(null)"},

-

-  /** Field ER_NULL_XPATH_VARIABLE_RESOLVER                       */

-

-  { ER_NULL_XPATH_VARIABLE_RESOLVER,

-       "Poskus nastavitve funkcije XPathVariableResolver na ni\u010d:{0}#setXPathVariableResolver(null)"},

-

-  //END:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation

-

-  // Warnings...

-

-  { WG_LOCALE_NAME_NOT_HANDLED,

-      "Podro\u010dno ime v funkciji za oblikovanje \u0161tevilk \u0161e ni podprto!"},

-

-  { WG_PROPERTY_NOT_SUPPORTED,

-      "Lastnost XSL ni podprta: {0}"},

-

-  { WG_DONT_DO_ANYTHING_WITH_NS,

-      "V tem trenutku ne po\u010dnite ni\u010desar z imenskim prostorom {0} v lastnosti: {1}"},

-

-  { WG_SECURITY_EXCEPTION,

-      "Pri\u0161lo je do SecurityException (varnostna izjema) pri poskusu dostopa do sistemske lastnosti XSL: {0}"},

-

-  { WG_QUO_NO_LONGER_DEFINED,

-      "Stara sintaksa: quo(...) v XPath ni ve\u010d definiran."},

-

-  { WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST,

-      "XPath potrebuje izpeljani objekt za implementacijo nodeTest!"},

-

-  { WG_FUNCTION_TOKEN_NOT_FOUND,

-      "ne najdem \u017eetona funkcije."},

-

-  { WG_COULDNOT_FIND_FUNCTION,

-      "Ne najdem funkcije: {0}"},

-

-  { WG_CANNOT_MAKE_URL_FROM,

-      "Ne morem narediti naslova URL iz: {0}"},

-

-  { WG_EXPAND_ENTITIES_NOT_SUPPORTED,

-      "Mo\u017enost -E za raz\u010dlenjevalnik DTM ni podprta."},

-

-  { WG_ILLEGAL_VARIABLE_REFERENCE,

-      "Dani VariableReference je izven konteksta ali brez definicije!  Ime = {0}"},

-

-  { WG_UNSUPPORTED_ENCODING,

-     "Nepodprto kodiranje: {0}"},

-

-

-

-  // Other miscellaneous text used inside the code...

-  { "ui_language", "sl"},

-  { "help_language", "sl"},

-  { "language", "sl"},

-  { "BAD_CODE", "Parameter za createMessage presega meje"},

-  { "FORMAT_FAILED", "Med klicem je messageFormat naletel na izjemo"},

-  { "version", ">>>>>>> Razli\u010dica Xalan "},

-  { "version2", "<<<<<<<"},

-  { "yes", "da"},

-  { "line", "Vrstica #"},

-  { "column", "Stolpec #"},

-  { "xsldone", "XSLProcessor: dokon\u010dano"},

-  { "xpath_option", "Mo\u017enosti xpath: "},

-  { "optionIN", "   [-in inputXMLURL]"},

-  { "optionSelect", "   [-select izraz xpath]"},

-  { "optionMatch", "   [-match primerjalni vzorec (za diagnostiko ujemanja)]"},

-  { "optionAnyExpr", "Ali pa bo samo izraz xpath izvedel diagnosti\u010dni izvoz podatkov"},

-  { "noParsermsg1", "Postopek XSL ni uspel."},

-  { "noParsermsg2", "** Nisem na\u0161el raz\u010dlenjevalnika **"},

-  { "noParsermsg3", "Preverite pot razreda."},

-  { "noParsermsg4", "\u010ce nimate IBM raz\u010dlenjevalnika za Javo, ga lahko prenesete iz"},

-  { "noParsermsg5", "IBM AlphaWorks: http://www.alphaworks.ibm.com/formula/xml"},

-  { "gtone", ">1" },

-  { "zero", "0" },

-  { "one", "1" },

-  { "two" , "2" },

-  { "three", "3" }

-

-  };

-  }

-

-

-  // ================= INFRASTRUCTURE ======================

-

-  /** Field BAD_CODE          */

-  public static final String BAD_CODE = "BAD_CODE";

-

-  /** Field FORMAT_FAILED          */

-  public static final String FORMAT_FAILED = "FORMAT_FAILED";

-

-  /** Field ERROR_RESOURCES          */

-  public static final String ERROR_RESOURCES =

-    "org.apache.xpath.res.XPATHErrorResources";

-

-  /** Field ERROR_STRING          */

-  public static final String ERROR_STRING = "#error";

-

-  /** Field ERROR_HEADER          */

-  public static final String ERROR_HEADER = "Napaka: ";

-

-  /** Field WARNING_HEADER          */

-  public static final String WARNING_HEADER = "Opozorilo: ";

-

-  /** Field XSL_HEADER          */

-  public static final String XSL_HEADER = "XSL ";

-

-  /** Field XML_HEADER          */

-  public static final String XML_HEADER = "XML ";

-

-  /** Field QUERY_HEADER          */

-  public static final String QUERY_HEADER = "VZOREC ";

-

-

-  /**

-   * Return a named ResourceBundle for a particular locale.  This method mimics the behavior

-   * of ResourceBundle.getBundle().

-   *

-   * @param className Name of local-specific subclass.

-   * @return the ResourceBundle

-   * @throws MissingResourceException

-   */

-  public static final XPATHErrorResources loadResourceBundle(String className)

-          throws MissingResourceException

-  {

-

-    Locale locale = Locale.getDefault();

-    String suffix = getResourceSuffix(locale);

-

-    try

-    {

-

-      // first try with the given locale

-      return (XPATHErrorResources) ResourceBundle.getBundle(className

-              + suffix, locale);

-    }

-    catch (MissingResourceException e)

-    {

-      try  // try to fall back to en_US if we can't load

-      {

-

-        // Since we can't find the localized property file,

-        // fall back to en_US.

-        return (XPATHErrorResources) ResourceBundle.getBundle(className,

-                new Locale("sl", "SL"));

-      }

-      catch (MissingResourceException e2)

-      {

-

-        // Now we are really in trouble.

-        // very bad, definitely very bad...not going to get very far

-        throw new MissingResourceException(

-          "Could not load any resource bundles.", className, "");

-      }

-    }

-  }

-

-  /**

-   * Return the resource file suffic for the indicated locale

-   * For most locales, this will be based the language code.  However

-   * for Chinese, we do distinguish between Taiwan and PRC

-   *

-   * @param locale the locale

-   * @return an String suffix which canbe appended to a resource name

-   */

-  private static final String getResourceSuffix(Locale locale)

-  {

-

-    String suffix = "_" + locale.getLanguage();

-    String country = locale.getCountry();

-

-    if (country.equals("TW"))

-      suffix += "_" + country;

-

-    return suffix;

-  }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+package org.apache.xpath.res;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Set up error messages.
+ * We build a two dimensional array of message keys and
+ * message strings. In order to add a new message here,
+ * you need to first add a Static string constant for the
+ * Key and update the contents array with Key, Value pair
+  * Also you need to  update the count of messages(MAX_CODE)or
+ * the count of warnings(MAX_WARNING) [ Information purpose only]
+ * @xsl.usage advanced
+ */
+public class XPATHErrorResources_sl extends ListResourceBundle
+{
+
+/*
+ * General notes to translators:
+ *
+ * This file contains error and warning messages related to XPath Error
+ * Handling.
+ *
+ *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
+ *     components.
+ *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *     XSLTC is an acronym for XSLT Compiler.
+ *
+ *  2) A stylesheet is a description of how to transform an input XML document
+ *     into a resultant XML document (or HTML document or text).  The
+ *     stylesheet itself is described in the form of an XML document.
+ *
+ *  3) A template is a component of a stylesheet that is used to match a
+ *     particular portion of an input document and specifies the form of the
+ *     corresponding portion of the output document.
+ *
+ *  4) An element is a mark-up tag in an XML document; an attribute is a
+ *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *     "elem" is an element name, "attr" and "attr2" are attribute names with
+ *     the values "val" and "val2", respectively.
+ *
+ *  5) A namespace declaration is a special attribute that is used to associate
+ *     a prefix with a URI (the namespace).  The meanings of element names and
+ *     attribute names that use that prefix are defined with respect to that
+ *     namespace.
+ *
+ *  6) "Translet" is an invented term that describes the class file that
+ *     results from compiling an XML stylesheet into a Java class.
+ *
+ *  7) XPath is a specification that describes a notation for identifying
+ *     nodes in a tree-structured representation of an XML document.  An
+ *     instance of that notation is referred to as an XPath expression.
+ *
+ *  8) The context node is the node in the document with respect to which an
+ *     XPath expression is being evaluated.
+ *
+ *  9) An iterator is an object that traverses nodes in the tree, one at a time.
+ *
+ *  10) NCName is an XML term used to describe a name that does not contain a
+ *     colon (a "no-colon name").
+ *
+ *  11) QName is an XML term meaning "qualified name".
+ */
+
+  /*
+   * static variables
+   */
+  public static final String ERROR0000 = "ERROR0000";
+  public static final String ER_CURRENT_NOT_ALLOWED_IN_MATCH =
+         "ER_CURRENT_NOT_ALLOWED_IN_MATCH";
+  public static final String ER_CURRENT_TAKES_NO_ARGS =
+         "ER_CURRENT_TAKES_NO_ARGS";
+  public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED";
+  public static final String ER_CONTEXT_HAS_NO_OWNERDOC =
+         "ER_CONTEXT_HAS_NO_OWNERDOC";
+  public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS =
+         "ER_LOCALNAME_HAS_TOO_MANY_ARGS";
+  public static final String ER_NAMESPACEURI_HAS_TOO_MANY_ARGS =
+         "ER_NAMESPACEURI_HAS_TOO_MANY_ARGS";
+  public static final String ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS =
+         "ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS";
+  public static final String ER_NUMBER_HAS_TOO_MANY_ARGS =
+         "ER_NUMBER_HAS_TOO_MANY_ARGS";
+  public static final String ER_NAME_HAS_TOO_MANY_ARGS =
+         "ER_NAME_HAS_TOO_MANY_ARGS";
+  public static final String ER_STRING_HAS_TOO_MANY_ARGS =
+         "ER_STRING_HAS_TOO_MANY_ARGS";
+  public static final String ER_STRINGLENGTH_HAS_TOO_MANY_ARGS =
+         "ER_STRINGLENGTH_HAS_TOO_MANY_ARGS";
+  public static final String ER_TRANSLATE_TAKES_3_ARGS =
+         "ER_TRANSLATE_TAKES_3_ARGS";
+  public static final String ER_UNPARSEDENTITYURI_TAKES_1_ARG =
+         "ER_UNPARSEDENTITYURI_TAKES_1_ARG";
+  public static final String ER_NAMESPACEAXIS_NOT_IMPLEMENTED =
+         "ER_NAMESPACEAXIS_NOT_IMPLEMENTED";
+  public static final String ER_UNKNOWN_AXIS = "ER_UNKNOWN_AXIS";
+  public static final String ER_UNKNOWN_MATCH_OPERATION =
+         "ER_UNKNOWN_MATCH_OPERATION";
+  public static final String ER_INCORRECT_ARG_LENGTH ="ER_INCORRECT_ARG_LENGTH";
+  public static final String ER_CANT_CONVERT_TO_NUMBER =
+         "ER_CANT_CONVERT_TO_NUMBER";
+  public static final String ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER =
+           "ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER";
+  public static final String ER_CANT_CONVERT_TO_NODELIST =
+         "ER_CANT_CONVERT_TO_NODELIST";
+  public static final String ER_CANT_CONVERT_TO_MUTABLENODELIST =
+         "ER_CANT_CONVERT_TO_MUTABLENODELIST";
+  public static final String ER_CANT_CONVERT_TO_TYPE ="ER_CANT_CONVERT_TO_TYPE";
+  public static final String ER_EXPECTED_MATCH_PATTERN =
+         "ER_EXPECTED_MATCH_PATTERN";
+  public static final String ER_COULDNOT_GET_VAR_NAMED =
+         "ER_COULDNOT_GET_VAR_NAMED";
+  public static final String ER_UNKNOWN_OPCODE = "ER_UNKNOWN_OPCODE";
+  public static final String ER_EXTRA_ILLEGAL_TOKENS ="ER_EXTRA_ILLEGAL_TOKENS";
+  public static final String ER_EXPECTED_DOUBLE_QUOTE =
+         "ER_EXPECTED_DOUBLE_QUOTE";
+  public static final String ER_EXPECTED_SINGLE_QUOTE =
+         "ER_EXPECTED_SINGLE_QUOTE";
+  public static final String ER_EMPTY_EXPRESSION = "ER_EMPTY_EXPRESSION";
+  public static final String ER_EXPECTED_BUT_FOUND = "ER_EXPECTED_BUT_FOUND";
+  public static final String ER_INCORRECT_PROGRAMMER_ASSERTION =
+         "ER_INCORRECT_PROGRAMMER_ASSERTION";
+  public static final String ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL =
+         "ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL";
+  public static final String ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG =
+         "ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG";
+  public static final String ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG =
+         "ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG";
+  public static final String ER_PREDICATE_ILLEGAL_SYNTAX =
+         "ER_PREDICATE_ILLEGAL_SYNTAX";
+  public static final String ER_ILLEGAL_AXIS_NAME = "ER_ILLEGAL_AXIS_NAME";
+  public static final String ER_UNKNOWN_NODETYPE = "ER_UNKNOWN_NODETYPE";
+  public static final String ER_PATTERN_LITERAL_NEEDS_BE_QUOTED =
+         "ER_PATTERN_LITERAL_NEEDS_BE_QUOTED";
+  public static final String ER_COULDNOT_BE_FORMATTED_TO_NUMBER =
+         "ER_COULDNOT_BE_FORMATTED_TO_NUMBER";
+  public static final String ER_COULDNOT_CREATE_XMLPROCESSORLIAISON =
+         "ER_COULDNOT_CREATE_XMLPROCESSORLIAISON";
+  public static final String ER_DIDNOT_FIND_XPATH_SELECT_EXP =
+         "ER_DIDNOT_FIND_XPATH_SELECT_EXP";
+  public static final String ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH =
+         "ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH";
+  public static final String ER_ERROR_OCCURED = "ER_ERROR_OCCURED";
+  public static final String ER_ILLEGAL_VARIABLE_REFERENCE =
+         "ER_ILLEGAL_VARIABLE_REFERENCE";
+  public static final String ER_AXES_NOT_ALLOWED = "ER_AXES_NOT_ALLOWED";
+  public static final String ER_KEY_HAS_TOO_MANY_ARGS =
+         "ER_KEY_HAS_TOO_MANY_ARGS";
+  public static final String ER_COUNT_TAKES_1_ARG = "ER_COUNT_TAKES_1_ARG";
+  public static final String ER_COULDNOT_FIND_FUNCTION =
+         "ER_COULDNOT_FIND_FUNCTION";
+  public static final String ER_UNSUPPORTED_ENCODING ="ER_UNSUPPORTED_ENCODING";
+  public static final String ER_PROBLEM_IN_DTM_NEXTSIBLING =
+         "ER_PROBLEM_IN_DTM_NEXTSIBLING";
+  public static final String ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL =
+         "ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL";
+  public static final String ER_SETDOMFACTORY_NOT_SUPPORTED =
+         "ER_SETDOMFACTORY_NOT_SUPPORTED";
+  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
+  public static final String ER_PARSE_NOT_SUPPORTED = "ER_PARSE_NOT_SUPPORTED";
+  public static final String ER_SAX_API_NOT_HANDLED = "ER_SAX_API_NOT_HANDLED";
+public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED =
+         "ER_IGNORABLE_WHITESPACE_NOT_HANDLED";
+  public static final String ER_DTM_CANNOT_HANDLE_NODES =
+         "ER_DTM_CANNOT_HANDLE_NODES";
+  public static final String ER_XERCES_CANNOT_HANDLE_NODES =
+         "ER_XERCES_CANNOT_HANDLE_NODES";
+  public static final String ER_XERCES_PARSE_ERROR_DETAILS =
+         "ER_XERCES_PARSE_ERROR_DETAILS";
+  public static final String ER_XERCES_PARSE_ERROR = "ER_XERCES_PARSE_ERROR";
+  public static final String ER_INVALID_UTF16_SURROGATE =
+         "ER_INVALID_UTF16_SURROGATE";
+  public static final String ER_OIERROR = "ER_OIERROR";
+  public static final String ER_CANNOT_CREATE_URL = "ER_CANNOT_CREATE_URL";
+  public static final String ER_XPATH_READOBJECT = "ER_XPATH_READOBJECT";
+ public static final String ER_FUNCTION_TOKEN_NOT_FOUND =
+         "ER_FUNCTION_TOKEN_NOT_FOUND";
+  public static final String ER_CANNOT_DEAL_XPATH_TYPE =
+         "ER_CANNOT_DEAL_XPATH_TYPE";
+  public static final String ER_NODESET_NOT_MUTABLE = "ER_NODESET_NOT_MUTABLE";
+  public static final String ER_NODESETDTM_NOT_MUTABLE =
+         "ER_NODESETDTM_NOT_MUTABLE";
+   /**  Variable not resolvable:   */
+  public static final String ER_VAR_NOT_RESOLVABLE = "ER_VAR_NOT_RESOLVABLE";
+   /** Null error handler  */
+ public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";
+   /**  Programmer's assertion: unknown opcode  */
+  public static final String ER_PROG_ASSERT_UNKNOWN_OPCODE =
+         "ER_PROG_ASSERT_UNKNOWN_OPCODE";
+   /**  0 or 1   */
+  public static final String ER_ZERO_OR_ONE = "ER_ZERO_OR_ONE";
+   /**  rtf() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+   /**  asNodeIterator() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER = "ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+   /**  fsb() not supported for XStringForChars   */
+  public static final String ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS =
+         "ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS";
+   /**  Could not find variable with the name of   */
+ public static final String ER_COULD_NOT_FIND_VAR = "ER_COULD_NOT_FIND_VAR";
+   /**  XStringForChars can not take a string for an argument   */
+ public static final String ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING =
+         "ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING";
+   /**  The FastStringBuffer argument can not be null   */
+ public static final String ER_FASTSTRINGBUFFER_CANNOT_BE_NULL =
+         "ER_FASTSTRINGBUFFER_CANNOT_BE_NULL";
+   /**  2 or 3   */
+  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";
+   /** Variable accessed before it is bound! */
+  public static final String ER_VARIABLE_ACCESSED_BEFORE_BIND =
+         "ER_VARIABLE_ACCESSED_BEFORE_BIND";
+   /** XStringForFSB can not take a string for an argument! */
+ public static final String ER_FSB_CANNOT_TAKE_STRING =
+         "ER_FSB_CANNOT_TAKE_STRING";
+   /** Error! Setting the root of a walker to null! */
+  public static final String ER_SETTING_WALKER_ROOT_TO_NULL =
+         "ER_SETTING_WALKER_ROOT_TO_NULL";
+   /** This NodeSetDTM can not iterate to a previous node! */
+  public static final String ER_NODESETDTM_CANNOT_ITERATE =
+         "ER_NODESETDTM_CANNOT_ITERATE";
+  /** This NodeSet can not iterate to a previous node! */
+ public static final String ER_NODESET_CANNOT_ITERATE =
+         "ER_NODESET_CANNOT_ITERATE";
+  /** This NodeSetDTM can not do indexing or counting functions! */
+  public static final String ER_NODESETDTM_CANNOT_INDEX =
+         "ER_NODESETDTM_CANNOT_INDEX";
+  /** This NodeSet can not do indexing or counting functions! */
+  public static final String ER_NODESET_CANNOT_INDEX =
+         "ER_NODESET_CANNOT_INDEX";
+  /** Can not call setShouldCacheNodes after nextNode has been called! */
+  public static final String ER_CANNOT_CALL_SETSHOULDCACHENODE =
+         "ER_CANNOT_CALL_SETSHOULDCACHENODE";
+  /** {0} only allows {1} arguments */
+ public static final String ER_ONLY_ALLOWS = "ER_ONLY_ALLOWS";
+  /** Programmer's assertion in getNextStepPos: unknown stepType: {0} */
+  public static final String ER_UNKNOWN_STEP = "ER_UNKNOWN_STEP";
+  /** Problem with RelativeLocationPath */
+  public static final String ER_EXPECTED_REL_LOC_PATH =
+         "ER_EXPECTED_REL_LOC_PATH";
+  /** Problem with LocationPath */
+  public static final String ER_EXPECTED_LOC_PATH = "ER_EXPECTED_LOC_PATH";
+  public static final String ER_EXPECTED_LOC_PATH_AT_END_EXPR =
+                                        "ER_EXPECTED_LOC_PATH_AT_END_EXPR";
+  /** Problem with Step */
+  public static final String ER_EXPECTED_LOC_STEP = "ER_EXPECTED_LOC_STEP";
+  /** Problem with NodeTest */
+  public static final String ER_EXPECTED_NODE_TEST = "ER_EXPECTED_NODE_TEST";
+  /** Expected step pattern */
+  public static final String ER_EXPECTED_STEP_PATTERN =
+        "ER_EXPECTED_STEP_PATTERN";
+  /** Expected relative path pattern */
+  public static final String ER_EXPECTED_REL_PATH_PATTERN =
+         "ER_EXPECTED_REL_PATH_PATTERN";
+  /** ER_CANT_CONVERT_XPATHRESULTTYPE_TO_BOOLEAN          */
+  public static final String ER_CANT_CONVERT_TO_BOOLEAN =
+         "ER_CANT_CONVERT_TO_BOOLEAN";
+  /** Field ER_CANT_CONVERT_TO_SINGLENODE       */
+  public static final String ER_CANT_CONVERT_TO_SINGLENODE =
+         "ER_CANT_CONVERT_TO_SINGLENODE";
+  /** Field ER_CANT_GET_SNAPSHOT_LENGTH         */
+  public static final String ER_CANT_GET_SNAPSHOT_LENGTH =
+         "ER_CANT_GET_SNAPSHOT_LENGTH";
+  /** Field ER_NON_ITERATOR_TYPE                */
+  public static final String ER_NON_ITERATOR_TYPE = "ER_NON_ITERATOR_TYPE";
+  /** Field ER_DOC_MUTATED                      */
+  public static final String ER_DOC_MUTATED = "ER_DOC_MUTATED";
+  public static final String ER_INVALID_XPATH_TYPE = "ER_INVALID_XPATH_TYPE";
+  public static final String ER_EMPTY_XPATH_RESULT = "ER_EMPTY_XPATH_RESULT";
+  public static final String ER_INCOMPATIBLE_TYPES = "ER_INCOMPATIBLE_TYPES";
+  public static final String ER_NULL_RESOLVER = "ER_NULL_RESOLVER";
+  public static final String ER_CANT_CONVERT_TO_STRING =
+         "ER_CANT_CONVERT_TO_STRING";
+  public static final String ER_NON_SNAPSHOT_TYPE = "ER_NON_SNAPSHOT_TYPE";
+  public static final String ER_WRONG_DOCUMENT = "ER_WRONG_DOCUMENT";
+  /* Note to translators:  The XPath expression cannot be evaluated with respect
+   * to this type of node.
+   */
+  /** Field ER_WRONG_NODETYPE                    */
+  public static final String ER_WRONG_NODETYPE = "ER_WRONG_NODETYPE";
+  public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
+
+  //BEGIN: Keys needed for exception messages of  JAXP 1.3 XPath API implementation
+  public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
+  public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
+  public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
+  public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
+  public static final String ER_ARG_CANNOT_BE_NULL = "ER_ARG_CANNOT_BE_NULL";
+
+  public static final String ER_OBJECT_MODEL_NULL = "ER_OBJECT_MODEL_NULL";
+  public static final String ER_OBJECT_MODEL_EMPTY = "ER_OBJECT_MODEL_EMPTY";
+  public static final String ER_FEATURE_NAME_NULL = "ER_FEATURE_NAME_NULL";
+  public static final String ER_FEATURE_UNKNOWN = "ER_FEATURE_UNKNOWN";
+  public static final String ER_GETTING_NULL_FEATURE = "ER_GETTING_NULL_FEATURE";
+  public static final String ER_GETTING_UNKNOWN_FEATURE = "ER_GETTING_UNKNOWN_FEATURE";
+  public static final String ER_NULL_XPATH_FUNCTION_RESOLVER = "ER_NULL_XPATH_FUNCTION_RESOLVER";
+  public static final String ER_NULL_XPATH_VARIABLE_RESOLVER = "ER_NULL_XPATH_VARIABLE_RESOLVER";
+  //END: Keys needed for exception messages of  JAXP 1.3 XPath API implementation
+
+  public static final String WG_LOCALE_NAME_NOT_HANDLED =
+         "WG_LOCALE_NAME_NOT_HANDLED";
+  public static final String WG_PROPERTY_NOT_SUPPORTED =
+         "WG_PROPERTY_NOT_SUPPORTED";
+  public static final String WG_DONT_DO_ANYTHING_WITH_NS =
+         "WG_DONT_DO_ANYTHING_WITH_NS";
+  public static final String WG_SECURITY_EXCEPTION = "WG_SECURITY_EXCEPTION";
+  public static final String WG_QUO_NO_LONGER_DEFINED =
+         "WG_QUO_NO_LONGER_DEFINED";
+  public static final String WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST =
+         "WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST";
+  public static final String WG_FUNCTION_TOKEN_NOT_FOUND =
+         "WG_FUNCTION_TOKEN_NOT_FOUND";
+  public static final String WG_COULDNOT_FIND_FUNCTION =
+         "WG_COULDNOT_FIND_FUNCTION";
+  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";
+  public static final String WG_EXPAND_ENTITIES_NOT_SUPPORTED =
+         "WG_EXPAND_ENTITIES_NOT_SUPPORTED";
+  public static final String WG_ILLEGAL_VARIABLE_REFERENCE =
+         "WG_ILLEGAL_VARIABLE_REFERENCE";
+  public static final String WG_UNSUPPORTED_ENCODING ="WG_UNSUPPORTED_ENCODING";
+
+  /**  detach() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+  /**  num() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+  /**  xstr() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+  /**  str() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+
+  // Error messages...
+
+
+  /**
+   * Get the association list.
+   *
+   * @return The association list.
+   */
+  public Object[][] getContents()
+  {
+    return new Object[][]{
+
+  { "ERROR0000" , "{0}" },
+
+  { ER_CURRENT_NOT_ALLOWED_IN_MATCH, "Funkcija current() v primerjalnem vzorcu ni dovoljena!" },
+
+  { ER_CURRENT_TAKES_NO_ARGS, "Funkcija current() ne sprejema argumentov!" },
+
+  { ER_DOCUMENT_REPLACED,
+      "Implementacija funkcije document() je bila nadome\u0161\u010dena z org.apache.xalan.xslt.FuncDocument!"},
+
+  { ER_CONTEXT_HAS_NO_OWNERDOC,
+      "Kontekst ne vsebuje lastni\u0161kega dokumenta!"},
+
+  { ER_LOCALNAME_HAS_TOO_MANY_ARGS,
+      "local-name() ima preve\u010d argumentov."},
+
+  { ER_NAMESPACEURI_HAS_TOO_MANY_ARGS,
+      "namespace-uri() ima preve\u010d argumentov."},
+
+  { ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS,
+      "normalize-space() ima preve\u010d argumentov."},
+
+  { ER_NUMBER_HAS_TOO_MANY_ARGS,
+      "number() ima preve\u010d argumentov."},
+
+  { ER_NAME_HAS_TOO_MANY_ARGS,
+     "name() ima preve\u010d argumentov."},
+
+  { ER_STRING_HAS_TOO_MANY_ARGS,
+      "string() ima preve\u010d argumentov."},
+
+  { ER_STRINGLENGTH_HAS_TOO_MANY_ARGS,
+      "string-length() ima preve\u010d argumentov."},
+
+  { ER_TRANSLATE_TAKES_3_ARGS,
+      "Funkcija translate() sprejme tri argumente!"},
+
+  { ER_UNPARSEDENTITYURI_TAKES_1_ARG,
+      "Funkcija unparsed-entity-uri bi morala vsebovati en argument!"},
+
+  { ER_NAMESPACEAXIS_NOT_IMPLEMENTED,
+      "Os imenskega prostora \u0161e ni implementirana!"},
+
+  { ER_UNKNOWN_AXIS,
+     "neznana os: {0}"},
+
+  { ER_UNKNOWN_MATCH_OPERATION,
+     "neznana operacija ujemanja!"},
+
+  { ER_INCORRECT_ARG_LENGTH,
+      "Dol\u017eina argumenta pri preskusu vozli\u0161\u010da s processing-instruction() ni pravilna!"},
+
+  { ER_CANT_CONVERT_TO_NUMBER,
+      "{0} ni mogo\u010de pretvoriti v \u0161tevilko"},
+
+  { ER_CANT_CONVERT_TO_NODELIST,
+      "{0} ni mogo\u010de pretvoriti v seznam vozli\u0161\u010d (NodeList)"},
+
+  { ER_CANT_CONVERT_TO_MUTABLENODELIST,
+      "{0} ni mogo\u010de pretvoriti v NodeSetDTM"},
+
+  { ER_CANT_CONVERT_TO_TYPE,
+      "{0} ni mogo\u010de pretvoriti v type#{1}"},
+
+  { ER_EXPECTED_MATCH_PATTERN,
+      "Pri\u010dakovan primerjalni vzorec v getMatchScore!"},
+
+  { ER_COULDNOT_GET_VAR_NAMED,
+      "Nisem na\u0161el predloge z imenom {0}"},
+
+  { ER_UNKNOWN_OPCODE,
+     "NAPAKA! Neznana op. koda: {0}"},
+
+  { ER_EXTRA_ILLEGAL_TOKENS,
+     "Dodatni neveljavni \u017eetoni: {0}"},
+
+
+  { ER_EXPECTED_DOUBLE_QUOTE,
+      "Napa\u010dno postavljena dobesedna navedba... pri\u010dakovani dvojni narekovaji!"},
+
+  { ER_EXPECTED_SINGLE_QUOTE,
+      "Napa\u010dno postavljena dobesedna navedba... pri\u010dakovani enojni narekovaji!"},
+
+  { ER_EMPTY_EXPRESSION,
+     "Prazen izraz!"},
+
+  { ER_EXPECTED_BUT_FOUND,
+     "Pri\u010dakovano {0}, najdeno: {1}"},
+
+  { ER_INCORRECT_PROGRAMMER_ASSERTION,
+      "Programerjeva predpostavka ni pravilna! - {0}"},
+
+  { ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL,
+      "Argument logi\u010dne vrednosti(...) ni ve\u010d izbiren z osnutkom 19990709 XPath."},
+
+  { ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG,
+      "Najdeno ',' vendar ni predhodnih argumentov!"},
+
+  { ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG,
+      "Najdeno ',' vendar ni slede\u010dih argumentov!"},
+
+  { ER_PREDICATE_ILLEGAL_SYNTAX,
+      "'..[predicate]' ali '.[predicate]' je neveljavna sintaksa.  Namesto tega uporabite 'self::node()[predicate]'."},
+
+  { ER_ILLEGAL_AXIS_NAME,
+     "Neveljavno ime osi: {0}"},
+
+  { ER_UNKNOWN_NODETYPE,
+     "Neveljavni tip vozli\u0161\u010da: {0}"},
+
+  { ER_PATTERN_LITERAL_NEEDS_BE_QUOTED,
+      "Navedek vzorca ({0}) mora biti v navednicah!"},
+
+  { ER_COULDNOT_BE_FORMATTED_TO_NUMBER,
+      "{0} ni mogo\u010de oblikovati v \u0161tevilko!"},
+
+  { ER_COULDNOT_CREATE_XMLPROCESSORLIAISON,
+      "Ne morem ustvariti zveze XML TransformerFactory: {0}"},
+
+  { ER_DIDNOT_FIND_XPATH_SELECT_EXP,
+      "Napaka! Ne najdem izbirnega izraza xpath (-select)."},
+
+  { ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH,
+      "NAPAKA! Ne najdem ENDOP po OP_LOCATIONPATH"},
+
+  { ER_ERROR_OCCURED,
+     "Pri\u0161lo je do napake!"},
+
+  { ER_ILLEGAL_VARIABLE_REFERENCE,
+      "Dani VariableReference je izven konteksta ali brez definicije!  Ime = {0}"},
+
+  { ER_AXES_NOT_ALLOWED,
+      "V primerjalnih vzorcih so dovoljene samo osi podrejenega:: in atributa::!  Sporne osi = {0}"},
+
+  { ER_KEY_HAS_TOO_MANY_ARGS,
+      "key()ima nepravilno \u0161tevilo argumentov."},
+
+  { ER_COUNT_TAKES_1_ARG,
+      "\u0160tevna funkcija zahteva en argument!"},
+
+  { ER_COULDNOT_FIND_FUNCTION,
+     "Ne najdem funkcije: {0}"},
+
+  { ER_UNSUPPORTED_ENCODING,
+     "Nepodprto kodiranje: {0}"},
+
+  { ER_PROBLEM_IN_DTM_NEXTSIBLING,
+      "Pri\u0161lo je do te\u017eave v DTM pri getNextSibling... poskus obnovitve"},
+
+  { ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL,
+      "Programerska napaka: pisanje v EmptyNodeList ni mogo\u010de."},
+
+  { ER_SETDOMFACTORY_NOT_SUPPORTED,
+      "setDOMFactory v XPathContext ni podprt!"},
+
+  { ER_PREFIX_MUST_RESOLVE,
+      "Predpona se mora razre\u0161iti v imenski prostor: {0}"},
+
+  { ER_PARSE_NOT_SUPPORTED,
+      "Raz\u010dlenitev (vir InputSource) v XPathContext ni podprta! Ne morem odpreti {0}"},
+
+  { ER_SAX_API_NOT_HANDLED,
+      "Znaki SAX API(znaka ch[]... ne obravnava DTM!"},
+
+  { ER_IGNORABLE_WHITESPACE_NOT_HANDLED,
+      "ignorableWhitespace(znaka ch[]... ne obravnava DTM!"},
+
+  { ER_DTM_CANNOT_HANDLE_NODES,
+      "DTMLiaison ne more upravljati z vozli\u0161\u010di tipa {0}"},
+
+  { ER_XERCES_CANNOT_HANDLE_NODES,
+      "DOM2Helper ne more upravljati z vozli\u0161\u010di tipa {0}"},
+
+  { ER_XERCES_PARSE_ERROR_DETAILS,
+      "Napaka DOM2Helper.parse: ID sistema - {0} vrstica - {1}"},
+
+  { ER_XERCES_PARSE_ERROR,
+     "Napaka DOM2Helper.parse"},
+
+  { ER_INVALID_UTF16_SURROGATE,
+      "Zaznan neveljaven nadomestek UTF-16: {0} ?"},
+
+  { ER_OIERROR,
+     "Napaka V/I"},
+
+  { ER_CANNOT_CREATE_URL,
+     "Ne morem ustvariti naslova URL za: {0}"},
+
+  { ER_XPATH_READOBJECT,
+     "V XPath.readObject: {0}"},
+
+  { ER_FUNCTION_TOKEN_NOT_FOUND,
+      "ne najdem \u017eetona funkcije."},
+
+  { ER_CANNOT_DEAL_XPATH_TYPE,
+       "Ne morem ravnati z tipom XPath: {0}"},
+
+  { ER_NODESET_NOT_MUTABLE,
+       "Ta NodeSet ni spremenljiv"},
+
+  { ER_NODESETDTM_NOT_MUTABLE,
+       "Ta NodeSetDTM ni spremenljiv"},
+
+  { ER_VAR_NOT_RESOLVABLE,
+        "Spremenljivka ni razre\u0161ljiva: {0}"},
+
+  { ER_NULL_ERROR_HANDLER,
+        "Program za obravnavo napak NULL"},
+
+  { ER_PROG_ASSERT_UNKNOWN_OPCODE,
+       "Programerjeva izjava: neznana opkoda: {0}"},
+
+  { ER_ZERO_OR_ONE,
+       "0 ali 1"},
+
+  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+       "XRTreeFragSelectWrapper ne podpira rtf()"},
+
+  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+       "XRTreeFragSelectWrapper ne podpira asNodeIterator()"},
+
+   { ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper ne podpira detach()"},
+
+   { ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper ne podpira num()"},
+
+   { ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper ne podpira xstr()"},
+
+   { ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper ne podpira str()"},
+
+  { ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS,
+       "fsb() ni podprt za XStringForChars"},
+
+  { ER_COULD_NOT_FIND_VAR,
+      "Spremenljivke z imenom {0} ni mogo\u010de najti"},
+
+  { ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING,
+      "XStringForChars ne more uporabiti niza za argument"},
+
+  { ER_FASTSTRINGBUFFER_CANNOT_BE_NULL,
+      "Argument FastStringBuffer ne more biti NULL"},
+
+  { ER_TWO_OR_THREE,
+       "2 ali 3"},
+
+  { ER_VARIABLE_ACCESSED_BEFORE_BIND,
+       "Spremenljivka uporabljena \u0161e pred njeno vezavo!"},
+
+  { ER_FSB_CANNOT_TAKE_STRING,
+       "XStringForFSB ne more uporabiti niza za argument!"},
+
+  { ER_SETTING_WALKER_ROOT_TO_NULL,
+       "\n !!!! Napaka! Koren sprehajalca nastavljam na NULL!!!"},
+
+  { ER_NODESETDTM_CANNOT_ITERATE,
+       "Tega NodeSetDTM ni mogo\u010de ponavljati do prej\u0161njega vozli\u0161\u010da!"},
+
+  { ER_NODESET_CANNOT_ITERATE,
+       "Tega NodeSet ni mogo\u010de ponavljati do prej\u0161njega vozli\u0161\u010da!"},
+
+  { ER_NODESETDTM_CANNOT_INDEX,
+       "Ta NodeSetDTM ne more opravljati funkcij priprave kazala ali \u0161tetja!"},
+
+  { ER_NODESET_CANNOT_INDEX,
+       "Ta NodeSet ne more opravljati funkcij priprave kazala ali \u0161tetja!"},
+
+  { ER_CANNOT_CALL_SETSHOULDCACHENODE,
+       "Za klicem nextNode klic setShouldCacheNodes ni mogo\u010d!"},
+
+  { ER_ONLY_ALLOWS,
+       "{0} dovoljuje samo argumente {1}"},
+
+  { ER_UNKNOWN_STEP,
+       "Programerjeva izjava v getNextStepPos: neznan stepType: {0}"},
+
+  //Note to translators:  A relative location path is a form of XPath expression.
+  // The message indicates that such an expression was expected following the
+  // characters '/' or '//', but was not found.
+  { ER_EXPECTED_REL_LOC_PATH,
+      "Za \u017eetonom '/' ali '//' je pri\u010dakovana relativna pot do mesta."},
+
+  // Note to translators:  A location path is a form of XPath expression.
+  // The message indicates that syntactically such an expression was expected,but
+  // the characters specified by the substitution text were encountered instead.
+  { ER_EXPECTED_LOC_PATH,
+       "Pri\u010dakovana pot do lokacije, na\u0161jden pa je naslednji \u017eeton\u003a  {0}"},
+
+  // Note to translators:  A location path is a form of XPath expression.
+  // The message indicates that syntactically such a subexpression was expected,
+  // but no more characters were found in the expression.
+  { ER_EXPECTED_LOC_PATH_AT_END_EXPR,
+       "Namesto pri\u010dakovane poti do lokacije je najden konec izraza XPath."},
+
+  // Note to translators:  A location step is part of an XPath expression.
+  // The message indicates that syntactically such an expression was expected
+  // following the specified characters.
+  { ER_EXPECTED_LOC_STEP,
+       "Za \u017eetonom '/' ali '//' je pri\u010dakovan korak mesta."},
+
+  // Note to translators:  A node test is part of an XPath expression that is
+  // used to test for particular kinds of nodes.  In this case, a node test that
+  // consists of an NCName followed by a colon and an asterisk or that consists
+  // of a QName was expected, but was not found.
+  { ER_EXPECTED_NODE_TEST,
+       "Pri\u010dakovan preskus vozli\u0161\u010da, ki ustreza NCImenu:* ali QImenu."},
+
+  // Note to translators:  A step pattern is part of an XPath expression.
+  // The message indicates that syntactically such an expression was expected,
+  // but the specified character was found in the expression instead.
+  { ER_EXPECTED_STEP_PATTERN,
+       "Pri\u010dakovan stopnjevalni vzorec, najden pa je '/'."},
+
+  // Note to translators: A relative path pattern is part of an XPath expression.
+  // The message indicates that syntactically such an expression was expected,
+  // but was not found.
+  { ER_EXPECTED_REL_PATH_PATTERN,
+       "Pri\u010dakovan vzorec z relativno potjo."},
+
+  // Note to translators:  The substitution text is the name of a data type.  The
+  // message indicates that a value of a particular type could not be converted
+  // to a value of type boolean.
+  { ER_CANT_CONVERT_TO_BOOLEAN,
+       "XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogoe\u010de pretvoriti v boolovo vrednost."},
+
+  // Note to translators: Do not translate ANY_UNORDERED_NODE_TYPE and
+  // FIRST_ORDERED_NODE_TYPE.
+  { ER_CANT_CONVERT_TO_SINGLENODE,
+       "XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de pretvoriti v eno vozli\u0161\u010de. Metoda getSingleNodeValue velja samo za tipa ANY_UNORDERED_NODE_TYPE in FIRST_ORDERED_NODE_TYPE."},
+
+  // Note to translators: Do not translate UNORDERED_NODE_SNAPSHOT_TYPE and
+  // ORDERED_NODE_SNAPSHOT_TYPE.
+  { ER_CANT_GET_SNAPSHOT_LENGTH,
+       "Metoda getSnapshotLength ne more biti priklicana za XPathResult izraza XPath ''{0}'', ker je tip XPathResultType {1}. Ta metoda se nana\u0161a samo na tipa UNORDERED_NODE_SNAPSHOT_TYPE in ORDERED_NODE_SNAPSHOT_TYPE."},
+
+  { ER_NON_ITERATOR_TYPE,
+       "Metoda iterateNext ne more biti priklicana za XPathResult izraza XPath ''{0}'', ker je tip XPathResultType {1}. Ta metoda se nana\u0161a samo na tipa UNORDERED_NODE_ITERATOR_TYPE in ORDERED_NODE_ITERATOR_TYPE."},
+
+  // Note to translators: This message indicates that the document being operated
+  // upon changed, so the iterator object that was being used to traverse the
+  // document has now become invalid.
+  { ER_DOC_MUTATED,
+       "Dokument se je spremenil po vrnitvi rezultatov. Iterator je neveljaven."},
+
+  { ER_INVALID_XPATH_TYPE,
+       "Neveljaven argument tipa XPath: {0}"},
+
+  { ER_EMPTY_XPATH_RESULT,
+       "Prazen objekt rezultatov XPath"},
+
+  { ER_INCOMPATIBLE_TYPES,
+       "Rezultat XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de prisiliti v dolo\u010den tip XPathResultType {2}."},
+
+  { ER_NULL_RESOLVER,
+       "Predpone ni bilo mogo\u010de razre\u0161iti z razre\u0161evalnikom predpon NULL."},
+
+  // Note to translators:  The substitution text is the name of a data type.  The
+  // message indicates that a value of a particular type could not be converted
+  // to a value of type string.
+  { ER_CANT_CONVERT_TO_STRING,
+       "Rezultat XPathResult izraza XPath''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de pretvoriti v niz."},
+
+  // Note to translators: Do not translate snapshotItem,
+  // UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE.
+  { ER_NON_SNAPSHOT_TYPE,
+       "Metoda snapshotItem ne more biti priklicana za XPathResult izraza XPath ''{0}'', ker je tip XPathResultType {1}. Ta metoda se nana\u0161a samo na tipa UNORDERED_NODE_SNAPSHOT_TYPE in ORDERED_NODE_SNAPSHOT_TYPE."},
+
+  // Note to translators:  XPathEvaluator is a Java interface name.  An
+  // XPathEvaluator is created with respect to a particular XML document, and in
+  // this case the expression represented by this object was being evaluated with
+  // respect to a context node from a different document.
+  { ER_WRONG_DOCUMENT,
+       "Kontekstno vozli\u0161\u010de ne pripada dokumentu, povezanem s tem XPathEvaluator."},
+
+  // Note to translators:  The XPath expression cannot be evaluated with respect
+  // to this type of node.
+  { ER_WRONG_NODETYPE,
+       "Tip kontekstnega vozli\u0161\u010da ni podprt."},
+
+  { ER_XPATH_ERROR,
+       "Neznana napaka v XPath."},
+
+        { ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER,
+                "XPathResult izraza XPath ''{0}'' ima XPathResultType {1}, ki ga ni mogo\u010de pretvoriti v \u0161tevilko."},
+
+  //BEGIN:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation
+
+  /** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED                       */
+
+  { ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
+       "Raz\u0161iritvene funkcije: ''{0}'' ni mogo\u010de priklicati, kadar je zna\u010dilnost XMLConstants.FEATURE_SECURE_PROCESSING nastavljena na True."},
+
+  /** Field ER_RESOLVE_VARIABLE_RETURNS_NULL                       */
+
+  { ER_RESOLVE_VARIABLE_RETURNS_NULL,
+       "Funkcija resolveVariable za spremenljivko {0} vra\u010da rezultat ni\u010d"},
+
+  /** Field ER_UNSUPPORTED_RETURN_TYPE                       */
+
+  { ER_UNSUPPORTED_RETURN_TYPE,
+       "Nepodprt tip vrnitve : {0}"},
+
+  /** Field ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL                       */
+
+  { ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL,
+       "Vir in/ali Tip vrnitve ne moreta biti ni\u010d"},
+
+  /** Field ER_ARG_CANNOT_BE_NULL                       */
+
+  { ER_ARG_CANNOT_BE_NULL,
+       "Argument {0} ne more biti ni\u010d"},
+
+  /** Field ER_OBJECT_MODEL_NULL                       */
+
+  { ER_OBJECT_MODEL_NULL,
+       "Funkcije {0}#isObjectModelSupported( String objectModel ) ni mogo\u010de priklicati, kadar je objectModel == null"},
+
+  /** Field ER_OBJECT_MODEL_EMPTY                       */
+
+  { ER_OBJECT_MODEL_EMPTY,
+       "Funkcije {0}#isObjectModelSupported( String objectModel ) ni mogo\u010de priklicati, kadar je objectModel == \"\""},
+
+  /** Field ER_OBJECT_MODEL_EMPTY                       */
+
+  { ER_FEATURE_NAME_NULL,
+       "Poskus nastavitve funkcije brez imena (null name): {0}#setFeature( null, {1})"},
+
+  /** Field ER_FEATURE_UNKNOWN                       */
+
+  { ER_FEATURE_UNKNOWN,
+       "Poskus nastavitve neznane funkcije \"{0}\":{1}#setFeature({0},{2})"},
+
+  /** Field ER_GETTING_NULL_FEATURE                       */
+
+  { ER_GETTING_NULL_FEATURE,
+       "Poskus pridobitve funkcije brez imena (null name): {0}#getFeature(null)"},
+
+  /** Field ER_GETTING_NULL_FEATURE                       */
+
+  { ER_GETTING_UNKNOWN_FEATURE,
+       "Poskus pridobitve neznane funkcije \"{0}\":{1}#getFeature({0})"},
+
+  /** Field ER_NULL_XPATH_FUNCTION_RESOLVER                       */
+
+  { ER_NULL_XPATH_FUNCTION_RESOLVER,
+       "Poskus nastavitve XPathFunctionResolver na ni\u010d:{0}#setXPathFunctionResolver(null)"},
+
+  /** Field ER_NULL_XPATH_VARIABLE_RESOLVER                       */
+
+  { ER_NULL_XPATH_VARIABLE_RESOLVER,
+       "Poskus nastavitve funkcije XPathVariableResolver na ni\u010d:{0}#setXPathVariableResolver(null)"},
+
+  //END:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation
+
+  // Warnings...
+
+  { WG_LOCALE_NAME_NOT_HANDLED,
+      "Podro\u010dno ime v funkciji za oblikovanje \u0161tevilk \u0161e ni podprto!"},
+
+  { WG_PROPERTY_NOT_SUPPORTED,
+      "Lastnost XSL ni podprta: {0}"},
+
+  { WG_DONT_DO_ANYTHING_WITH_NS,
+      "V tem trenutku ne po\u010dnite ni\u010desar z imenskim prostorom {0} v lastnosti: {1}"},
+
+  { WG_SECURITY_EXCEPTION,
+      "Pri\u0161lo je do SecurityException (varnostna izjema) pri poskusu dostopa do sistemske lastnosti XSL: {0}"},
+
+  { WG_QUO_NO_LONGER_DEFINED,
+      "Stara sintaksa: quo(...) v XPath ni ve\u010d definiran."},
+
+  { WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST,
+      "XPath potrebuje izpeljani objekt za implementacijo nodeTest!"},
+
+  { WG_FUNCTION_TOKEN_NOT_FOUND,
+      "ne najdem \u017eetona funkcije."},
+
+  { WG_COULDNOT_FIND_FUNCTION,
+      "Ne najdem funkcije: {0}"},
+
+  { WG_CANNOT_MAKE_URL_FROM,
+      "Ne morem narediti naslova URL iz: {0}"},
+
+  { WG_EXPAND_ENTITIES_NOT_SUPPORTED,
+      "Mo\u017enost -E za raz\u010dlenjevalnik DTM ni podprta."},
+
+  { WG_ILLEGAL_VARIABLE_REFERENCE,
+      "Dani VariableReference je izven konteksta ali brez definicije!  Ime = {0}"},
+
+  { WG_UNSUPPORTED_ENCODING,
+     "Nepodprto kodiranje: {0}"},
+
+
+
+  // Other miscellaneous text used inside the code...
+  { "ui_language", "sl"},
+  { "help_language", "sl"},
+  { "language", "sl"},
+  { "BAD_CODE", "Parameter za createMessage presega meje"},
+  { "FORMAT_FAILED", "Med klicem je messageFormat naletel na izjemo"},
+  { "version", ">>>>>>> Razli\u010dica Xalan "},
+  { "version2", "<<<<<<<"},
+  { "yes", "da"},
+  { "line", "Vrstica #"},
+  { "column", "Stolpec #"},
+  { "xsldone", "XSLProcessor: dokon\u010dano"},
+  { "xpath_option", "Mo\u017enosti xpath: "},
+  { "optionIN", "   [-in inputXMLURL]"},
+  { "optionSelect", "   [-select izraz xpath]"},
+  { "optionMatch", "   [-match primerjalni vzorec (za diagnostiko ujemanja)]"},
+  { "optionAnyExpr", "Ali pa bo samo izraz xpath izvedel diagnosti\u010dni izvoz podatkov"},
+  { "noParsermsg1", "Postopek XSL ni uspel."},
+  { "noParsermsg2", "** Nisem na\u0161el raz\u010dlenjevalnika **"},
+  { "noParsermsg3", "Preverite pot razreda."},
+  { "noParsermsg4", "\u010ce nimate IBM raz\u010dlenjevalnika za Javo, ga lahko prenesete iz"},
+  { "noParsermsg5", "IBM AlphaWorks: http://www.alphaworks.ibm.com/formula/xml"},
+  { "gtone", ">1" },
+  { "zero", "0" },
+  { "one", "1" },
+  { "two" , "2" },
+  { "three", "3" }
+
+  };
+  }
+
+
+  // ================= INFRASTRUCTURE ======================
+
+  /** Field BAD_CODE          */
+  public static final String BAD_CODE = "BAD_CODE";
+
+  /** Field FORMAT_FAILED          */
+  public static final String FORMAT_FAILED = "FORMAT_FAILED";
+
+  /** Field ERROR_RESOURCES          */
+  public static final String ERROR_RESOURCES =
+    "org.apache.xpath.res.XPATHErrorResources";
+
+  /** Field ERROR_STRING          */
+  public static final String ERROR_STRING = "#error";
+
+  /** Field ERROR_HEADER          */
+  public static final String ERROR_HEADER = "Napaka: ";
+
+  /** Field WARNING_HEADER          */
+  public static final String WARNING_HEADER = "Opozorilo: ";
+
+  /** Field XSL_HEADER          */
+  public static final String XSL_HEADER = "XSL ";
+
+  /** Field XML_HEADER          */
+  public static final String XML_HEADER = "XML ";
+
+  /** Field QUERY_HEADER          */
+  public static final String QUERY_HEADER = "VZOREC ";
+
+
+  /**
+   * Return a named ResourceBundle for a particular locale.  This method mimics the behavior
+   * of ResourceBundle.getBundle().
+   *
+   * @param className Name of local-specific subclass.
+   * @return the ResourceBundle
+   * @throws MissingResourceException
+   */
+  public static final XPATHErrorResources loadResourceBundle(String className)
+          throws MissingResourceException
+  {
+
+    Locale locale = Locale.getDefault();
+    String suffix = getResourceSuffix(locale);
+
+    try
+    {
+
+      // first try with the given locale
+      return (XPATHErrorResources) ResourceBundle.getBundle(className
+              + suffix, locale);
+    }
+    catch (MissingResourceException e)
+    {
+      try  // try to fall back to en_US if we can't load
+      {
+
+        // Since we can't find the localized property file,
+        // fall back to en_US.
+        return (XPATHErrorResources) ResourceBundle.getBundle(className,
+                new Locale("sl", "SL"));
+      }
+      catch (MissingResourceException e2)
+      {
+
+        // Now we are really in trouble.
+        // very bad, definitely very bad...not going to get very far
+        throw new MissingResourceException(
+          "Could not load any resource bundles.", className, "");
+      }
+    }
+  }
+
+  /**
+   * Return the resource file suffic for the indicated locale
+   * For most locales, this will be based the language code.  However
+   * for Chinese, we do distinguish between Taiwan and PRC
+   *
+   * @param locale the locale
+   * @return an String suffix which canbe appended to a resource name
+   */
+  private static final String getResourceSuffix(Locale locale)
+  {
+
+    String suffix = "_" + locale.getLanguage();
+    String country = locale.getCountry();
+
+    if (country.equals("TW"))
+      suffix += "_" + country;
+
+    return suffix;
+  }
+
+}
diff --git a/src/org/apache/xpath/res/XPATHErrorResources_zh.java b/src/org/apache/xpath/res/XPATHErrorResources_zh.java
old mode 100755
new mode 100644
index a6befb1..6a353f5
--- a/src/org/apache/xpath/res/XPATHErrorResources_zh.java
+++ b/src/org/apache/xpath/res/XPATHErrorResources_zh.java
@@ -1,991 +1,991 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the  "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- *

- *     http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- */

-/*

- * $Id: XPATHErrorResources_zh.java 338104 2005-01-23 01:39:54Z mcnamara $

- */

-package org.apache.xpath.res;

-

-import java.util.ListResourceBundle;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-/**

- * Set up error messages.

- * We build a two dimensional array of message keys and

- * message strings. In order to add a new message here,

- * you need to first add a Static string constant for the

- * Key and update the contents array with Key, Value pair

-  * Also you need to  update the count of messages(MAX_CODE)or

- * the count of warnings(MAX_WARNING) [ Information purpose only]

- * @xsl.usage advanced

- */

-public class XPATHErrorResources_zh extends ListResourceBundle

-{

-

-/*

- * General notes to translators:

- *

- * This file contains error and warning messages related to XPath Error

- * Handling.

- *

- *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of

- *     components.

- *     XSLT is an acronym for "XML Stylesheet Language: Transformations".

- *     XSLTC is an acronym for XSLT Compiler.

- *

- *  2) A stylesheet is a description of how to transform an input XML document

- *     into a resultant XML document (or HTML document or text).  The

- *     stylesheet itself is described in the form of an XML document.

- *

- *  3) A template is a component of a stylesheet that is used to match a

- *     particular portion of an input document and specifies the form of the

- *     corresponding portion of the output document.

- *

- *  4) An element is a mark-up tag in an XML document; an attribute is a

- *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>

- *     "elem" is an element name, "attr" and "attr2" are attribute names with

- *     the values "val" and "val2", respectively.

- *

- *  5) A namespace declaration is a special attribute that is used to associate

- *     a prefix with a URI (the namespace).  The meanings of element names and

- *     attribute names that use that prefix are defined with respect to that

- *     namespace.

- *

- *  6) "Translet" is an invented term that describes the class file that

- *     results from compiling an XML stylesheet into a Java class.

- *

- *  7) XPath is a specification that describes a notation for identifying

- *     nodes in a tree-structured representation of an XML document.  An

- *     instance of that notation is referred to as an XPath expression.

- *

- *  8) The context node is the node in the document with respect to which an

- *     XPath expression is being evaluated.

- *

- *  9) An iterator is an object that traverses nodes in the tree, one at a time.

- *

- *  10) NCName is an XML term used to describe a name that does not contain a

- *     colon (a "no-colon name").

- *

- *  11) QName is an XML term meaning "qualified name".

- */

-

-  /*

-   * static variables

-   */

-  public static final String ERROR0000 = "ERROR0000";

-  public static final String ER_CURRENT_NOT_ALLOWED_IN_MATCH =

-         "ER_CURRENT_NOT_ALLOWED_IN_MATCH";

-  public static final String ER_CURRENT_TAKES_NO_ARGS =

-         "ER_CURRENT_TAKES_NO_ARGS";

-  public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED";

-  public static final String ER_CONTEXT_HAS_NO_OWNERDOC =

-         "ER_CONTEXT_HAS_NO_OWNERDOC";

-  public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS =

-         "ER_LOCALNAME_HAS_TOO_MANY_ARGS";

-  public static final String ER_NAMESPACEURI_HAS_TOO_MANY_ARGS =

-         "ER_NAMESPACEURI_HAS_TOO_MANY_ARGS";

-  public static final String ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS =

-         "ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS";

-  public static final String ER_NUMBER_HAS_TOO_MANY_ARGS =

-         "ER_NUMBER_HAS_TOO_MANY_ARGS";

-  public static final String ER_NAME_HAS_TOO_MANY_ARGS =

-         "ER_NAME_HAS_TOO_MANY_ARGS";

-  public static final String ER_STRING_HAS_TOO_MANY_ARGS =

-         "ER_STRING_HAS_TOO_MANY_ARGS";

-  public static final String ER_STRINGLENGTH_HAS_TOO_MANY_ARGS =

-         "ER_STRINGLENGTH_HAS_TOO_MANY_ARGS";

-  public static final String ER_TRANSLATE_TAKES_3_ARGS =

-         "ER_TRANSLATE_TAKES_3_ARGS";

-  public static final String ER_UNPARSEDENTITYURI_TAKES_1_ARG =

-         "ER_UNPARSEDENTITYURI_TAKES_1_ARG";

-  public static final String ER_NAMESPACEAXIS_NOT_IMPLEMENTED =

-         "ER_NAMESPACEAXIS_NOT_IMPLEMENTED";

-  public static final String ER_UNKNOWN_AXIS = "ER_UNKNOWN_AXIS";

-  public static final String ER_UNKNOWN_MATCH_OPERATION =

-         "ER_UNKNOWN_MATCH_OPERATION";

-  public static final String ER_INCORRECT_ARG_LENGTH ="ER_INCORRECT_ARG_LENGTH";

-  public static final String ER_CANT_CONVERT_TO_NUMBER =

-         "ER_CANT_CONVERT_TO_NUMBER";

-  public static final String ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER =

-           "ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER";

-  public static final String ER_CANT_CONVERT_TO_NODELIST =

-         "ER_CANT_CONVERT_TO_NODELIST";

-  public static final String ER_CANT_CONVERT_TO_MUTABLENODELIST =

-         "ER_CANT_CONVERT_TO_MUTABLENODELIST";

-  public static final String ER_CANT_CONVERT_TO_TYPE ="ER_CANT_CONVERT_TO_TYPE";

-  public static final String ER_EXPECTED_MATCH_PATTERN =

-         "ER_EXPECTED_MATCH_PATTERN";

-  public static final String ER_COULDNOT_GET_VAR_NAMED =

-         "ER_COULDNOT_GET_VAR_NAMED";

-  public static final String ER_UNKNOWN_OPCODE = "ER_UNKNOWN_OPCODE";

-  public static final String ER_EXTRA_ILLEGAL_TOKENS ="ER_EXTRA_ILLEGAL_TOKENS";

-  public static final String ER_EXPECTED_DOUBLE_QUOTE =

-         "ER_EXPECTED_DOUBLE_QUOTE";

-  public static final String ER_EXPECTED_SINGLE_QUOTE =

-         "ER_EXPECTED_SINGLE_QUOTE";

-  public static final String ER_EMPTY_EXPRESSION = "ER_EMPTY_EXPRESSION";

-  public static final String ER_EXPECTED_BUT_FOUND = "ER_EXPECTED_BUT_FOUND";

-  public static final String ER_INCORRECT_PROGRAMMER_ASSERTION =

-         "ER_INCORRECT_PROGRAMMER_ASSERTION";

-  public static final String ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL =

-         "ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL";

-  public static final String ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG =

-         "ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG";

-  public static final String ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG =

-         "ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG";

-  public static final String ER_PREDICATE_ILLEGAL_SYNTAX =

-         "ER_PREDICATE_ILLEGAL_SYNTAX";

-  public static final String ER_ILLEGAL_AXIS_NAME = "ER_ILLEGAL_AXIS_NAME";

-  public static final String ER_UNKNOWN_NODETYPE = "ER_UNKNOWN_NODETYPE";

-  public static final String ER_PATTERN_LITERAL_NEEDS_BE_QUOTED =

-         "ER_PATTERN_LITERAL_NEEDS_BE_QUOTED";

-  public static final String ER_COULDNOT_BE_FORMATTED_TO_NUMBER =

-         "ER_COULDNOT_BE_FORMATTED_TO_NUMBER";

-  public static final String ER_COULDNOT_CREATE_XMLPROCESSORLIAISON =

-         "ER_COULDNOT_CREATE_XMLPROCESSORLIAISON";

-  public static final String ER_DIDNOT_FIND_XPATH_SELECT_EXP =

-         "ER_DIDNOT_FIND_XPATH_SELECT_EXP";

-  public static final String ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH =

-         "ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH";

-  public static final String ER_ERROR_OCCURED = "ER_ERROR_OCCURED";

-  public static final String ER_ILLEGAL_VARIABLE_REFERENCE =

-         "ER_ILLEGAL_VARIABLE_REFERENCE";

-  public static final String ER_AXES_NOT_ALLOWED = "ER_AXES_NOT_ALLOWED";

-  public static final String ER_KEY_HAS_TOO_MANY_ARGS =

-         "ER_KEY_HAS_TOO_MANY_ARGS";

-  public static final String ER_COUNT_TAKES_1_ARG = "ER_COUNT_TAKES_1_ARG";

-  public static final String ER_COULDNOT_FIND_FUNCTION =

-         "ER_COULDNOT_FIND_FUNCTION";

-  public static final String ER_UNSUPPORTED_ENCODING ="ER_UNSUPPORTED_ENCODING";

-  public static final String ER_PROBLEM_IN_DTM_NEXTSIBLING =

-         "ER_PROBLEM_IN_DTM_NEXTSIBLING";

-  public static final String ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL =

-         "ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL";

-  public static final String ER_SETDOMFACTORY_NOT_SUPPORTED =

-         "ER_SETDOMFACTORY_NOT_SUPPORTED";

-  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";

-  public static final String ER_PARSE_NOT_SUPPORTED = "ER_PARSE_NOT_SUPPORTED";

-  public static final String ER_SAX_API_NOT_HANDLED = "ER_SAX_API_NOT_HANDLED";

-public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED =

-         "ER_IGNORABLE_WHITESPACE_NOT_HANDLED";

-  public static final String ER_DTM_CANNOT_HANDLE_NODES =

-         "ER_DTM_CANNOT_HANDLE_NODES";

-  public static final String ER_XERCES_CANNOT_HANDLE_NODES =

-         "ER_XERCES_CANNOT_HANDLE_NODES";

-  public static final String ER_XERCES_PARSE_ERROR_DETAILS =

-         "ER_XERCES_PARSE_ERROR_DETAILS";

-  public static final String ER_XERCES_PARSE_ERROR = "ER_XERCES_PARSE_ERROR";

-  public static final String ER_INVALID_UTF16_SURROGATE =

-         "ER_INVALID_UTF16_SURROGATE";

-  public static final String ER_OIERROR = "ER_OIERROR";

-  public static final String ER_CANNOT_CREATE_URL = "ER_CANNOT_CREATE_URL";

-  public static final String ER_XPATH_READOBJECT = "ER_XPATH_READOBJECT";

- public static final String ER_FUNCTION_TOKEN_NOT_FOUND =

-         "ER_FUNCTION_TOKEN_NOT_FOUND";

-  public static final String ER_CANNOT_DEAL_XPATH_TYPE =

-         "ER_CANNOT_DEAL_XPATH_TYPE";

-  public static final String ER_NODESET_NOT_MUTABLE = "ER_NODESET_NOT_MUTABLE";

-  public static final String ER_NODESETDTM_NOT_MUTABLE =

-         "ER_NODESETDTM_NOT_MUTABLE";

-   /**  Variable not resolvable:   */

-  public static final String ER_VAR_NOT_RESOLVABLE = "ER_VAR_NOT_RESOLVABLE";

-   /** Null error handler  */

- public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";

-   /**  Programmer's assertion: unknown opcode  */

-  public static final String ER_PROG_ASSERT_UNKNOWN_OPCODE =

-         "ER_PROG_ASSERT_UNKNOWN_OPCODE";

-   /**  0 or 1   */

-  public static final String ER_ZERO_OR_ONE = "ER_ZERO_OR_ONE";

-   /**  rtf() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-   /**  asNodeIterator() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER = "ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-   /**  fsb() not supported for XStringForChars   */

-  public static final String ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS =

-         "ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS";

-   /**  Could not find variable with the name of   */

- public static final String ER_COULD_NOT_FIND_VAR = "ER_COULD_NOT_FIND_VAR";

-   /**  XStringForChars can not take a string for an argument   */

- public static final String ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING =

-         "ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING";

-   /**  The FastStringBuffer argument can not be null   */

- public static final String ER_FASTSTRINGBUFFER_CANNOT_BE_NULL =

-         "ER_FASTSTRINGBUFFER_CANNOT_BE_NULL";

-   /**  2 or 3   */

-  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";

-   /** Variable accessed before it is bound! */

-  public static final String ER_VARIABLE_ACCESSED_BEFORE_BIND =

-         "ER_VARIABLE_ACCESSED_BEFORE_BIND";

-   /** XStringForFSB can not take a string for an argument! */

- public static final String ER_FSB_CANNOT_TAKE_STRING =

-         "ER_FSB_CANNOT_TAKE_STRING";

-   /** Error! Setting the root of a walker to null! */

-  public static final String ER_SETTING_WALKER_ROOT_TO_NULL =

-         "ER_SETTING_WALKER_ROOT_TO_NULL";

-   /** This NodeSetDTM can not iterate to a previous node! */

-  public static final String ER_NODESETDTM_CANNOT_ITERATE =

-         "ER_NODESETDTM_CANNOT_ITERATE";

-  /** This NodeSet can not iterate to a previous node! */

- public static final String ER_NODESET_CANNOT_ITERATE =

-         "ER_NODESET_CANNOT_ITERATE";

-  /** This NodeSetDTM can not do indexing or counting functions! */

-  public static final String ER_NODESETDTM_CANNOT_INDEX =

-         "ER_NODESETDTM_CANNOT_INDEX";

-  /** This NodeSet can not do indexing or counting functions! */

-  public static final String ER_NODESET_CANNOT_INDEX =

-         "ER_NODESET_CANNOT_INDEX";

-  /** Can not call setShouldCacheNodes after nextNode has been called! */

-  public static final String ER_CANNOT_CALL_SETSHOULDCACHENODE =

-         "ER_CANNOT_CALL_SETSHOULDCACHENODE";

-  /** {0} only allows {1} arguments */

- public static final String ER_ONLY_ALLOWS = "ER_ONLY_ALLOWS";

-  /** Programmer's assertion in getNextStepPos: unknown stepType: {0} */

-  public static final String ER_UNKNOWN_STEP = "ER_UNKNOWN_STEP";

-  /** Problem with RelativeLocationPath */

-  public static final String ER_EXPECTED_REL_LOC_PATH =

-         "ER_EXPECTED_REL_LOC_PATH";

-  /** Problem with LocationPath */

-  public static final String ER_EXPECTED_LOC_PATH = "ER_EXPECTED_LOC_PATH";

-  public static final String ER_EXPECTED_LOC_PATH_AT_END_EXPR =

-                                        "ER_EXPECTED_LOC_PATH_AT_END_EXPR";

-  /** Problem with Step */

-  public static final String ER_EXPECTED_LOC_STEP = "ER_EXPECTED_LOC_STEP";

-  /** Problem with NodeTest */

-  public static final String ER_EXPECTED_NODE_TEST = "ER_EXPECTED_NODE_TEST";

-  /** Expected step pattern */

-  public static final String ER_EXPECTED_STEP_PATTERN =

-        "ER_EXPECTED_STEP_PATTERN";

-  /** Expected relative path pattern */

-  public static final String ER_EXPECTED_REL_PATH_PATTERN =

-         "ER_EXPECTED_REL_PATH_PATTERN";

-  /** ER_CANT_CONVERT_XPATHRESULTTYPE_TO_BOOLEAN          */

-  public static final String ER_CANT_CONVERT_TO_BOOLEAN =

-         "ER_CANT_CONVERT_TO_BOOLEAN";

-  /** Field ER_CANT_CONVERT_TO_SINGLENODE       */

-  public static final String ER_CANT_CONVERT_TO_SINGLENODE =

-         "ER_CANT_CONVERT_TO_SINGLENODE";

-  /** Field ER_CANT_GET_SNAPSHOT_LENGTH         */

-  public static final String ER_CANT_GET_SNAPSHOT_LENGTH =

-         "ER_CANT_GET_SNAPSHOT_LENGTH";

-  /** Field ER_NON_ITERATOR_TYPE                */

-  public static final String ER_NON_ITERATOR_TYPE = "ER_NON_ITERATOR_TYPE";

-  /** Field ER_DOC_MUTATED                      */

-  public static final String ER_DOC_MUTATED = "ER_DOC_MUTATED";

-  public static final String ER_INVALID_XPATH_TYPE = "ER_INVALID_XPATH_TYPE";

-  public static final String ER_EMPTY_XPATH_RESULT = "ER_EMPTY_XPATH_RESULT";

-  public static final String ER_INCOMPATIBLE_TYPES = "ER_INCOMPATIBLE_TYPES";

-  public static final String ER_NULL_RESOLVER = "ER_NULL_RESOLVER";

-  public static final String ER_CANT_CONVERT_TO_STRING =

-         "ER_CANT_CONVERT_TO_STRING";

-  public static final String ER_NON_SNAPSHOT_TYPE = "ER_NON_SNAPSHOT_TYPE";

-  public static final String ER_WRONG_DOCUMENT = "ER_WRONG_DOCUMENT";

-  /* Note to translators:  The XPath expression cannot be evaluated with respect

-   * to this type of node.

-   */

-  /** Field ER_WRONG_NODETYPE                    */

-  public static final String ER_WRONG_NODETYPE = "ER_WRONG_NODETYPE";

-  public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";

-

-  //BEGIN: Keys needed for exception messages of  JAXP 1.3 XPath API implementation

-  public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";

-  public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";

-  public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";

-  public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";

-  public static final String ER_ARG_CANNOT_BE_NULL = "ER_ARG_CANNOT_BE_NULL";

-

-  public static final String ER_OBJECT_MODEL_NULL = "ER_OBJECT_MODEL_NULL";

-  public static final String ER_OBJECT_MODEL_EMPTY = "ER_OBJECT_MODEL_EMPTY";

-  public static final String ER_FEATURE_NAME_NULL = "ER_FEATURE_NAME_NULL";

-  public static final String ER_FEATURE_UNKNOWN = "ER_FEATURE_UNKNOWN";

-  public static final String ER_GETTING_NULL_FEATURE = "ER_GETTING_NULL_FEATURE";

-  public static final String ER_GETTING_UNKNOWN_FEATURE = "ER_GETTING_UNKNOWN_FEATURE";

-  public static final String ER_NULL_XPATH_FUNCTION_RESOLVER = "ER_NULL_XPATH_FUNCTION_RESOLVER";

-  public static final String ER_NULL_XPATH_VARIABLE_RESOLVER = "ER_NULL_XPATH_VARIABLE_RESOLVER";

-  //END: Keys needed for exception messages of  JAXP 1.3 XPath API implementation

-

-  public static final String WG_LOCALE_NAME_NOT_HANDLED =

-         "WG_LOCALE_NAME_NOT_HANDLED";

-  public static final String WG_PROPERTY_NOT_SUPPORTED =

-         "WG_PROPERTY_NOT_SUPPORTED";

-  public static final String WG_DONT_DO_ANYTHING_WITH_NS =

-         "WG_DONT_DO_ANYTHING_WITH_NS";

-  public static final String WG_SECURITY_EXCEPTION = "WG_SECURITY_EXCEPTION";

-  public static final String WG_QUO_NO_LONGER_DEFINED =

-         "WG_QUO_NO_LONGER_DEFINED";

-  public static final String WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST =

-         "WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST";

-  public static final String WG_FUNCTION_TOKEN_NOT_FOUND =

-         "WG_FUNCTION_TOKEN_NOT_FOUND";

-  public static final String WG_COULDNOT_FIND_FUNCTION =

-         "WG_COULDNOT_FIND_FUNCTION";

-  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";

-  public static final String WG_EXPAND_ENTITIES_NOT_SUPPORTED =

-         "WG_EXPAND_ENTITIES_NOT_SUPPORTED";

-  public static final String WG_ILLEGAL_VARIABLE_REFERENCE =

-         "WG_ILLEGAL_VARIABLE_REFERENCE";

-  public static final String WG_UNSUPPORTED_ENCODING ="WG_UNSUPPORTED_ENCODING";

-

-  /**  detach() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-  /**  num() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-  /**  xstr() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-  /**  str() not supported by XRTreeFragSelectWrapper   */

-  public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =

-         "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";

-

-  // Error messages...

-

-

-  /**

-   * Get the association list.

-   *

-   * @return The association list.

-   */

-  public Object[][] getContents()

-  {

-    return new Object[][]{

-

-  { "ERROR0000" , "{0}" },

-

-  { ER_CURRENT_NOT_ALLOWED_IN_MATCH, "\u5339\u914d\u6a21\u5f0f\u4e2d\u4e0d\u5141\u8bb8\u6709 current() \u51fd\u6570\uff01" },

-

-  { ER_CURRENT_TAKES_NO_ARGS, "current() \u51fd\u6570\u4e0d\u63a5\u53d7\u53c2\u6570\uff01" },

-

-  { ER_DOCUMENT_REPLACED,

-      "document() \u51fd\u6570\u5b9e\u73b0\u5df2\u88ab org.apache.xalan.xslt.FuncDocument \u66ff\u6362\uff01"},

-

-  { ER_CONTEXT_HAS_NO_OWNERDOC,

-      "\u4e0a\u4e0b\u6587\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},

-

-  { ER_LOCALNAME_HAS_TOO_MANY_ARGS,

-      "local-name() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_NAMESPACEURI_HAS_TOO_MANY_ARGS,

-      "namespace-uri() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS,

-      "normalize-space() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_NUMBER_HAS_TOO_MANY_ARGS,

-      "number() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_NAME_HAS_TOO_MANY_ARGS,

-     "name() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_STRING_HAS_TOO_MANY_ARGS,

-      "string() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_STRINGLENGTH_HAS_TOO_MANY_ARGS,

-      "string-length() \u7684\u53c2\u6570\u592a\u591a\u3002"},

-

-  { ER_TRANSLATE_TAKES_3_ARGS,

-      "translate() \u51fd\u6570\u6709\u4e09\u4e2a\u53c2\u6570\uff01"},

-

-  { ER_UNPARSEDENTITYURI_TAKES_1_ARG,

-      "unparsed-entity-uri \u51fd\u6570\u5e94\u6709\u4e00\u4e2a\u53c2\u6570\uff01"},

-

-  { ER_NAMESPACEAXIS_NOT_IMPLEMENTED,

-      "\u540d\u79f0\u7a7a\u95f4\u8f74\u5c1a\u672a\u5b9e\u73b0\uff01"},

-

-  { ER_UNKNOWN_AXIS,

-     "\u672a\u77e5\u8f74\uff1a{0}"},

-

-  { ER_UNKNOWN_MATCH_OPERATION,

-     "\u672a\u77e5\u7684\u5339\u914d\u64cd\u4f5c\uff01"},

-

-  { ER_INCORRECT_ARG_LENGTH,

-      "processing-instruction() \u8282\u70b9\u6d4b\u8bd5\u7684\u53c2\u6570\u957f\u5ea6\u4e0d\u6b63\u786e\uff01"},

-

-  { ER_CANT_CONVERT_TO_NUMBER,

-      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210\u6570\u5b57"},

-

-  { ER_CANT_CONVERT_TO_NODELIST,

-      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210 NodeList\uff01"},

-

-  { ER_CANT_CONVERT_TO_MUTABLENODELIST,

-      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210 NodeSetDTM\uff01"},

-

-  { ER_CANT_CONVERT_TO_TYPE,

-      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210 type#{1}"},

-

-  { ER_EXPECTED_MATCH_PATTERN,

-      "getMatchScore \u4e2d\u51fa\u73b0\u671f\u671b\u7684\u5339\u914d\u6a21\u5f0f\uff01"},

-

-  { ER_COULDNOT_GET_VAR_NAMED,

-      "\u65e0\u6cd5\u83b7\u53d6\u540d\u4e3a {0} \u7684\u53d8\u91cf"},

-

-  { ER_UNKNOWN_OPCODE,

-     "\u9519\u8bef\uff01\u672a\u77e5\u64cd\u4f5c\u7801\uff1a{0}"},

-

-  { ER_EXTRA_ILLEGAL_TOKENS,

-     "\u989d\u5916\u7684\u975e\u6cd5\u6807\u8bb0\uff1a{0}"},

-

-

-  { ER_EXPECTED_DOUBLE_QUOTE,

-      "\u9519\u8bef\u5f15\u7528\u7684\u6587\u5b57... \u5e94\u8be5\u4e3a\u53cc\u5f15\u53f7\uff01"},

-

-  { ER_EXPECTED_SINGLE_QUOTE,

-      "\u9519\u8bef\u5f15\u7528\u7684\u6587\u5b57... \u5e94\u8be5\u4e3a\u5355\u5f15\u53f7\uff01"},

-

-  { ER_EMPTY_EXPRESSION,

-     "\u7a7a\u8868\u8fbe\u5f0f\uff01"},

-

-  { ER_EXPECTED_BUT_FOUND,

-     "\u5e94\u8be5\u4e3a {0}\uff0c\u4f46\u53d1\u73b0\u7684\u662f\uff1a{1}"},

-

-  { ER_INCORRECT_PROGRAMMER_ASSERTION,

-      "\u7a0b\u5e8f\u5458\u7684\u65ad\u8a00\u4e0d\u6b63\u786e\uff01\uff0d {0}"},

-

-  { ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL,

-      "19990709 XPath \u8349\u7a3f\u4e2d\uff0cboolean(...) \u53c2\u6570\u4e0d\u518d\u53ef\u9009\u3002"},

-

-  { ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG,

-      "\u5df2\u627e\u5230\u201c,\u201d\uff0c\u4f46\u524d\u9762\u6ca1\u6709\u81ea\u53d8\u91cf\uff01"},

-

-  { ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG,

-      "\u5df2\u627e\u5230\u201c,\u201d\uff0c\u4f46\u540e\u9762\u6ca1\u6709\u8ddf\u81ea\u53d8\u91cf\uff01"},

-

-  { ER_PREDICATE_ILLEGAL_SYNTAX,

-      "\u201c..[predicate]\u201d\u6216\u201c.[predicate]\u201d\u662f\u975e\u6cd5\u7684\u8bed\u6cd5\u3002\u8bf7\u6539\u4e3a\u4f7f\u7528\u201cself::node()[predicate]\u201d\u3002"},

-

-  { ER_ILLEGAL_AXIS_NAME,

-     "\u975e\u6cd5\u7684\u8f74\u540d\u79f0\uff1a{0}"},

-

-  { ER_UNKNOWN_NODETYPE,

-     "\u672a\u77e5\u8282\u70b9\u7c7b\u578b\uff1a{0}"},

-

-  { ER_PATTERN_LITERAL_NEEDS_BE_QUOTED,

-      "\u9700\u8981\u5f15\u7528\u6a21\u5f0f\u6587\u5b57\uff08{0}\uff09\uff01"},

-

-  { ER_COULDNOT_BE_FORMATTED_TO_NUMBER,

-      "{0} \u65e0\u6cd5\u683c\u5f0f\u5316\u4e3a\u6570\u5b57\uff01"},

-

-  { ER_COULDNOT_CREATE_XMLPROCESSORLIAISON,

-      "\u65e0\u6cd5\u521b\u5efa XML TransformerFactory \u8054\u7cfb\uff1a{0}"},

-

-  { ER_DIDNOT_FIND_XPATH_SELECT_EXP,

-      "\u9519\u8bef\uff01\u627e\u4e0d\u5230 xpath \u9009\u62e9\u8868\u8fbe\u5f0f\uff08-select\uff09\u3002"},

-

-  { ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH,

-      "\u9519\u8bef\uff01\u5728 OP_LOCATIONPATH \u4e4b\u540e\u627e\u4e0d\u5230 ENDOP"},

-

-  { ER_ERROR_OCCURED,

-     "\u51fa\u73b0\u9519\u8bef\uff01"},

-

-  { ER_ILLEGAL_VARIABLE_REFERENCE,

-      "VariableReference \u8d4b\u7ed9\u4e86\u4e0a\u4e0b\u6587\u5916\u7684\u53d8\u91cf\u6216\u6ca1\u6709\u5b9a\u4e49\u7684\u53d8\u91cf\uff01\u540d\u79f0 = {0}"},

-

-  { ER_AXES_NOT_ALLOWED,

-      "\u5728\u5339\u914d\u6a21\u5f0f\u4e2d\u53ea\u5141\u8bb8\u51fa\u73b0 child:: \u548c attribute:: \u8f74\uff01\u8fdd\u53cd\u7684\u8f74 = {0}"},

-

-  { ER_KEY_HAS_TOO_MANY_ARGS,

-      "key() \u7684\u53c2\u6570\u4e2a\u6570\u4e0d\u6b63\u786e\u3002"},

-

-  { ER_COUNT_TAKES_1_ARG,

-      "count \u51fd\u6570\u5e94\u8be5\u6709\u4e00\u4e2a\u53c2\u6570\uff01"},

-

-  { ER_COULDNOT_FIND_FUNCTION,

-     "\u627e\u4e0d\u5230\u51fd\u6570\uff1a{0}"},

-

-  { ER_UNSUPPORTED_ENCODING,

-     "\u4e0d\u53d7\u652f\u6301\u7684\u7f16\u7801\uff1a{0}"},

-

-  { ER_PROBLEM_IN_DTM_NEXTSIBLING,

-      "getNextSibling \u8fc7\u7a0b\u4e2d\uff0cDTM \u4e2d\u51fa\u73b0\u95ee\u9898...\u6b63\u5728\u5c1d\u8bd5\u6062\u590d"},

-

-  { ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL,

-      "\u7a0b\u5e8f\u5458\u9519\u8bef\uff1a\u4e0d\u53ef\u5411 EmptyNodeList \u5199\u5165\u5185\u5bb9\u3002"},

-

-  { ER_SETDOMFACTORY_NOT_SUPPORTED,

-      "XPathContext \u4e0d\u652f\u6301 setDOMFactory\uff01"},

-

-  { ER_PREFIX_MUST_RESOLVE,

-      "\u524d\u7f00\u5fc5\u987b\u89e3\u6790\u4e3a\u540d\u79f0\u7a7a\u95f4\uff1a{0}"},

-

-  { ER_PARSE_NOT_SUPPORTED,

-      "XPathContext \u4e2d\u4e0d\u652f\u6301 parse (InputSource source)\uff01\u65e0\u6cd5\u6253\u5f00 {0}"},

-

-  { ER_SAX_API_NOT_HANDLED,

-      "DTM \u4e0d\u5904\u7406 SAX API characters(char ch[]...\uff01"},

-

-  { ER_IGNORABLE_WHITESPACE_NOT_HANDLED,

-      "DTM \u4e0d\u5904\u7406 ignorableWhitespace(char ch[]...\uff01"},

-

-  { ER_DTM_CANNOT_HANDLE_NODES,

-      "DTMLiaison \u4e0d\u80fd\u5904\u7406\u7c7b\u578b {0} \u7684\u8282\u70b9"},

-

-  { ER_XERCES_CANNOT_HANDLE_NODES,

-      "DOM2Helper \u4e0d\u80fd\u5904\u7406\u7c7b\u578b {0} \u7684\u8282\u70b9"},

-

-  { ER_XERCES_PARSE_ERROR_DETAILS,

-      "DOM2Helper.parse \u9519\u8bef\uff1aSystemID \uff0d \u7b2c {0} \u884c \uff0d {1}"},

-

-  { ER_XERCES_PARSE_ERROR,

-     "DOM2Helper.parse \u9519\u8bef"},

-

-  { ER_INVALID_UTF16_SURROGATE,

-      "\u68c0\u6d4b\u5230\u65e0\u6548\u7684 UTF-16 \u8d85\u5927\u5b57\u7b26\u96c6\uff1a{0}\uff1f"},

-

-  { ER_OIERROR,

-     "IO \u9519\u8bef"},

-

-  { ER_CANNOT_CREATE_URL,

-     "\u65e0\u6cd5\u4e3a {0} \u521b\u5efa URL"},

-

-  { ER_XPATH_READOBJECT,

-     "\u5728 XPath.readObject \u4e2d\uff1a{0}"},

-

-  { ER_FUNCTION_TOKEN_NOT_FOUND,

-      "\u627e\u4e0d\u5230\u51fd\u6570\u6807\u8bb0\u3002"},

-

-  { ER_CANNOT_DEAL_XPATH_TYPE,

-       "\u65e0\u6cd5\u5904\u7406 XPath \u7c7b\u578b\uff1a{0}"},

-

-  { ER_NODESET_NOT_MUTABLE,

-       "\u6b64 NodeSet \u662f\u4e0d\u6613\u53d8\u7684"},

-

-  { ER_NODESETDTM_NOT_MUTABLE,

-       "\u6b64 NodeSetDTM \u662f\u4e0d\u6613\u53d8\u7684"},

-

-  { ER_VAR_NOT_RESOLVABLE,

-        "\u53d8\u91cf\u4e0d\u53ef\u89e3\u6790\uff1a{0}"},

-

-  { ER_NULL_ERROR_HANDLER,

-        "\u9519\u8bef\u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},

-

-  { ER_PROG_ASSERT_UNKNOWN_OPCODE,

-       "\u7a0b\u5e8f\u5458\u65ad\u8a00\uff1a\u672a\u77e5\u64cd\u4f5c\u7801\uff1a{0}"},

-

-  { ER_ZERO_OR_ONE,

-       "0 \u6216 1"},

-

-  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-       "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 rtf()"},

-

-  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-       "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 asNodeIterator()"},

-

-   { ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 detach()"},

-

-   { ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 num()"},

-

-   { ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 xstr()"},

-

-   { ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,

-                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 str()"},

-

-  { ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS,

-       "XStringForChars \u4e0d\u652f\u6301 fsb()"},

-

-  { ER_COULD_NOT_FIND_VAR,

-      "\u627e\u4e0d\u5230\u540d\u4e3a {0} \u7684\u53d8\u91cf"},

-

-  { ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING,

-      "XStringForChars \u65e0\u6cd5\u5c06\u5b57\u7b26\u4e32\u4f5c\u4e3a\u81ea\u53d8\u91cf"},

-

-  { ER_FASTSTRINGBUFFER_CANNOT_BE_NULL,

-      "FastStringBuffer \u81ea\u53d8\u91cf\u4e0d\u80fd\u4e3a\u7a7a"},

-

-  { ER_TWO_OR_THREE,

-       "2 \u6216 3"},

-

-  { ER_VARIABLE_ACCESSED_BEFORE_BIND,

-       "\u5728\u7ed1\u5b9a\u524d\u5df2\u8bbf\u95ee\u53d8\u91cf\uff01"},

-

-  { ER_FSB_CANNOT_TAKE_STRING,

-       "XStringForFSB \u65e0\u6cd5\u5c06\u5b57\u7b26\u4e32\u4f5c\u4e3a\u81ea\u53d8\u91cf\uff01"},

-

-  { ER_SETTING_WALKER_ROOT_TO_NULL,

-       "\n \uff01\uff01\uff01\uff01\u9519\u8bef\uff01\u6b63\u5728\u5c06\u6b65\u884c\u7a0b\u5e8f\u7684\u6839\u8bbe\u7f6e\u4e3a\u7a7a\uff01\uff01\uff01"},

-

-  { ER_NODESETDTM_CANNOT_ITERATE,

-       "\u6b64 NodeSetDTM \u65e0\u6cd5\u8fed\u4ee3\u5230\u5148\u524d\u7684\u8282\u70b9\uff01"},

-

-  { ER_NODESET_CANNOT_ITERATE,

-       "\u6b64 NodeSet \u65e0\u6cd5\u8fed\u4ee3\u5230\u5148\u524d\u7684\u8282\u70b9\uff01"},

-

-  { ER_NODESETDTM_CANNOT_INDEX,

-       "\u6b64 NodeSetDTM \u65e0\u6cd5\u6267\u884c\u7d22\u5f15\u6216\u8ba1\u6570\u529f\u80fd\uff01"},

-

-  { ER_NODESET_CANNOT_INDEX,

-       "\u6b64 NodeSet \u65e0\u6cd5\u6267\u884c\u7d22\u5f15\u6216\u8ba1\u6570\u529f\u80fd\uff01"},

-

-  { ER_CANNOT_CALL_SETSHOULDCACHENODE,

-       "\u8c03\u7528 nextNode \u540e\u4e0d\u80fd\u8c03\u7528 setShouldCacheNode\uff01"},

-

-  { ER_ONLY_ALLOWS,

-       "{0} \u4ec5\u5141\u8bb8 {1} \u4e2a\u81ea\u53d8\u91cf"},

-

-  { ER_UNKNOWN_STEP,

-       "\u7a0b\u5e8f\u5458\u5728 getNextStepPos \u4e2d\u7684\u65ad\u8a00\uff1a\u672a\u77e5\u7684 stepType\uff1a{0}"},

-

-  //Note to translators:  A relative location path is a form of XPath expression.

-  // The message indicates that such an expression was expected following the

-  // characters '/' or '//', but was not found.

-  { ER_EXPECTED_REL_LOC_PATH,

-      "\u5728\u201c/\u201d\u6216\u201c//\u201d\u6807\u8bb0\u540e\u5e94\u8be5\u51fa\u73b0\u76f8\u5bf9\u4f4d\u7f6e\u8def\u5f84\u3002"},

-

-  // Note to translators:  A location path is a form of XPath expression.

-  // The message indicates that syntactically such an expression was expected,but

-  // the characters specified by the substitution text were encountered instead.

-  { ER_EXPECTED_LOC_PATH,

-       "\u5e94\u8be5\u51fa\u73b0\u4f4d\u7f6e\u8def\u5f84\uff0c\u4f46\u9047\u5230\u4ee5\u4e0b\u6807\u8bb0\u003a{0}"},

-

-  // Note to translators:  A location path is a form of XPath expression.

-  // The message indicates that syntactically such a subexpression was expected,

-  // but no more characters were found in the expression.

-  { ER_EXPECTED_LOC_PATH_AT_END_EXPR,

-       "\u5e94\u8be5\u51fa\u73b0\u4f4d\u7f6e\u8def\u5f84\uff0c\u4f46\u53d1\u73b0\u7684\u5374\u662f XPath \u8868\u8fbe\u5f0f\u7684\u7ed3\u5c3e\u3002"},

-

-  // Note to translators:  A location step is part of an XPath expression.

-  // The message indicates that syntactically such an expression was expected

-  // following the specified characters.

-  { ER_EXPECTED_LOC_STEP,

-       "\u201c/\u201d\u6216\u201c//\u201d\u6807\u8bb0\u540e\u5e94\u8be5\u51fa\u73b0\u4f4d\u7f6e\u6b65\u9aa4\u3002"},

-

-  // Note to translators:  A node test is part of an XPath expression that is

-  // used to test for particular kinds of nodes.  In this case, a node test that

-  // consists of an NCName followed by a colon and an asterisk or that consists

-  // of a QName was expected, but was not found.

-  { ER_EXPECTED_NODE_TEST,

-       "\u5e94\u8be5\u51fa\u73b0\u4e0e NCName:* \u6216 QName \u5339\u914d\u7684\u8282\u70b9\u6d4b\u8bd5\u3002"},

-

-  // Note to translators:  A step pattern is part of an XPath expression.

-  // The message indicates that syntactically such an expression was expected,

-  // but the specified character was found in the expression instead.

-  { ER_EXPECTED_STEP_PATTERN,

-       "\u5e94\u8be5\u51fa\u73b0\u6b65\u9aa4\u6a21\u5f0f\uff0c\u4f46\u9047\u5230\u4e86\u201c/\u201d\u3002"},

-

-  // Note to translators: A relative path pattern is part of an XPath expression.

-  // The message indicates that syntactically such an expression was expected,

-  // but was not found.

-  { ER_EXPECTED_REL_PATH_PATTERN,

-       "\u5e94\u8be5\u51fa\u73b0\u76f8\u5bf9\u8def\u5f84\u6a21\u5f0f\u3002"},

-

-  // Note to translators:  The substitution text is the name of a data type.  The

-  // message indicates that a value of a particular type could not be converted

-  // to a value of type boolean.

-  { ER_CANT_CONVERT_TO_BOOLEAN,

-       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u5e03\u5c14\u578b\u3002"},

-

-  // Note to translators: Do not translate ANY_UNORDERED_NODE_TYPE and

-  // FIRST_ORDERED_NODE_TYPE.

-  { ER_CANT_CONVERT_TO_SINGLENODE,

-       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u5355\u4e00\u8282\u70b9\u3002getSingleNodeValue \u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b ANY_UNORDERED_NODE_TYPE \u548c FIRST_ORDERED_NODE_TYPE\u3002"},

-

-  // Note to translators: Do not translate UNORDERED_NODE_SNAPSHOT_TYPE and

-  // ORDERED_NODE_SNAPSHOT_TYPE.

-  { ER_CANT_GET_SNAPSHOT_LENGTH,

-       "\u4e0d\u80fd\u5bf9 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u8c03\u7528 getSnapshotLength \u65b9\u6cd5\uff0c\u56e0\u4e3a\u8be5\u8868\u8fbe\u5f0f\u7684 XPathResult \u7684 XPathResultType \u4e3a {1}\u3002\u6b64\u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b UNORDERED_NODE_SNAPSHOT_TYPE \u548c ORDERED_NODE_SNAPSHOT_TYPE\u3002"},

-

-  { ER_NON_ITERATOR_TYPE,

-       "\u4e0d\u80fd\u5bf9 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u8c03\u7528 iterateNext \u65b9\u6cd5\uff0c\u56e0\u4e3a\u8be5\u8868\u8fbe\u5f0f\u7684 XPathResult \u7684 XPathResultType \u4e3a {1}\u3002\u6b64\u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b UNORDERED_NODE_ITERATOR_TYPE \u548c ORDERED_NODE_ITERATOR_TYPE\u3002"},

-

-  // Note to translators: This message indicates that the document being operated

-  // upon changed, so the iterator object that was being used to traverse the

-  // document has now become invalid.

-  { ER_DOC_MUTATED,

-       "\u8fd4\u56de\u7ed3\u679c\u540e\u6587\u6863\u53d1\u751f\u53d8\u5316\u3002\u8fed\u4ee3\u5668\u65e0\u6548\u3002"},

-

-  { ER_INVALID_XPATH_TYPE,

-       "\u65e0\u6548\u7684 XPath \u7c7b\u578b\u81ea\u53d8\u91cf\uff1a{0}"},

-

-  { ER_EMPTY_XPATH_RESULT,

-       "\u7a7a\u7684 XPath \u7ed3\u679c\u5bf9\u8c61"},

-

-  { ER_INCOMPATIBLE_TYPES,

-       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u5f3a\u5236\u8f6c\u6362\u4e3a\u6307\u5b9a\u7684 XPathResultType {2}\u3002"},

-

-  { ER_NULL_RESOLVER,

-       "\u65e0\u6cd5\u4f7f\u7528\u7a7a\u7684\u524d\u7f00\u89e3\u6790\u5668\u89e3\u6790\u524d\u7f00\u3002"},

-

-  // Note to translators:  The substitution text is the name of a data type.  The

-  // message indicates that a value of a particular type could not be converted

-  // to a value of type string.

-  { ER_CANT_CONVERT_TO_STRING,

-       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\u3002"},

-

-  // Note to translators: Do not translate snapshotItem,

-  // UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE.

-  { ER_NON_SNAPSHOT_TYPE,

-       "\u4e0d\u80fd\u5bf9 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u8c03\u7528\u65b9\u6cd5 snapshotItem\uff0c\u56e0\u4e3a\u8be5\u8868\u8fbe\u5f0f\u7684 XPathResult \u7684 XPathResultType \u4e3a {1}\u3002\u6b64\u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b UNORDERED_NODE_SNAPSHOT_TYPE \u548c ORDERED_NODE_SNAPSHOT_TYPE\u3002"},

-

-  // Note to translators:  XPathEvaluator is a Java interface name.  An

-  // XPathEvaluator is created with respect to a particular XML document, and in

-  // this case the expression represented by this object was being evaluated with

-  // respect to a context node from a different document.

-  { ER_WRONG_DOCUMENT,

-       "\u4e0a\u4e0b\u6587\u8282\u70b9\u4e0d\u5c5e\u4e8e\u7ed1\u5b9a\u5230\u6b64 XPathEvaluator \u7684\u6587\u6863\u3002"},

-

-  // Note to translators:  The XPath expression cannot be evaluated with respect

-  // to this type of node.

-  { ER_WRONG_NODETYPE,

-       "\u4e0d\u652f\u6301\u4e0a\u4e0b\u6587\u8282\u70b9\u7c7b\u578b\u3002"},

-

-  { ER_XPATH_ERROR,

-       "XPath \u4e2d\u51fa\u73b0\u672a\u77e5\u9519\u8bef"},

-

-        { ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER,

-                "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u6570\u5b57\u3002"},

-

-  //BEGIN:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation

-

-  /** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED                       */

-

-  { ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,

-       "\u6269\u5c55\u51fd\u6570\uff1a\u5f53 XMLConstants.FEATURE_SECURE_PROCESSING \u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u65e0\u6cd5\u8c03\u7528\u201c{0}\u201d\u3002"},

-

-  /** Field ER_RESOLVE_VARIABLE_RETURNS_NULL                       */

-

-  { ER_RESOLVE_VARIABLE_RETURNS_NULL,

-       "\u53d8\u91cf {0} \u7684 resolveVariable \u6b63\u5728\u8fd4\u56de\u7a7a\u503c"},

-

-  /** Field ER_UNSUPPORTED_RETURN_TYPE                       */

-

-  { ER_UNSUPPORTED_RETURN_TYPE,

-       "\u4e0d\u53d7\u652f\u6301\u7684\u8fd4\u56de\u7c7b\u578b\uff1a{0}"},

-

-  /** Field ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL                       */

-

-  { ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL,

-       "\u6e90\u548c\uff0f\u6216\u8fd4\u56de\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a"},

-

-  /** Field ER_ARG_CANNOT_BE_NULL                       */

-

-  { ER_ARG_CANNOT_BE_NULL,

-       "{0} \u81ea\u53d8\u91cf\u4e0d\u80fd\u4e3a\u7a7a"},

-

-  /** Field ER_OBJECT_MODEL_NULL                       */

-

-  { ER_OBJECT_MODEL_NULL,

-       "{0}#isObjectModelSupported( String objectModel ) \u4e0d\u80fd\u88ab\u8c03\u7528\uff08\u5982\u679c objectModel == null\uff09"},

-

-  /** Field ER_OBJECT_MODEL_EMPTY                       */

-

-  { ER_OBJECT_MODEL_EMPTY,

-       "{0}#isObjectModelSupported( String objectModel ) \u4e0d\u80fd\u88ab\u8c03\u7528\uff08\u5982\u679c objectModel == \"\"\uff09"},

-

-  /** Field ER_OBJECT_MODEL_EMPTY                       */

-

-  { ER_FEATURE_NAME_NULL,

-       "\u6b63\u5728\u5c1d\u8bd5\u8bbe\u7f6e\u540d\u79f0\u4e3a\u7a7a\u7684\u7279\u5f81\uff1a{0}#setFeature( null, {1})"},

-

-  /** Field ER_FEATURE_UNKNOWN                       */

-

-  { ER_FEATURE_UNKNOWN,

-       "\u6b63\u5728\u5c1d\u8bd5\u8bbe\u7f6e\u672a\u77e5\u7279\u5f81\u201c{0}\u201d\uff1a{1}#setFeature({0},{2})"},

-

-  /** Field ER_GETTING_NULL_FEATURE                       */

-

-  { ER_GETTING_NULL_FEATURE,

-       "\u6b63\u5728\u5c1d\u8bd5\u83b7\u53d6\u540d\u79f0\u4e3a\u7a7a\u7684\u7279\u5f81\uff1a{0}#getFeature(null)"},

-

-  /** Field ER_GETTING_NULL_FEATURE                       */

-

-  { ER_GETTING_UNKNOWN_FEATURE,

-       "\u6b63\u5728\u5c1d\u8bd5\u83b7\u53d6\u672a\u77e5\u7279\u5f81\u201c{0}\u201d\uff1a{1}#getFeature({0})"},

-

-  /** Field ER_NULL_XPATH_FUNCTION_RESOLVER                       */

-

-  { ER_NULL_XPATH_FUNCTION_RESOLVER,

-       "\u6b63\u5728\u8bd5\u56fe\u8bbe\u7f6e\u7a7a\u7684 XPathFunctionResolver\uff1a{0}#setXPathFunctionResolver(null)"},

-

-  /** Field ER_NULL_XPATH_VARIABLE_RESOLVER                       */

-

-  { ER_NULL_XPATH_VARIABLE_RESOLVER,

-       "\u6b63\u5728\u8bd5\u56fe\u8bbe\u7f6e\u7a7a\u7684 XPathVariableResolver\uff1a{0}#setXPathVariableResolver(null)"},

-

-  //END:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation

-

-  // Warnings...

-

-  { WG_LOCALE_NAME_NOT_HANDLED,

-      "\u5728\u672a\u5904\u7406\u8fc7\u7684 format-number \u51fd\u6570\u4e2d\u51fa\u73b0\u8bed\u8a00\u73af\u5883\u540d\uff01"},

-

-  { WG_PROPERTY_NOT_SUPPORTED,

-      "\u4e0d\u652f\u6301 XSL \u5c5e\u6027\uff1a{0}"},

-

-  { WG_DONT_DO_ANYTHING_WITH_NS,

-      "\u5f53\u524d\u4e0d\u8981\u5728\u5c5e\u6027 {1} \u4e2d\u5bf9\u540d\u79f0\u7a7a\u95f4 {0} \u8fdb\u884c\u4efb\u4f55\u5904\u7406"},

-

-  { WG_SECURITY_EXCEPTION,

-      "\u5728\u8bd5\u56fe\u8bbf\u95ee XSL \u7cfb\u7edf\u5c5e\u6027 {0} \u65f6\u53d1\u751f SecurityException"},

-

-  { WG_QUO_NO_LONGER_DEFINED,

-      "XPath \u4e2d\u4e0d\u518d\u5b9a\u4e49\u65e7\u8bed\u6cd5\uff1aquo(...)\u3002"},

-

-  { WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST,

-      "XPath \u9700\u8981\u4e00\u4e2a\u6d3e\u751f\u7684\u5bf9\u8c61\u4ee5\u5b9e\u73b0 nodeTest\uff01"},

-

-  { WG_FUNCTION_TOKEN_NOT_FOUND,

-      "\u627e\u4e0d\u5230\u51fd\u6570\u6807\u8bb0\u3002"},

-

-  { WG_COULDNOT_FIND_FUNCTION,

-      "\u627e\u4e0d\u5230\u51fd\u6570\uff1a{0}"},

-

-  { WG_CANNOT_MAKE_URL_FROM,

-      "\u65e0\u6cd5\u4ece {0} \u751f\u6210 URL"},

-

-  { WG_EXPAND_ENTITIES_NOT_SUPPORTED,

-      "DTM \u89e3\u6790\u5668\u4e0d\u652f\u6301 -E \u9009\u9879"},

-

-  { WG_ILLEGAL_VARIABLE_REFERENCE,

-      "VariableReference \u8d4b\u7ed9\u4e86\u4e0a\u4e0b\u6587\u5916\u7684\u53d8\u91cf\u6216\u6ca1\u6709\u5b9a\u4e49\u7684\u53d8\u91cf\uff01\u540d\u79f0 = {0}"},

-

-  { WG_UNSUPPORTED_ENCODING,

-     "\u4e0d\u53d7\u652f\u6301\u7684\u7f16\u7801\uff1a{0}"},

-

-

-

-  // Other miscellaneous text used inside the code...

-  { "ui_language", "zh"},

-  { "help_language", "zh"},

-  { "language", "zh"},

-  { "BAD_CODE", "createMessage \u7684\u53c2\u6570\u8d85\u51fa\u8303\u56f4"},

-  { "FORMAT_FAILED", "\u5728 messageFormat \u8c03\u7528\u8fc7\u7a0b\u4e2d\u629b\u51fa\u4e86\u5f02\u5e38"},

-  { "version", ">>>>>>> Xalan \u7248\u672c"},

-  { "version2", "<<<<<<<"},

-  { "yes", "\u662f"},

-  { "line", "\u884c\u53f7"},

-  { "column", "\u5217\u53f7"},

-  { "xsldone", "XSLProcessor\uff1a\u5b8c\u6210"},

-  { "xpath_option", "xpath \u9009\u9879\uff1a"},

-  { "optionIN", "[-in inputXMLURL]"},

-  { "optionSelect", "[-select xpath \u8868\u8fbe\u5f0f]"},

-  { "optionMatch", "[-match \u5339\u914d\u6a21\u5f0f\uff08\u7528\u4e8e\u5339\u914d\u8bca\u65ad\uff09]"},

-  { "optionAnyExpr", "\u6216\u8005\u4ec5\u4e00\u4e2a xpath \u8868\u8fbe\u5f0f\u5c31\u5c06\u5b8c\u6210\u4e00\u4e2a\u8bca\u65ad\u8f6c\u50a8"},

-  { "noParsermsg1", "XSL \u5904\u7406\u4e0d\u6210\u529f\u3002"},

-  { "noParsermsg2", "** \u627e\u4e0d\u5230\u89e3\u6790\u5668 **"},

-  { "noParsermsg3", "\u8bf7\u68c0\u67e5\u60a8\u7684\u7c7b\u8def\u5f84\u3002"},

-  { "noParsermsg4", "\u5982\u679c\u6ca1\u6709 IBM \u7684 XML Parser for Java\uff0c\u60a8\u53ef\u4ee5\u4ece\u4ee5\u4e0b\u4f4d\u7f6e\u4e0b\u8f7d\u5b83\uff1a"},

-  { "noParsermsg5", "IBM \u7684 AlphaWorks\uff1ahttp://www.alphaworks.ibm.com/formula/xml"},

-  { "gtone", ">1" },

-  { "zero", "0" },

-  { "one", "1" },

-  { "two" , "2" },

-  { "three", "3" }

-

-  };

-  }

-

-

-  // ================= INFRASTRUCTURE ======================

-

-  /** Field BAD_CODE          */

-  public static final String BAD_CODE = "BAD_CODE";

-

-  /** Field FORMAT_FAILED          */

-  public static final String FORMAT_FAILED = "FORMAT_FAILED";

-

-  /** Field ERROR_RESOURCES          */

-  public static final String ERROR_RESOURCES =

-    "org.apache.xpath.res.XPATHErrorResources";

-

-  /** Field ERROR_STRING          */

-  public static final String ERROR_STRING = "#\u9519\u8bef";

-

-  /** Field ERROR_HEADER          */

-  public static final String ERROR_HEADER = "\u9519\u8bef\uff1a";

-

-  /** Field WARNING_HEADER          */

-  public static final String WARNING_HEADER = "\u8b66\u544a\uff1a";

-

-  /** Field XSL_HEADER          */

-  public static final String XSL_HEADER = "XSL";

-

-  /** Field XML_HEADER          */

-  public static final String XML_HEADER = "XML";

-

-  /** Field QUERY_HEADER          */

-  public static final String QUERY_HEADER = "PATTERN";

-

-

-  /**

-   * Return a named ResourceBundle for a particular locale.  This method mimics the behavior

-   * of ResourceBundle.getBundle().

-   *

-   * @param className Name of local-specific subclass.

-   * @return the ResourceBundle

-   * @throws MissingResourceException

-   */

-  public static final XPATHErrorResources loadResourceBundle(String className)

-          throws MissingResourceException

-  {

-

-    Locale locale = Locale.getDefault();

-    String suffix = getResourceSuffix(locale);

-

-    try

-    {

-

-      // first try with the given locale

-      return (XPATHErrorResources) ResourceBundle.getBundle(className

-              + suffix, locale);

-    }

-    catch (MissingResourceException e)

-    {

-      try  // try to fall back to en_US if we can't load

-      {

-

-        // Since we can't find the localized property file,

-        // fall back to en_US.

-        return (XPATHErrorResources) ResourceBundle.getBundle(className,

-                new Locale("zh", "CN"));

-      }

-      catch (MissingResourceException e2)

-      {

-

-        // Now we are really in trouble.

-        // very bad, definitely very bad...not going to get very far

-        throw new MissingResourceException(

-          "Could not load any resource bundles.", className, "");

-      }

-    }

-  }

-

-  /**

-   * Return the resource file suffic for the indicated locale

-   * For most locales, this will be based the language code.  However

-   * for Chinese, we do distinguish between Taiwan and PRC

-   *

-   * @param locale the locale

-   * @return an String suffix which canbe appended to a resource name

-   */

-  private static final String getResourceSuffix(Locale locale)

-  {

-

-    String suffix = "_" + locale.getLanguage();

-    String country = locale.getCountry();

-

-    if (country.equals("TW"))

-      suffix += "_" + country;

-

-    return suffix;

-  }

-

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xpath.res;
+
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Set up error messages.
+ * We build a two dimensional array of message keys and
+ * message strings. In order to add a new message here,
+ * you need to first add a Static string constant for the
+ * Key and update the contents array with Key, Value pair
+  * Also you need to  update the count of messages(MAX_CODE)or
+ * the count of warnings(MAX_WARNING) [ Information purpose only]
+ * @xsl.usage advanced
+ */
+public class XPATHErrorResources_zh extends ListResourceBundle
+{
+
+/*
+ * General notes to translators:
+ *
+ * This file contains error and warning messages related to XPath Error
+ * Handling.
+ *
+ *  1) Xalan (or more properly, Xalan-interpretive) and XSLTC are names of
+ *     components.
+ *     XSLT is an acronym for "XML Stylesheet Language: Transformations".
+ *     XSLTC is an acronym for XSLT Compiler.
+ *
+ *  2) A stylesheet is a description of how to transform an input XML document
+ *     into a resultant XML document (or HTML document or text).  The
+ *     stylesheet itself is described in the form of an XML document.
+ *
+ *  3) A template is a component of a stylesheet that is used to match a
+ *     particular portion of an input document and specifies the form of the
+ *     corresponding portion of the output document.
+ *
+ *  4) An element is a mark-up tag in an XML document; an attribute is a
+ *     modifier on the tag.  For example, in <elem attr='val' attr2='val2'>
+ *     "elem" is an element name, "attr" and "attr2" are attribute names with
+ *     the values "val" and "val2", respectively.
+ *
+ *  5) A namespace declaration is a special attribute that is used to associate
+ *     a prefix with a URI (the namespace).  The meanings of element names and
+ *     attribute names that use that prefix are defined with respect to that
+ *     namespace.
+ *
+ *  6) "Translet" is an invented term that describes the class file that
+ *     results from compiling an XML stylesheet into a Java class.
+ *
+ *  7) XPath is a specification that describes a notation for identifying
+ *     nodes in a tree-structured representation of an XML document.  An
+ *     instance of that notation is referred to as an XPath expression.
+ *
+ *  8) The context node is the node in the document with respect to which an
+ *     XPath expression is being evaluated.
+ *
+ *  9) An iterator is an object that traverses nodes in the tree, one at a time.
+ *
+ *  10) NCName is an XML term used to describe a name that does not contain a
+ *     colon (a "no-colon name").
+ *
+ *  11) QName is an XML term meaning "qualified name".
+ */
+
+  /*
+   * static variables
+   */
+  public static final String ERROR0000 = "ERROR0000";
+  public static final String ER_CURRENT_NOT_ALLOWED_IN_MATCH =
+         "ER_CURRENT_NOT_ALLOWED_IN_MATCH";
+  public static final String ER_CURRENT_TAKES_NO_ARGS =
+         "ER_CURRENT_TAKES_NO_ARGS";
+  public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED";
+  public static final String ER_CONTEXT_HAS_NO_OWNERDOC =
+         "ER_CONTEXT_HAS_NO_OWNERDOC";
+  public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS =
+         "ER_LOCALNAME_HAS_TOO_MANY_ARGS";
+  public static final String ER_NAMESPACEURI_HAS_TOO_MANY_ARGS =
+         "ER_NAMESPACEURI_HAS_TOO_MANY_ARGS";
+  public static final String ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS =
+         "ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS";
+  public static final String ER_NUMBER_HAS_TOO_MANY_ARGS =
+         "ER_NUMBER_HAS_TOO_MANY_ARGS";
+  public static final String ER_NAME_HAS_TOO_MANY_ARGS =
+         "ER_NAME_HAS_TOO_MANY_ARGS";
+  public static final String ER_STRING_HAS_TOO_MANY_ARGS =
+         "ER_STRING_HAS_TOO_MANY_ARGS";
+  public static final String ER_STRINGLENGTH_HAS_TOO_MANY_ARGS =
+         "ER_STRINGLENGTH_HAS_TOO_MANY_ARGS";
+  public static final String ER_TRANSLATE_TAKES_3_ARGS =
+         "ER_TRANSLATE_TAKES_3_ARGS";
+  public static final String ER_UNPARSEDENTITYURI_TAKES_1_ARG =
+         "ER_UNPARSEDENTITYURI_TAKES_1_ARG";
+  public static final String ER_NAMESPACEAXIS_NOT_IMPLEMENTED =
+         "ER_NAMESPACEAXIS_NOT_IMPLEMENTED";
+  public static final String ER_UNKNOWN_AXIS = "ER_UNKNOWN_AXIS";
+  public static final String ER_UNKNOWN_MATCH_OPERATION =
+         "ER_UNKNOWN_MATCH_OPERATION";
+  public static final String ER_INCORRECT_ARG_LENGTH ="ER_INCORRECT_ARG_LENGTH";
+  public static final String ER_CANT_CONVERT_TO_NUMBER =
+         "ER_CANT_CONVERT_TO_NUMBER";
+  public static final String ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER =
+           "ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER";
+  public static final String ER_CANT_CONVERT_TO_NODELIST =
+         "ER_CANT_CONVERT_TO_NODELIST";
+  public static final String ER_CANT_CONVERT_TO_MUTABLENODELIST =
+         "ER_CANT_CONVERT_TO_MUTABLENODELIST";
+  public static final String ER_CANT_CONVERT_TO_TYPE ="ER_CANT_CONVERT_TO_TYPE";
+  public static final String ER_EXPECTED_MATCH_PATTERN =
+         "ER_EXPECTED_MATCH_PATTERN";
+  public static final String ER_COULDNOT_GET_VAR_NAMED =
+         "ER_COULDNOT_GET_VAR_NAMED";
+  public static final String ER_UNKNOWN_OPCODE = "ER_UNKNOWN_OPCODE";
+  public static final String ER_EXTRA_ILLEGAL_TOKENS ="ER_EXTRA_ILLEGAL_TOKENS";
+  public static final String ER_EXPECTED_DOUBLE_QUOTE =
+         "ER_EXPECTED_DOUBLE_QUOTE";
+  public static final String ER_EXPECTED_SINGLE_QUOTE =
+         "ER_EXPECTED_SINGLE_QUOTE";
+  public static final String ER_EMPTY_EXPRESSION = "ER_EMPTY_EXPRESSION";
+  public static final String ER_EXPECTED_BUT_FOUND = "ER_EXPECTED_BUT_FOUND";
+  public static final String ER_INCORRECT_PROGRAMMER_ASSERTION =
+         "ER_INCORRECT_PROGRAMMER_ASSERTION";
+  public static final String ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL =
+         "ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL";
+  public static final String ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG =
+         "ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG";
+  public static final String ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG =
+         "ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG";
+  public static final String ER_PREDICATE_ILLEGAL_SYNTAX =
+         "ER_PREDICATE_ILLEGAL_SYNTAX";
+  public static final String ER_ILLEGAL_AXIS_NAME = "ER_ILLEGAL_AXIS_NAME";
+  public static final String ER_UNKNOWN_NODETYPE = "ER_UNKNOWN_NODETYPE";
+  public static final String ER_PATTERN_LITERAL_NEEDS_BE_QUOTED =
+         "ER_PATTERN_LITERAL_NEEDS_BE_QUOTED";
+  public static final String ER_COULDNOT_BE_FORMATTED_TO_NUMBER =
+         "ER_COULDNOT_BE_FORMATTED_TO_NUMBER";
+  public static final String ER_COULDNOT_CREATE_XMLPROCESSORLIAISON =
+         "ER_COULDNOT_CREATE_XMLPROCESSORLIAISON";
+  public static final String ER_DIDNOT_FIND_XPATH_SELECT_EXP =
+         "ER_DIDNOT_FIND_XPATH_SELECT_EXP";
+  public static final String ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH =
+         "ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH";
+  public static final String ER_ERROR_OCCURED = "ER_ERROR_OCCURED";
+  public static final String ER_ILLEGAL_VARIABLE_REFERENCE =
+         "ER_ILLEGAL_VARIABLE_REFERENCE";
+  public static final String ER_AXES_NOT_ALLOWED = "ER_AXES_NOT_ALLOWED";
+  public static final String ER_KEY_HAS_TOO_MANY_ARGS =
+         "ER_KEY_HAS_TOO_MANY_ARGS";
+  public static final String ER_COUNT_TAKES_1_ARG = "ER_COUNT_TAKES_1_ARG";
+  public static final String ER_COULDNOT_FIND_FUNCTION =
+         "ER_COULDNOT_FIND_FUNCTION";
+  public static final String ER_UNSUPPORTED_ENCODING ="ER_UNSUPPORTED_ENCODING";
+  public static final String ER_PROBLEM_IN_DTM_NEXTSIBLING =
+         "ER_PROBLEM_IN_DTM_NEXTSIBLING";
+  public static final String ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL =
+         "ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL";
+  public static final String ER_SETDOMFACTORY_NOT_SUPPORTED =
+         "ER_SETDOMFACTORY_NOT_SUPPORTED";
+  public static final String ER_PREFIX_MUST_RESOLVE = "ER_PREFIX_MUST_RESOLVE";
+  public static final String ER_PARSE_NOT_SUPPORTED = "ER_PARSE_NOT_SUPPORTED";
+  public static final String ER_SAX_API_NOT_HANDLED = "ER_SAX_API_NOT_HANDLED";
+public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED =
+         "ER_IGNORABLE_WHITESPACE_NOT_HANDLED";
+  public static final String ER_DTM_CANNOT_HANDLE_NODES =
+         "ER_DTM_CANNOT_HANDLE_NODES";
+  public static final String ER_XERCES_CANNOT_HANDLE_NODES =
+         "ER_XERCES_CANNOT_HANDLE_NODES";
+  public static final String ER_XERCES_PARSE_ERROR_DETAILS =
+         "ER_XERCES_PARSE_ERROR_DETAILS";
+  public static final String ER_XERCES_PARSE_ERROR = "ER_XERCES_PARSE_ERROR";
+  public static final String ER_INVALID_UTF16_SURROGATE =
+         "ER_INVALID_UTF16_SURROGATE";
+  public static final String ER_OIERROR = "ER_OIERROR";
+  public static final String ER_CANNOT_CREATE_URL = "ER_CANNOT_CREATE_URL";
+  public static final String ER_XPATH_READOBJECT = "ER_XPATH_READOBJECT";
+ public static final String ER_FUNCTION_TOKEN_NOT_FOUND =
+         "ER_FUNCTION_TOKEN_NOT_FOUND";
+  public static final String ER_CANNOT_DEAL_XPATH_TYPE =
+         "ER_CANNOT_DEAL_XPATH_TYPE";
+  public static final String ER_NODESET_NOT_MUTABLE = "ER_NODESET_NOT_MUTABLE";
+  public static final String ER_NODESETDTM_NOT_MUTABLE =
+         "ER_NODESETDTM_NOT_MUTABLE";
+   /**  Variable not resolvable:   */
+  public static final String ER_VAR_NOT_RESOLVABLE = "ER_VAR_NOT_RESOLVABLE";
+   /** Null error handler  */
+ public static final String ER_NULL_ERROR_HANDLER = "ER_NULL_ERROR_HANDLER";
+   /**  Programmer's assertion: unknown opcode  */
+  public static final String ER_PROG_ASSERT_UNKNOWN_OPCODE =
+         "ER_PROG_ASSERT_UNKNOWN_OPCODE";
+   /**  0 or 1   */
+  public static final String ER_ZERO_OR_ONE = "ER_ZERO_OR_ONE";
+   /**  rtf() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+   /**  asNodeIterator() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER = "ER_ASNODEITERATOR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+   /**  fsb() not supported for XStringForChars   */
+  public static final String ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS =
+         "ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS";
+   /**  Could not find variable with the name of   */
+ public static final String ER_COULD_NOT_FIND_VAR = "ER_COULD_NOT_FIND_VAR";
+   /**  XStringForChars can not take a string for an argument   */
+ public static final String ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING =
+         "ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING";
+   /**  The FastStringBuffer argument can not be null   */
+ public static final String ER_FASTSTRINGBUFFER_CANNOT_BE_NULL =
+         "ER_FASTSTRINGBUFFER_CANNOT_BE_NULL";
+   /**  2 or 3   */
+  public static final String ER_TWO_OR_THREE = "ER_TWO_OR_THREE";
+   /** Variable accessed before it is bound! */
+  public static final String ER_VARIABLE_ACCESSED_BEFORE_BIND =
+         "ER_VARIABLE_ACCESSED_BEFORE_BIND";
+   /** XStringForFSB can not take a string for an argument! */
+ public static final String ER_FSB_CANNOT_TAKE_STRING =
+         "ER_FSB_CANNOT_TAKE_STRING";
+   /** Error! Setting the root of a walker to null! */
+  public static final String ER_SETTING_WALKER_ROOT_TO_NULL =
+         "ER_SETTING_WALKER_ROOT_TO_NULL";
+   /** This NodeSetDTM can not iterate to a previous node! */
+  public static final String ER_NODESETDTM_CANNOT_ITERATE =
+         "ER_NODESETDTM_CANNOT_ITERATE";
+  /** This NodeSet can not iterate to a previous node! */
+ public static final String ER_NODESET_CANNOT_ITERATE =
+         "ER_NODESET_CANNOT_ITERATE";
+  /** This NodeSetDTM can not do indexing or counting functions! */
+  public static final String ER_NODESETDTM_CANNOT_INDEX =
+         "ER_NODESETDTM_CANNOT_INDEX";
+  /** This NodeSet can not do indexing or counting functions! */
+  public static final String ER_NODESET_CANNOT_INDEX =
+         "ER_NODESET_CANNOT_INDEX";
+  /** Can not call setShouldCacheNodes after nextNode has been called! */
+  public static final String ER_CANNOT_CALL_SETSHOULDCACHENODE =
+         "ER_CANNOT_CALL_SETSHOULDCACHENODE";
+  /** {0} only allows {1} arguments */
+ public static final String ER_ONLY_ALLOWS = "ER_ONLY_ALLOWS";
+  /** Programmer's assertion in getNextStepPos: unknown stepType: {0} */
+  public static final String ER_UNKNOWN_STEP = "ER_UNKNOWN_STEP";
+  /** Problem with RelativeLocationPath */
+  public static final String ER_EXPECTED_REL_LOC_PATH =
+         "ER_EXPECTED_REL_LOC_PATH";
+  /** Problem with LocationPath */
+  public static final String ER_EXPECTED_LOC_PATH = "ER_EXPECTED_LOC_PATH";
+  public static final String ER_EXPECTED_LOC_PATH_AT_END_EXPR =
+                                        "ER_EXPECTED_LOC_PATH_AT_END_EXPR";
+  /** Problem with Step */
+  public static final String ER_EXPECTED_LOC_STEP = "ER_EXPECTED_LOC_STEP";
+  /** Problem with NodeTest */
+  public static final String ER_EXPECTED_NODE_TEST = "ER_EXPECTED_NODE_TEST";
+  /** Expected step pattern */
+  public static final String ER_EXPECTED_STEP_PATTERN =
+        "ER_EXPECTED_STEP_PATTERN";
+  /** Expected relative path pattern */
+  public static final String ER_EXPECTED_REL_PATH_PATTERN =
+         "ER_EXPECTED_REL_PATH_PATTERN";
+  /** ER_CANT_CONVERT_XPATHRESULTTYPE_TO_BOOLEAN          */
+  public static final String ER_CANT_CONVERT_TO_BOOLEAN =
+         "ER_CANT_CONVERT_TO_BOOLEAN";
+  /** Field ER_CANT_CONVERT_TO_SINGLENODE       */
+  public static final String ER_CANT_CONVERT_TO_SINGLENODE =
+         "ER_CANT_CONVERT_TO_SINGLENODE";
+  /** Field ER_CANT_GET_SNAPSHOT_LENGTH         */
+  public static final String ER_CANT_GET_SNAPSHOT_LENGTH =
+         "ER_CANT_GET_SNAPSHOT_LENGTH";
+  /** Field ER_NON_ITERATOR_TYPE                */
+  public static final String ER_NON_ITERATOR_TYPE = "ER_NON_ITERATOR_TYPE";
+  /** Field ER_DOC_MUTATED                      */
+  public static final String ER_DOC_MUTATED = "ER_DOC_MUTATED";
+  public static final String ER_INVALID_XPATH_TYPE = "ER_INVALID_XPATH_TYPE";
+  public static final String ER_EMPTY_XPATH_RESULT = "ER_EMPTY_XPATH_RESULT";
+  public static final String ER_INCOMPATIBLE_TYPES = "ER_INCOMPATIBLE_TYPES";
+  public static final String ER_NULL_RESOLVER = "ER_NULL_RESOLVER";
+  public static final String ER_CANT_CONVERT_TO_STRING =
+         "ER_CANT_CONVERT_TO_STRING";
+  public static final String ER_NON_SNAPSHOT_TYPE = "ER_NON_SNAPSHOT_TYPE";
+  public static final String ER_WRONG_DOCUMENT = "ER_WRONG_DOCUMENT";
+  /* Note to translators:  The XPath expression cannot be evaluated with respect
+   * to this type of node.
+   */
+  /** Field ER_WRONG_NODETYPE                    */
+  public static final String ER_WRONG_NODETYPE = "ER_WRONG_NODETYPE";
+  public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
+
+  //BEGIN: Keys needed for exception messages of  JAXP 1.3 XPath API implementation
+  public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
+  public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
+  public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
+  public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
+  public static final String ER_ARG_CANNOT_BE_NULL = "ER_ARG_CANNOT_BE_NULL";
+
+  public static final String ER_OBJECT_MODEL_NULL = "ER_OBJECT_MODEL_NULL";
+  public static final String ER_OBJECT_MODEL_EMPTY = "ER_OBJECT_MODEL_EMPTY";
+  public static final String ER_FEATURE_NAME_NULL = "ER_FEATURE_NAME_NULL";
+  public static final String ER_FEATURE_UNKNOWN = "ER_FEATURE_UNKNOWN";
+  public static final String ER_GETTING_NULL_FEATURE = "ER_GETTING_NULL_FEATURE";
+  public static final String ER_GETTING_UNKNOWN_FEATURE = "ER_GETTING_UNKNOWN_FEATURE";
+  public static final String ER_NULL_XPATH_FUNCTION_RESOLVER = "ER_NULL_XPATH_FUNCTION_RESOLVER";
+  public static final String ER_NULL_XPATH_VARIABLE_RESOLVER = "ER_NULL_XPATH_VARIABLE_RESOLVER";
+  //END: Keys needed for exception messages of  JAXP 1.3 XPath API implementation
+
+  public static final String WG_LOCALE_NAME_NOT_HANDLED =
+         "WG_LOCALE_NAME_NOT_HANDLED";
+  public static final String WG_PROPERTY_NOT_SUPPORTED =
+         "WG_PROPERTY_NOT_SUPPORTED";
+  public static final String WG_DONT_DO_ANYTHING_WITH_NS =
+         "WG_DONT_DO_ANYTHING_WITH_NS";
+  public static final String WG_SECURITY_EXCEPTION = "WG_SECURITY_EXCEPTION";
+  public static final String WG_QUO_NO_LONGER_DEFINED =
+         "WG_QUO_NO_LONGER_DEFINED";
+  public static final String WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST =
+         "WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST";
+  public static final String WG_FUNCTION_TOKEN_NOT_FOUND =
+         "WG_FUNCTION_TOKEN_NOT_FOUND";
+  public static final String WG_COULDNOT_FIND_FUNCTION =
+         "WG_COULDNOT_FIND_FUNCTION";
+  public static final String WG_CANNOT_MAKE_URL_FROM ="WG_CANNOT_MAKE_URL_FROM";
+  public static final String WG_EXPAND_ENTITIES_NOT_SUPPORTED =
+         "WG_EXPAND_ENTITIES_NOT_SUPPORTED";
+  public static final String WG_ILLEGAL_VARIABLE_REFERENCE =
+         "WG_ILLEGAL_VARIABLE_REFERENCE";
+  public static final String WG_UNSUPPORTED_ENCODING ="WG_UNSUPPORTED_ENCODING";
+
+  /**  detach() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+  /**  num() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+  /**  xstr() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+  /**  str() not supported by XRTreeFragSelectWrapper   */
+  public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
+         "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
+
+  // Error messages...
+
+
+  /**
+   * Get the association list.
+   *
+   * @return The association list.
+   */
+  public Object[][] getContents()
+  {
+    return new Object[][]{
+
+  { "ERROR0000" , "{0}" },
+
+  { ER_CURRENT_NOT_ALLOWED_IN_MATCH, "\u5339\u914d\u6a21\u5f0f\u4e2d\u4e0d\u5141\u8bb8\u6709 current() \u51fd\u6570\uff01" },
+
+  { ER_CURRENT_TAKES_NO_ARGS, "current() \u51fd\u6570\u4e0d\u63a5\u53d7\u53c2\u6570\uff01" },
+
+  { ER_DOCUMENT_REPLACED,
+      "document() \u51fd\u6570\u5b9e\u73b0\u5df2\u88ab org.apache.xalan.xslt.FuncDocument \u66ff\u6362\uff01"},
+
+  { ER_CONTEXT_HAS_NO_OWNERDOC,
+      "\u4e0a\u4e0b\u6587\u6ca1\u6709\u6240\u6709\u8005\u6587\u6863\uff01"},
+
+  { ER_LOCALNAME_HAS_TOO_MANY_ARGS,
+      "local-name() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_NAMESPACEURI_HAS_TOO_MANY_ARGS,
+      "namespace-uri() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_NORMALIZESPACE_HAS_TOO_MANY_ARGS,
+      "normalize-space() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_NUMBER_HAS_TOO_MANY_ARGS,
+      "number() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_NAME_HAS_TOO_MANY_ARGS,
+     "name() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_STRING_HAS_TOO_MANY_ARGS,
+      "string() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_STRINGLENGTH_HAS_TOO_MANY_ARGS,
+      "string-length() \u7684\u53c2\u6570\u592a\u591a\u3002"},
+
+  { ER_TRANSLATE_TAKES_3_ARGS,
+      "translate() \u51fd\u6570\u6709\u4e09\u4e2a\u53c2\u6570\uff01"},
+
+  { ER_UNPARSEDENTITYURI_TAKES_1_ARG,
+      "unparsed-entity-uri \u51fd\u6570\u5e94\u6709\u4e00\u4e2a\u53c2\u6570\uff01"},
+
+  { ER_NAMESPACEAXIS_NOT_IMPLEMENTED,
+      "\u540d\u79f0\u7a7a\u95f4\u8f74\u5c1a\u672a\u5b9e\u73b0\uff01"},
+
+  { ER_UNKNOWN_AXIS,
+     "\u672a\u77e5\u8f74\uff1a{0}"},
+
+  { ER_UNKNOWN_MATCH_OPERATION,
+     "\u672a\u77e5\u7684\u5339\u914d\u64cd\u4f5c\uff01"},
+
+  { ER_INCORRECT_ARG_LENGTH,
+      "processing-instruction() \u8282\u70b9\u6d4b\u8bd5\u7684\u53c2\u6570\u957f\u5ea6\u4e0d\u6b63\u786e\uff01"},
+
+  { ER_CANT_CONVERT_TO_NUMBER,
+      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210\u6570\u5b57"},
+
+  { ER_CANT_CONVERT_TO_NODELIST,
+      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210 NodeList\uff01"},
+
+  { ER_CANT_CONVERT_TO_MUTABLENODELIST,
+      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210 NodeSetDTM\uff01"},
+
+  { ER_CANT_CONVERT_TO_TYPE,
+      "\u65e0\u6cd5\u5c06 {0} \u8f6c\u6362\u6210 type#{1}"},
+
+  { ER_EXPECTED_MATCH_PATTERN,
+      "getMatchScore \u4e2d\u51fa\u73b0\u671f\u671b\u7684\u5339\u914d\u6a21\u5f0f\uff01"},
+
+  { ER_COULDNOT_GET_VAR_NAMED,
+      "\u65e0\u6cd5\u83b7\u53d6\u540d\u4e3a {0} \u7684\u53d8\u91cf"},
+
+  { ER_UNKNOWN_OPCODE,
+     "\u9519\u8bef\uff01\u672a\u77e5\u64cd\u4f5c\u7801\uff1a{0}"},
+
+  { ER_EXTRA_ILLEGAL_TOKENS,
+     "\u989d\u5916\u7684\u975e\u6cd5\u6807\u8bb0\uff1a{0}"},
+
+
+  { ER_EXPECTED_DOUBLE_QUOTE,
+      "\u9519\u8bef\u5f15\u7528\u7684\u6587\u5b57... \u5e94\u8be5\u4e3a\u53cc\u5f15\u53f7\uff01"},
+
+  { ER_EXPECTED_SINGLE_QUOTE,
+      "\u9519\u8bef\u5f15\u7528\u7684\u6587\u5b57... \u5e94\u8be5\u4e3a\u5355\u5f15\u53f7\uff01"},
+
+  { ER_EMPTY_EXPRESSION,
+     "\u7a7a\u8868\u8fbe\u5f0f\uff01"},
+
+  { ER_EXPECTED_BUT_FOUND,
+     "\u5e94\u8be5\u4e3a {0}\uff0c\u4f46\u53d1\u73b0\u7684\u662f\uff1a{1}"},
+
+  { ER_INCORRECT_PROGRAMMER_ASSERTION,
+      "\u7a0b\u5e8f\u5458\u7684\u65ad\u8a00\u4e0d\u6b63\u786e\uff01\uff0d {0}"},
+
+  { ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL,
+      "19990709 XPath \u8349\u7a3f\u4e2d\uff0cboolean(...) \u53c2\u6570\u4e0d\u518d\u53ef\u9009\u3002"},
+
+  { ER_FOUND_COMMA_BUT_NO_PRECEDING_ARG,
+      "\u5df2\u627e\u5230\u201c,\u201d\uff0c\u4f46\u524d\u9762\u6ca1\u6709\u81ea\u53d8\u91cf\uff01"},
+
+  { ER_FOUND_COMMA_BUT_NO_FOLLOWING_ARG,
+      "\u5df2\u627e\u5230\u201c,\u201d\uff0c\u4f46\u540e\u9762\u6ca1\u6709\u8ddf\u81ea\u53d8\u91cf\uff01"},
+
+  { ER_PREDICATE_ILLEGAL_SYNTAX,
+      "\u201c..[predicate]\u201d\u6216\u201c.[predicate]\u201d\u662f\u975e\u6cd5\u7684\u8bed\u6cd5\u3002\u8bf7\u6539\u4e3a\u4f7f\u7528\u201cself::node()[predicate]\u201d\u3002"},
+
+  { ER_ILLEGAL_AXIS_NAME,
+     "\u975e\u6cd5\u7684\u8f74\u540d\u79f0\uff1a{0}"},
+
+  { ER_UNKNOWN_NODETYPE,
+     "\u672a\u77e5\u8282\u70b9\u7c7b\u578b\uff1a{0}"},
+
+  { ER_PATTERN_LITERAL_NEEDS_BE_QUOTED,
+      "\u9700\u8981\u5f15\u7528\u6a21\u5f0f\u6587\u5b57\uff08{0}\uff09\uff01"},
+
+  { ER_COULDNOT_BE_FORMATTED_TO_NUMBER,
+      "{0} \u65e0\u6cd5\u683c\u5f0f\u5316\u4e3a\u6570\u5b57\uff01"},
+
+  { ER_COULDNOT_CREATE_XMLPROCESSORLIAISON,
+      "\u65e0\u6cd5\u521b\u5efa XML TransformerFactory \u8054\u7cfb\uff1a{0}"},
+
+  { ER_DIDNOT_FIND_XPATH_SELECT_EXP,
+      "\u9519\u8bef\uff01\u627e\u4e0d\u5230 xpath \u9009\u62e9\u8868\u8fbe\u5f0f\uff08-select\uff09\u3002"},
+
+  { ER_COULDNOT_FIND_ENDOP_AFTER_OPLOCATIONPATH,
+      "\u9519\u8bef\uff01\u5728 OP_LOCATIONPATH \u4e4b\u540e\u627e\u4e0d\u5230 ENDOP"},
+
+  { ER_ERROR_OCCURED,
+     "\u51fa\u73b0\u9519\u8bef\uff01"},
+
+  { ER_ILLEGAL_VARIABLE_REFERENCE,
+      "VariableReference \u8d4b\u7ed9\u4e86\u4e0a\u4e0b\u6587\u5916\u7684\u53d8\u91cf\u6216\u6ca1\u6709\u5b9a\u4e49\u7684\u53d8\u91cf\uff01\u540d\u79f0 = {0}"},
+
+  { ER_AXES_NOT_ALLOWED,
+      "\u5728\u5339\u914d\u6a21\u5f0f\u4e2d\u53ea\u5141\u8bb8\u51fa\u73b0 child:: \u548c attribute:: \u8f74\uff01\u8fdd\u53cd\u7684\u8f74 = {0}"},
+
+  { ER_KEY_HAS_TOO_MANY_ARGS,
+      "key() \u7684\u53c2\u6570\u4e2a\u6570\u4e0d\u6b63\u786e\u3002"},
+
+  { ER_COUNT_TAKES_1_ARG,
+      "count \u51fd\u6570\u5e94\u8be5\u6709\u4e00\u4e2a\u53c2\u6570\uff01"},
+
+  { ER_COULDNOT_FIND_FUNCTION,
+     "\u627e\u4e0d\u5230\u51fd\u6570\uff1a{0}"},
+
+  { ER_UNSUPPORTED_ENCODING,
+     "\u4e0d\u53d7\u652f\u6301\u7684\u7f16\u7801\uff1a{0}"},
+
+  { ER_PROBLEM_IN_DTM_NEXTSIBLING,
+      "getNextSibling \u8fc7\u7a0b\u4e2d\uff0cDTM \u4e2d\u51fa\u73b0\u95ee\u9898...\u6b63\u5728\u5c1d\u8bd5\u6062\u590d"},
+
+  { ER_CANNOT_WRITE_TO_EMPTYNODELISTIMPL,
+      "\u7a0b\u5e8f\u5458\u9519\u8bef\uff1a\u4e0d\u53ef\u5411 EmptyNodeList \u5199\u5165\u5185\u5bb9\u3002"},
+
+  { ER_SETDOMFACTORY_NOT_SUPPORTED,
+      "XPathContext \u4e0d\u652f\u6301 setDOMFactory\uff01"},
+
+  { ER_PREFIX_MUST_RESOLVE,
+      "\u524d\u7f00\u5fc5\u987b\u89e3\u6790\u4e3a\u540d\u79f0\u7a7a\u95f4\uff1a{0}"},
+
+  { ER_PARSE_NOT_SUPPORTED,
+      "XPathContext \u4e2d\u4e0d\u652f\u6301 parse (InputSource source)\uff01\u65e0\u6cd5\u6253\u5f00 {0}"},
+
+  { ER_SAX_API_NOT_HANDLED,
+      "DTM \u4e0d\u5904\u7406 SAX API characters(char ch[]...\uff01"},
+
+  { ER_IGNORABLE_WHITESPACE_NOT_HANDLED,
+      "DTM \u4e0d\u5904\u7406 ignorableWhitespace(char ch[]...\uff01"},
+
+  { ER_DTM_CANNOT_HANDLE_NODES,
+      "DTMLiaison \u4e0d\u80fd\u5904\u7406\u7c7b\u578b {0} \u7684\u8282\u70b9"},
+
+  { ER_XERCES_CANNOT_HANDLE_NODES,
+      "DOM2Helper \u4e0d\u80fd\u5904\u7406\u7c7b\u578b {0} \u7684\u8282\u70b9"},
+
+  { ER_XERCES_PARSE_ERROR_DETAILS,
+      "DOM2Helper.parse \u9519\u8bef\uff1aSystemID \uff0d \u7b2c {0} \u884c \uff0d {1}"},
+
+  { ER_XERCES_PARSE_ERROR,
+     "DOM2Helper.parse \u9519\u8bef"},
+
+  { ER_INVALID_UTF16_SURROGATE,
+      "\u68c0\u6d4b\u5230\u65e0\u6548\u7684 UTF-16 \u8d85\u5927\u5b57\u7b26\u96c6\uff1a{0}\uff1f"},
+
+  { ER_OIERROR,
+     "IO \u9519\u8bef"},
+
+  { ER_CANNOT_CREATE_URL,
+     "\u65e0\u6cd5\u4e3a {0} \u521b\u5efa URL"},
+
+  { ER_XPATH_READOBJECT,
+     "\u5728 XPath.readObject \u4e2d\uff1a{0}"},
+
+  { ER_FUNCTION_TOKEN_NOT_FOUND,
+      "\u627e\u4e0d\u5230\u51fd\u6570\u6807\u8bb0\u3002"},
+
+  { ER_CANNOT_DEAL_XPATH_TYPE,
+       "\u65e0\u6cd5\u5904\u7406 XPath \u7c7b\u578b\uff1a{0}"},
+
+  { ER_NODESET_NOT_MUTABLE,
+       "\u6b64 NodeSet \u662f\u4e0d\u6613\u53d8\u7684"},
+
+  { ER_NODESETDTM_NOT_MUTABLE,
+       "\u6b64 NodeSetDTM \u662f\u4e0d\u6613\u53d8\u7684"},
+
+  { ER_VAR_NOT_RESOLVABLE,
+        "\u53d8\u91cf\u4e0d\u53ef\u89e3\u6790\uff1a{0}"},
+
+  { ER_NULL_ERROR_HANDLER,
+        "\u9519\u8bef\u5904\u7406\u7a0b\u5e8f\u4e3a\u7a7a"},
+
+  { ER_PROG_ASSERT_UNKNOWN_OPCODE,
+       "\u7a0b\u5e8f\u5458\u65ad\u8a00\uff1a\u672a\u77e5\u64cd\u4f5c\u7801\uff1a{0}"},
+
+  { ER_ZERO_OR_ONE,
+       "0 \u6216 1"},
+
+  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+       "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 rtf()"},
+
+  { ER_RTF_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+       "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 asNodeIterator()"},
+
+   { ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 detach()"},
+
+   { ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 num()"},
+
+   { ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 xstr()"},
+
+   { ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER,
+                "XRTreeFragSelectWrapper \u4e0d\u652f\u6301 str()"},
+
+  { ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS,
+       "XStringForChars \u4e0d\u652f\u6301 fsb()"},
+
+  { ER_COULD_NOT_FIND_VAR,
+      "\u627e\u4e0d\u5230\u540d\u4e3a {0} \u7684\u53d8\u91cf"},
+
+  { ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING,
+      "XStringForChars \u65e0\u6cd5\u5c06\u5b57\u7b26\u4e32\u4f5c\u4e3a\u81ea\u53d8\u91cf"},
+
+  { ER_FASTSTRINGBUFFER_CANNOT_BE_NULL,
+      "FastStringBuffer \u81ea\u53d8\u91cf\u4e0d\u80fd\u4e3a\u7a7a"},
+
+  { ER_TWO_OR_THREE,
+       "2 \u6216 3"},
+
+  { ER_VARIABLE_ACCESSED_BEFORE_BIND,
+       "\u5728\u7ed1\u5b9a\u524d\u5df2\u8bbf\u95ee\u53d8\u91cf\uff01"},
+
+  { ER_FSB_CANNOT_TAKE_STRING,
+       "XStringForFSB \u65e0\u6cd5\u5c06\u5b57\u7b26\u4e32\u4f5c\u4e3a\u81ea\u53d8\u91cf\uff01"},
+
+  { ER_SETTING_WALKER_ROOT_TO_NULL,
+       "\n \uff01\uff01\uff01\uff01\u9519\u8bef\uff01\u6b63\u5728\u5c06\u6b65\u884c\u7a0b\u5e8f\u7684\u6839\u8bbe\u7f6e\u4e3a\u7a7a\uff01\uff01\uff01"},
+
+  { ER_NODESETDTM_CANNOT_ITERATE,
+       "\u6b64 NodeSetDTM \u65e0\u6cd5\u8fed\u4ee3\u5230\u5148\u524d\u7684\u8282\u70b9\uff01"},
+
+  { ER_NODESET_CANNOT_ITERATE,
+       "\u6b64 NodeSet \u65e0\u6cd5\u8fed\u4ee3\u5230\u5148\u524d\u7684\u8282\u70b9\uff01"},
+
+  { ER_NODESETDTM_CANNOT_INDEX,
+       "\u6b64 NodeSetDTM \u65e0\u6cd5\u6267\u884c\u7d22\u5f15\u6216\u8ba1\u6570\u529f\u80fd\uff01"},
+
+  { ER_NODESET_CANNOT_INDEX,
+       "\u6b64 NodeSet \u65e0\u6cd5\u6267\u884c\u7d22\u5f15\u6216\u8ba1\u6570\u529f\u80fd\uff01"},
+
+  { ER_CANNOT_CALL_SETSHOULDCACHENODE,
+       "\u8c03\u7528 nextNode \u540e\u4e0d\u80fd\u8c03\u7528 setShouldCacheNode\uff01"},
+
+  { ER_ONLY_ALLOWS,
+       "{0} \u4ec5\u5141\u8bb8 {1} \u4e2a\u81ea\u53d8\u91cf"},
+
+  { ER_UNKNOWN_STEP,
+       "\u7a0b\u5e8f\u5458\u5728 getNextStepPos \u4e2d\u7684\u65ad\u8a00\uff1a\u672a\u77e5\u7684 stepType\uff1a{0}"},
+
+  //Note to translators:  A relative location path is a form of XPath expression.
+  // The message indicates that such an expression was expected following the
+  // characters '/' or '//', but was not found.
+  { ER_EXPECTED_REL_LOC_PATH,
+      "\u5728\u201c/\u201d\u6216\u201c//\u201d\u6807\u8bb0\u540e\u5e94\u8be5\u51fa\u73b0\u76f8\u5bf9\u4f4d\u7f6e\u8def\u5f84\u3002"},
+
+  // Note to translators:  A location path is a form of XPath expression.
+  // The message indicates that syntactically such an expression was expected,but
+  // the characters specified by the substitution text were encountered instead.
+  { ER_EXPECTED_LOC_PATH,
+       "\u5e94\u8be5\u51fa\u73b0\u4f4d\u7f6e\u8def\u5f84\uff0c\u4f46\u9047\u5230\u4ee5\u4e0b\u6807\u8bb0\u003a{0}"},
+
+  // Note to translators:  A location path is a form of XPath expression.
+  // The message indicates that syntactically such a subexpression was expected,
+  // but no more characters were found in the expression.
+  { ER_EXPECTED_LOC_PATH_AT_END_EXPR,
+       "\u5e94\u8be5\u51fa\u73b0\u4f4d\u7f6e\u8def\u5f84\uff0c\u4f46\u53d1\u73b0\u7684\u5374\u662f XPath \u8868\u8fbe\u5f0f\u7684\u7ed3\u5c3e\u3002"},
+
+  // Note to translators:  A location step is part of an XPath expression.
+  // The message indicates that syntactically such an expression was expected
+  // following the specified characters.
+  { ER_EXPECTED_LOC_STEP,
+       "\u201c/\u201d\u6216\u201c//\u201d\u6807\u8bb0\u540e\u5e94\u8be5\u51fa\u73b0\u4f4d\u7f6e\u6b65\u9aa4\u3002"},
+
+  // Note to translators:  A node test is part of an XPath expression that is
+  // used to test for particular kinds of nodes.  In this case, a node test that
+  // consists of an NCName followed by a colon and an asterisk or that consists
+  // of a QName was expected, but was not found.
+  { ER_EXPECTED_NODE_TEST,
+       "\u5e94\u8be5\u51fa\u73b0\u4e0e NCName:* \u6216 QName \u5339\u914d\u7684\u8282\u70b9\u6d4b\u8bd5\u3002"},
+
+  // Note to translators:  A step pattern is part of an XPath expression.
+  // The message indicates that syntactically such an expression was expected,
+  // but the specified character was found in the expression instead.
+  { ER_EXPECTED_STEP_PATTERN,
+       "\u5e94\u8be5\u51fa\u73b0\u6b65\u9aa4\u6a21\u5f0f\uff0c\u4f46\u9047\u5230\u4e86\u201c/\u201d\u3002"},
+
+  // Note to translators: A relative path pattern is part of an XPath expression.
+  // The message indicates that syntactically such an expression was expected,
+  // but was not found.
+  { ER_EXPECTED_REL_PATH_PATTERN,
+       "\u5e94\u8be5\u51fa\u73b0\u76f8\u5bf9\u8def\u5f84\u6a21\u5f0f\u3002"},
+
+  // Note to translators:  The substitution text is the name of a data type.  The
+  // message indicates that a value of a particular type could not be converted
+  // to a value of type boolean.
+  { ER_CANT_CONVERT_TO_BOOLEAN,
+       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u5e03\u5c14\u578b\u3002"},
+
+  // Note to translators: Do not translate ANY_UNORDERED_NODE_TYPE and
+  // FIRST_ORDERED_NODE_TYPE.
+  { ER_CANT_CONVERT_TO_SINGLENODE,
+       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u5355\u4e00\u8282\u70b9\u3002getSingleNodeValue \u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b ANY_UNORDERED_NODE_TYPE \u548c FIRST_ORDERED_NODE_TYPE\u3002"},
+
+  // Note to translators: Do not translate UNORDERED_NODE_SNAPSHOT_TYPE and
+  // ORDERED_NODE_SNAPSHOT_TYPE.
+  { ER_CANT_GET_SNAPSHOT_LENGTH,
+       "\u4e0d\u80fd\u5bf9 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u8c03\u7528 getSnapshotLength \u65b9\u6cd5\uff0c\u56e0\u4e3a\u8be5\u8868\u8fbe\u5f0f\u7684 XPathResult \u7684 XPathResultType \u4e3a {1}\u3002\u6b64\u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b UNORDERED_NODE_SNAPSHOT_TYPE \u548c ORDERED_NODE_SNAPSHOT_TYPE\u3002"},
+
+  { ER_NON_ITERATOR_TYPE,
+       "\u4e0d\u80fd\u5bf9 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u8c03\u7528 iterateNext \u65b9\u6cd5\uff0c\u56e0\u4e3a\u8be5\u8868\u8fbe\u5f0f\u7684 XPathResult \u7684 XPathResultType \u4e3a {1}\u3002\u6b64\u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b UNORDERED_NODE_ITERATOR_TYPE \u548c ORDERED_NODE_ITERATOR_TYPE\u3002"},
+
+  // Note to translators: This message indicates that the document being operated
+  // upon changed, so the iterator object that was being used to traverse the
+  // document has now become invalid.
+  { ER_DOC_MUTATED,
+       "\u8fd4\u56de\u7ed3\u679c\u540e\u6587\u6863\u53d1\u751f\u53d8\u5316\u3002\u8fed\u4ee3\u5668\u65e0\u6548\u3002"},
+
+  { ER_INVALID_XPATH_TYPE,
+       "\u65e0\u6548\u7684 XPath \u7c7b\u578b\u81ea\u53d8\u91cf\uff1a{0}"},
+
+  { ER_EMPTY_XPATH_RESULT,
+       "\u7a7a\u7684 XPath \u7ed3\u679c\u5bf9\u8c61"},
+
+  { ER_INCOMPATIBLE_TYPES,
+       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u5f3a\u5236\u8f6c\u6362\u4e3a\u6307\u5b9a\u7684 XPathResultType {2}\u3002"},
+
+  { ER_NULL_RESOLVER,
+       "\u65e0\u6cd5\u4f7f\u7528\u7a7a\u7684\u524d\u7f00\u89e3\u6790\u5668\u89e3\u6790\u524d\u7f00\u3002"},
+
+  // Note to translators:  The substitution text is the name of a data type.  The
+  // message indicates that a value of a particular type could not be converted
+  // to a value of type string.
+  { ER_CANT_CONVERT_TO_STRING,
+       "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\u3002"},
+
+  // Note to translators: Do not translate snapshotItem,
+  // UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE.
+  { ER_NON_SNAPSHOT_TYPE,
+       "\u4e0d\u80fd\u5bf9 XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u8c03\u7528\u65b9\u6cd5 snapshotItem\uff0c\u56e0\u4e3a\u8be5\u8868\u8fbe\u5f0f\u7684 XPathResult \u7684 XPathResultType \u4e3a {1}\u3002\u6b64\u65b9\u6cd5\u4ec5\u9002\u7528\u4e8e\u7c7b\u578b UNORDERED_NODE_SNAPSHOT_TYPE \u548c ORDERED_NODE_SNAPSHOT_TYPE\u3002"},
+
+  // Note to translators:  XPathEvaluator is a Java interface name.  An
+  // XPathEvaluator is created with respect to a particular XML document, and in
+  // this case the expression represented by this object was being evaluated with
+  // respect to a context node from a different document.
+  { ER_WRONG_DOCUMENT,
+       "\u4e0a\u4e0b\u6587\u8282\u70b9\u4e0d\u5c5e\u4e8e\u7ed1\u5b9a\u5230\u6b64 XPathEvaluator \u7684\u6587\u6863\u3002"},
+
+  // Note to translators:  The XPath expression cannot be evaluated with respect
+  // to this type of node.
+  { ER_WRONG_NODETYPE,
+       "\u4e0d\u652f\u6301\u4e0a\u4e0b\u6587\u8282\u70b9\u7c7b\u578b\u3002"},
+
+  { ER_XPATH_ERROR,
+       "XPath \u4e2d\u51fa\u73b0\u672a\u77e5\u9519\u8bef"},
+
+        { ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER,
+                "XPath \u8868\u8fbe\u5f0f\u201c{0}\u201d\u7684 XPathResult \u5177\u6709 XPathResultType {1}\uff0c\u8be5\u7c7b\u578b\u4e0d\u80fd\u8f6c\u6362\u4e3a\u6570\u5b57\u3002"},
+
+  //BEGIN:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation
+
+  /** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED                       */
+
+  { ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
+       "\u6269\u5c55\u51fd\u6570\uff1a\u5f53 XMLConstants.FEATURE_SECURE_PROCESSING \u529f\u80fd\u8bbe\u7f6e\u4e3a true \u65f6\uff0c\u65e0\u6cd5\u8c03\u7528\u201c{0}\u201d\u3002"},
+
+  /** Field ER_RESOLVE_VARIABLE_RETURNS_NULL                       */
+
+  { ER_RESOLVE_VARIABLE_RETURNS_NULL,
+       "\u53d8\u91cf {0} \u7684 resolveVariable \u6b63\u5728\u8fd4\u56de\u7a7a\u503c"},
+
+  /** Field ER_UNSUPPORTED_RETURN_TYPE                       */
+
+  { ER_UNSUPPORTED_RETURN_TYPE,
+       "\u4e0d\u53d7\u652f\u6301\u7684\u8fd4\u56de\u7c7b\u578b\uff1a{0}"},
+
+  /** Field ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL                       */
+
+  { ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL,
+       "\u6e90\u548c\uff0f\u6216\u8fd4\u56de\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a"},
+
+  /** Field ER_ARG_CANNOT_BE_NULL                       */
+
+  { ER_ARG_CANNOT_BE_NULL,
+       "{0} \u81ea\u53d8\u91cf\u4e0d\u80fd\u4e3a\u7a7a"},
+
+  /** Field ER_OBJECT_MODEL_NULL                       */
+
+  { ER_OBJECT_MODEL_NULL,
+       "{0}#isObjectModelSupported( String objectModel ) \u4e0d\u80fd\u88ab\u8c03\u7528\uff08\u5982\u679c objectModel == null\uff09"},
+
+  /** Field ER_OBJECT_MODEL_EMPTY                       */
+
+  { ER_OBJECT_MODEL_EMPTY,
+       "{0}#isObjectModelSupported( String objectModel ) \u4e0d\u80fd\u88ab\u8c03\u7528\uff08\u5982\u679c objectModel == \"\"\uff09"},
+
+  /** Field ER_OBJECT_MODEL_EMPTY                       */
+
+  { ER_FEATURE_NAME_NULL,
+       "\u6b63\u5728\u5c1d\u8bd5\u8bbe\u7f6e\u540d\u79f0\u4e3a\u7a7a\u7684\u7279\u5f81\uff1a{0}#setFeature( null, {1})"},
+
+  /** Field ER_FEATURE_UNKNOWN                       */
+
+  { ER_FEATURE_UNKNOWN,
+       "\u6b63\u5728\u5c1d\u8bd5\u8bbe\u7f6e\u672a\u77e5\u7279\u5f81\u201c{0}\u201d\uff1a{1}#setFeature({0},{2})"},
+
+  /** Field ER_GETTING_NULL_FEATURE                       */
+
+  { ER_GETTING_NULL_FEATURE,
+       "\u6b63\u5728\u5c1d\u8bd5\u83b7\u53d6\u540d\u79f0\u4e3a\u7a7a\u7684\u7279\u5f81\uff1a{0}#getFeature(null)"},
+
+  /** Field ER_GETTING_NULL_FEATURE                       */
+
+  { ER_GETTING_UNKNOWN_FEATURE,
+       "\u6b63\u5728\u5c1d\u8bd5\u83b7\u53d6\u672a\u77e5\u7279\u5f81\u201c{0}\u201d\uff1a{1}#getFeature({0})"},
+
+  /** Field ER_NULL_XPATH_FUNCTION_RESOLVER                       */
+
+  { ER_NULL_XPATH_FUNCTION_RESOLVER,
+       "\u6b63\u5728\u8bd5\u56fe\u8bbe\u7f6e\u7a7a\u7684 XPathFunctionResolver\uff1a{0}#setXPathFunctionResolver(null)"},
+
+  /** Field ER_NULL_XPATH_VARIABLE_RESOLVER                       */
+
+  { ER_NULL_XPATH_VARIABLE_RESOLVER,
+       "\u6b63\u5728\u8bd5\u56fe\u8bbe\u7f6e\u7a7a\u7684 XPathVariableResolver\uff1a{0}#setXPathVariableResolver(null)"},
+
+  //END:  Definitions of error keys used  in exception messages of  JAXP 1.3 XPath API implementation
+
+  // Warnings...
+
+  { WG_LOCALE_NAME_NOT_HANDLED,
+      "\u5728\u672a\u5904\u7406\u8fc7\u7684 format-number \u51fd\u6570\u4e2d\u51fa\u73b0\u8bed\u8a00\u73af\u5883\u540d\uff01"},
+
+  { WG_PROPERTY_NOT_SUPPORTED,
+      "\u4e0d\u652f\u6301 XSL \u5c5e\u6027\uff1a{0}"},
+
+  { WG_DONT_DO_ANYTHING_WITH_NS,
+      "\u5f53\u524d\u4e0d\u8981\u5728\u5c5e\u6027 {1} \u4e2d\u5bf9\u540d\u79f0\u7a7a\u95f4 {0} \u8fdb\u884c\u4efb\u4f55\u5904\u7406"},
+
+  { WG_SECURITY_EXCEPTION,
+      "\u5728\u8bd5\u56fe\u8bbf\u95ee XSL \u7cfb\u7edf\u5c5e\u6027 {0} \u65f6\u53d1\u751f SecurityException"},
+
+  { WG_QUO_NO_LONGER_DEFINED,
+      "XPath \u4e2d\u4e0d\u518d\u5b9a\u4e49\u65e7\u8bed\u6cd5\uff1aquo(...)\u3002"},
+
+  { WG_NEED_DERIVED_OBJECT_TO_IMPLEMENT_NODETEST,
+      "XPath \u9700\u8981\u4e00\u4e2a\u6d3e\u751f\u7684\u5bf9\u8c61\u4ee5\u5b9e\u73b0 nodeTest\uff01"},
+
+  { WG_FUNCTION_TOKEN_NOT_FOUND,
+      "\u627e\u4e0d\u5230\u51fd\u6570\u6807\u8bb0\u3002"},
+
+  { WG_COULDNOT_FIND_FUNCTION,
+      "\u627e\u4e0d\u5230\u51fd\u6570\uff1a{0}"},
+
+  { WG_CANNOT_MAKE_URL_FROM,
+      "\u65e0\u6cd5\u4ece {0} \u751f\u6210 URL"},
+
+  { WG_EXPAND_ENTITIES_NOT_SUPPORTED,
+      "DTM \u89e3\u6790\u5668\u4e0d\u652f\u6301 -E \u9009\u9879"},
+
+  { WG_ILLEGAL_VARIABLE_REFERENCE,
+      "VariableReference \u8d4b\u7ed9\u4e86\u4e0a\u4e0b\u6587\u5916\u7684\u53d8\u91cf\u6216\u6ca1\u6709\u5b9a\u4e49\u7684\u53d8\u91cf\uff01\u540d\u79f0 = {0}"},
+
+  { WG_UNSUPPORTED_ENCODING,
+     "\u4e0d\u53d7\u652f\u6301\u7684\u7f16\u7801\uff1a{0}"},
+
+
+
+  // Other miscellaneous text used inside the code...
+  { "ui_language", "zh"},
+  { "help_language", "zh"},
+  { "language", "zh"},
+  { "BAD_CODE", "createMessage \u7684\u53c2\u6570\u8d85\u51fa\u8303\u56f4"},
+  { "FORMAT_FAILED", "\u5728 messageFormat \u8c03\u7528\u8fc7\u7a0b\u4e2d\u629b\u51fa\u4e86\u5f02\u5e38"},
+  { "version", ">>>>>>> Xalan \u7248\u672c"},
+  { "version2", "<<<<<<<"},
+  { "yes", "\u662f"},
+  { "line", "\u884c\u53f7"},
+  { "column", "\u5217\u53f7"},
+  { "xsldone", "XSLProcessor\uff1a\u5b8c\u6210"},
+  { "xpath_option", "xpath \u9009\u9879\uff1a"},
+  { "optionIN", "[-in inputXMLURL]"},
+  { "optionSelect", "[-select xpath \u8868\u8fbe\u5f0f]"},
+  { "optionMatch", "[-match \u5339\u914d\u6a21\u5f0f\uff08\u7528\u4e8e\u5339\u914d\u8bca\u65ad\uff09]"},
+  { "optionAnyExpr", "\u6216\u8005\u4ec5\u4e00\u4e2a xpath \u8868\u8fbe\u5f0f\u5c31\u5c06\u5b8c\u6210\u4e00\u4e2a\u8bca\u65ad\u8f6c\u50a8"},
+  { "noParsermsg1", "XSL \u5904\u7406\u4e0d\u6210\u529f\u3002"},
+  { "noParsermsg2", "** \u627e\u4e0d\u5230\u89e3\u6790\u5668 **"},
+  { "noParsermsg3", "\u8bf7\u68c0\u67e5\u60a8\u7684\u7c7b\u8def\u5f84\u3002"},
+  { "noParsermsg4", "\u5982\u679c\u6ca1\u6709 IBM \u7684 XML Parser for Java\uff0c\u60a8\u53ef\u4ee5\u4ece\u4ee5\u4e0b\u4f4d\u7f6e\u4e0b\u8f7d\u5b83\uff1a"},
+  { "noParsermsg5", "IBM \u7684 AlphaWorks\uff1ahttp://www.alphaworks.ibm.com/formula/xml"},
+  { "gtone", ">1" },
+  { "zero", "0" },
+  { "one", "1" },
+  { "two" , "2" },
+  { "three", "3" }
+
+  };
+  }
+
+
+  // ================= INFRASTRUCTURE ======================
+
+  /** Field BAD_CODE          */
+  public static final String BAD_CODE = "BAD_CODE";
+
+  /** Field FORMAT_FAILED          */
+  public static final String FORMAT_FAILED = "FORMAT_FAILED";
+
+  /** Field ERROR_RESOURCES          */
+  public static final String ERROR_RESOURCES =
+    "org.apache.xpath.res.XPATHErrorResources";
+
+  /** Field ERROR_STRING          */
+  public static final String ERROR_STRING = "#\u9519\u8bef";
+
+  /** Field ERROR_HEADER          */
+  public static final String ERROR_HEADER = "\u9519\u8bef\uff1a";
+
+  /** Field WARNING_HEADER          */
+  public static final String WARNING_HEADER = "\u8b66\u544a\uff1a";
+
+  /** Field XSL_HEADER          */
+  public static final String XSL_HEADER = "XSL";
+
+  /** Field XML_HEADER          */
+  public static final String XML_HEADER = "XML";
+
+  /** Field QUERY_HEADER          */
+  public static final String QUERY_HEADER = "PATTERN";
+
+
+  /**
+   * Return a named ResourceBundle for a particular locale.  This method mimics the behavior
+   * of ResourceBundle.getBundle().
+   *
+   * @param className Name of local-specific subclass.
+   * @return the ResourceBundle
+   * @throws MissingResourceException
+   */
+  public static final XPATHErrorResources loadResourceBundle(String className)
+          throws MissingResourceException
+  {
+
+    Locale locale = Locale.getDefault();
+    String suffix = getResourceSuffix(locale);
+
+    try
+    {
+
+      // first try with the given locale
+      return (XPATHErrorResources) ResourceBundle.getBundle(className
+              + suffix, locale);
+    }
+    catch (MissingResourceException e)
+    {
+      try  // try to fall back to en_US if we can't load
+      {
+
+        // Since we can't find the localized property file,
+        // fall back to en_US.
+        return (XPATHErrorResources) ResourceBundle.getBundle(className,
+                new Locale("zh", "CN"));
+      }
+      catch (MissingResourceException e2)
+      {
+
+        // Now we are really in trouble.
+        // very bad, definitely very bad...not going to get very far
+        throw new MissingResourceException(
+          "Could not load any resource bundles.", className, "");
+      }
+    }
+  }
+
+  /**
+   * Return the resource file suffic for the indicated locale
+   * For most locales, this will be based the language code.  However
+   * for Chinese, we do distinguish between Taiwan and PRC
+   *
+   * @param locale the locale
+   * @return an String suffix which canbe appended to a resource name
+   */
+  private static final String getResourceSuffix(Locale locale)
+  {
+
+    String suffix = "_" + locale.getLanguage();
+    String country = locale.getCountry();
+
+    if (country.equals("TW"))
+      suffix += "_" + country;
+
+    return suffix;
+  }
+
+}