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

# Messages for message reporting
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

# SchemaFactory error messages
SchemaLanguageNull = El idioma del esquema especificado no puede ser nulo.
SchemaLanguageLengthZero = El idioma del esquema especificado no puede tener una longitud de cero caracteres.
SchemaSourceArrayNull = El par\u00E1metro de matriz de origen no puede ser nulo.
SchemaSourceArrayMemberNull = El par\u00E1metro de matriz de origen no puede contener ning\u00FAn elemento que sea nulo.
SchemaFactorySourceUnrecognized = Este SchemaFactory no reconoce el par\u00E1metro de origen del tipo ''{0}''.

# Validator error messages
SourceParameterNull = El par\u00E1metro de origen no puede ser nulo.
SourceNotAccepted = Este validador no acepta el par\u00E1metro de origen del tipo ''{0}''.
SourceResultMismatch = El par\u00E1metro de origen del tipo ''{0}'' no es compatible con el par\u00E1metro de resultado del tipo ''{1}''.

# TypeInfoProvider error messages
TypeInfoProviderIllegalState = Un TypeInfoProvider no puede consultarse fuera de una devoluci\u00F3n de llamada de startElement.

# General error messages
FeatureNameNull = El nombre de la funci\u00F3n no puede ser nulo.
ProperyNameNull = El nombre de la propiedad no puede ser nulo.
SAXSourceNullInputSource = El SAXSource especificado no contiene ning\u00FAn valor de InputSource.

