# This file stores localized messages for the Xerces
# SAX implementation.
#
# The messages are arranged in key and value tuples in a ListResourceBundle.
#


BadMessageKey = The error message corresponding to the message key can not be found.
FormatFailed = An internal error occurred while formatting the following message:\n

# JAXP messages
schema-not-supported = The specified schema language is not supported.
jaxp-order-not-supported = Property ''{0}'' must be set before setting property ''{1}''. 
schema-already-specified = Property ''{0}'' cannot be set when a non-null Schema object has already been specified.

# feature messages
feature-not-supported = Feature ''{0}'' is not supported.
feature-not-recognized = Feature ''{0}'' is not recognized.
true-not-supported = True state for feature ''{0}'' is not supported.
false-not-supported = False state for feature ''{0}'' is not supported.
feature-read-only = Feature ''{0}'' is read only.
jaxp-secureprocessing-feature = FEATURE_SECURE_PROCESSING: Cannot set the feature to false when security manager is present.

# property messages
property-not-supported = Property ''{0}'' is not supported.
property-not-recognized = Property ''{0}'' is not recognized.
property-read-only = Property ''{0}'' is read only.
property-not-parsing-supported = Property ''{0}'' is not supported while parsing.
dom-node-read-not-supported = Cannot read DOM node property. No DOM tree exists.
incompatible-class = The value specified for property ''{0}'' cannot be casted to {1}.

start-document-not-called=Property "{0}" should be called after startDocument event is thrown
nullparameter=the name parameter for "{0}" is null
errorHandlerNotSet=Warning\: validation was turned on but an org.xml.sax.ErrorHandler was not set, which is probably not what is desired.  Parser will use a default ErrorHandler to print the first {0}  errors.  Please call the 'setErrorHandler' method to fix this.
errorHandlerDebugMsg=Error\: URI \= "{0}", Line \= "{1}", \: {2} 
