# This file stores localized messages for the Xerces
# DOM 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  

# DOM Core

# exception codes
DOMSTRING_SIZE_ERR = The specified range of text does not fit into a DOMString. 
HIERARCHY_REQUEST_ERR  = An attempt was made to insert a node where it is not permitted. 
INDEX_SIZE_ERR = The index or size is negative, or greater than the allowed value.
INUSE_ATTRIBUTE_ERR = An attempt is made to add an attribute that is already in use elsewhere.
INVALID_ACCESS_ERR  = A parameter or an operation is not supported by the underlying object. 
INVALID_CHARACTER_ERR = An invalid or illegal XML character is specified. 
INVALID_MODIFICATION_ERR =  An attempt is made to modify the type of the underlying object. 
INVALID_STATE_ERR = An attempt is made to use an object that is not, or is no longer, usable. 
NAMESPACE_ERR = An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
NOT_FOUND_ERR = An attempt is made to reference a node in a context where it does not exist.
NOT_SUPPORTED_ERR = The implementation does not support the requested type of object or operation. 
NO_DATA_ALLOWED_ERR = Data is specified for a node which does not support data.
NO_MODIFICATION_ALLOWED_ERR = An attempt is made to modify an object where modifications are not allowed.
SYNTAX_ERR = An invalid or illegal string is specified. 
VALIDATION_ERR = A call to a method such as insertBefore or removeChild would make the Node invalid with respect to document grammar.
WRONG_DOCUMENT_ERR = A node is used in a different document than the one that created it.
TYPE_MISMATCH_ERR = The value type for this parameter name is incompatible with the expected value type. 
 
#error messages or exceptions
FEATURE_NOT_SUPPORTED = The parameter {0} is recognized but the requested value cannot be set.
FEATURE_NOT_FOUND = The parameter {0} is not recognized.
STRING_TOO_LONG   = The resulting string is too long to fit in a DOMString: ''{0}''.

#DOM Level 3 DOMError codes
wf-invalid-character =  The text {0} of the {1} node contains invalid XML characters.
wf-invalid-character-in-node-name = The {0} node named {1} contains invalid XML characters.
cdata-sections-splitted =  CDATA sections containing the CDATA section termination marker '']]>''
doctype-not-allowed = DOCTYPE declaration is not allowed.
unsupported-encoding = The encoding {0} is not supported.

#Error codes used in DOM Normalizer
InvalidXMLCharInDOM = An invalid XML character (Unicode: 0x{0}) was found in the DOM during normalization.
UndeclaredEntRefInAttrValue = The attribute \"{0}\" value \"{1}\" referenced an entity that was not declared.
NullLocalElementName = A null local name was encountered during namespace normalization of element {0}.
NullLocalAttrName = A null local name was encountered during namespace normalization of attribute {0}.

#Error codes used in DOMParser
InvalidDocumentClassName = The class name of the document factory \"{0}\" used to construct the DOM tree is not of type org.w3c.dom.Document.
MissingDocumentClassName = The class name of the document factory \"{0}\" used to construct the DOM tree could not be found.
CannotCreateDocumentClass = The class named \"{0}\" could not be constructed as a org.w3c.dom.Document.

# Error codes used by JAXP DocumentBuilder
jaxp-order-not-supported = Property ''{0}'' must be set before setting property ''{1}''.
jaxp-null-input-source = The source specified cannot be null.

#Ranges
BAD_BOUNDARYPOINTS_ERR = The boundary-points of a Range do not meet specific requirements.
INVALID_NODE_TYPE_ERR = The container of a boundary-point of a Range is being set to either a node of an invalid type or a node with an ancestor of an invalid type.


#Events
UNSPECIFIED_EVENT_TYPE_ERR = The Event's type was not specified by initializing the event before the method was called. 


jaxp-schema-support=Both the setSchema method and the schemaLanguage property is used

jaxp_feature_not_supported=Feature "{0}" is not supported.
