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

BadMessageKey = No se ha encontrado el mensaje de error correspondiente a la clave de mensaje.
FormatFailed = Se ha producido un error interno al formatear el siguiente mensaje:\n  

# DOM Core

# exception codes
DOMSTRING_SIZE_ERR = El rango especificado de texto no cabe en una cadena DOM. 
HIERARCHY_REQUEST_ERR  = Se ha realizado un intento de insertar un nodo donde no est\u00E1 permitido. 
INDEX_SIZE_ERR = El \u00EDndice o tama\u00F1o es negativo o superior al valor permitido.
INUSE_ATTRIBUTE_ERR = Se ha realizado un intento de agregar un atributo que ya se est\u00E1 utilizando en otro lugar.
INVALID_ACCESS_ERR  = El objeto subyacente no soporta un par\u00E1metro o una operaci\u00F3n. 
INVALID_CHARACTER_ERR = Se ha especificado un car\u00E1cter XML no v\u00E1lido o no permitido. 
INVALID_MODIFICATION_ERR =  Se ha realizado un intento de modificar el tipo de objeto subyacente. 
INVALID_STATE_ERR = Se ha realizado un intento de utilizar un objeto que ya no se puede utilizar. 
NAMESPACE_ERR = Se ha realizado un intento de crear o cambiar un objeto de un modo incorrecto con respecto a los espacios de nombres.
NOT_FOUND_ERR = Se ha realizado un intento de hacer referencia a un nodo en un contexto en el que no existe.
NOT_SUPPORTED_ERR = La implantaci\u00F3n no soporta el tipo solicitado de objeto u operaci\u00F3n. 
NO_DATA_ALLOWED_ERR = Se han especificado datos para un nodo que no soporta datos.
NO_MODIFICATION_ALLOWED_ERR = Se ha realizado un intento de modificar un objeto en el que no est\u00E1n permitidas las modificaciones.
SYNTAX_ERR = Se ha especificado una cadena no v\u00E1lida o no permitida. 
VALIDATION_ERR = Una llamada a un m\u00E9todo como insertBefore o removeChild invalidar\u00EDa el nodo con respecto a la gram\u00E1tica del documento.
WRONG_DOCUMENT_ERR = Se ha utilizado un nodo en un documento distinto al que lo cre\u00F3.
TYPE_MISMATCH_ERR = El tipo de valor para este nombre de par\u00E1metro no es compatible con el tipo de valor esperado. 
 
#error messages or exceptions
FEATURE_NOT_SUPPORTED = Se reconoce el par\u00E1metro {0} pero no se puede definir el valor solicitado.
FEATURE_NOT_FOUND = No se reconoce el par\u00E1metro {0}.
STRING_TOO_LONG   = La cadena resultante es demasiado larga para que quepa en una cadena DOM: ''{0}''.

#DOM Level 3 DOMError codes
wf-invalid-character =  El texto {0} del nodo {1} contiene caracteres XML no v\u00E1lidos.
wf-invalid-character-in-node-name = El nodo {0} con el nombre {1} contiene caracteres XML no v\u00E1lidos.
cdata-sections-splitted =  Las secciones CDATA contienen el marcador de terminaci\u00F3n de secci\u00F3n CDATA '']]>''
doctype-not-allowed = La declaraci\u00F3n DOCTYPE no est\u00E1 permitida.
unsupported-encoding = La codificaci\u00F3n {0} no est\u00E1 soportada.

#Error codes used in DOM Normalizer
InvalidXMLCharInDOM = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en DOM durante la normalizaci\u00F3n.
UndeclaredEntRefInAttrValue = El atributo "{0}" con valor "{1}" ha hecho referencia a una entidad que no se declar\u00F3.
NullLocalElementName = Se ha encontrado un nombre local nulo durante la normalizaci\u00F3n del espacio de nombres del elemento {0}.
NullLocalAttrName = Se ha encontrado un nombre local nulo durante la normalizaci\u00F3n del espacio de nombres del atributo {0}.

#Error codes used in DOMParser
InvalidDocumentClassName = El nombre de clase de la f\u00E1brica de documentos "{0}" utilizado para construir el \u00E1rbol DOM no es del tipo org.w3c.dom.Document.
MissingDocumentClassName = No se ha encontrado el nombre de clase de la f\u00E1brica de documentos "{0}" utilizado para construir el \u00E1rbol DOM.
CannotCreateDocumentClass = No se ha podido construir la clase con el nombre "{0}" como un org.w3c.dom.Document.

# Error codes used by JAXP DocumentBuilder
jaxp-order-not-supported = La propiedad ''{0}'' debe definirse antes de definir la propiedad ''{1}''.
jaxp-null-input-source = El origen especificado no puede ser nulo.

#Ranges
BAD_BOUNDARYPOINTS_ERR = Los puntos de l\u00EDmite de un rango no cumplen los requisitos espec\u00EDficos.
INVALID_NODE_TYPE_ERR = El contenedor de un punto de l\u00EDmite de un rango se est\u00E1 definiendo en un nodo de un tipo no v\u00E1lido o un nodo con un ascendiente de un tipo no v\u00E1lido.


#Events
UNSPECIFIED_EVENT_TYPE_ERR = No se ha especificado el tipo de evento mediante la inicializaci\u00F3n del evento antes de que se llame al m\u00E9todo. 


jaxp-schema-support=Se utiliza tanto el m\u00E9todo setSchema como la propiedad schemaLanguage

jaxp_feature_not_supported=La funci\u00F3n "{0}" no est\u00E1 soportada.
