#
# Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

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

# JAXP messages
schema-not-supported = El idioma del esquema especificado no est\u00E1 soportado.
jaxp-order-not-supported = La propiedad ''{0}'' debe definirse antes de definir la propiedad ''{1}''. 
schema-already-specified = La propiedad ''{0}'' no puede definirse cuando un objeto de esquema no nulo ya se haya especificado.

# feature messages
feature-not-supported = La funci\u00F3n "{0}" no est\u00E1 soportada.
feature-not-recognized = La funci\u00F3n "{0}" no se ha reconocido.
true-not-supported = El estado true para la funci\u00F3n ''{0}'' no est\u00E1 soportado.
false-not-supported = El estado false para la funci\u00F3n ''{0}'' no est\u00E1 soportado.
feature-read-only = La funci\u00F3n "{0}" es de s\u00F3lo lectura.
jaxp-secureprocessing-feature = FEATURE_SECURE_PROCESSING: no se puede definir la funci\u00F3n en false cuando est\u00E1 presente el gestor de seguridad.

# property messages
property-not-supported = La propiedad "{0}" no est\u00E1 soportada.
property-not-recognized = La propiedad "{0}" no se ha reconocido.
property-read-only = La propiedad "{0}" es de s\u00F3lo lectura.
property-not-parsing-supported = La propiedad "{0}" no est\u00E1 soportada durante el an\u00E1lisis.
dom-node-read-not-supported = No se puede leer la propiedad del nodo DOM. No existe el \u00E1rbol DOM.
incompatible-class = El valor especificado para la propiedad ''{0}'' no se puede convertir en {1}.

start-document-not-called=La propiedad "{0}" debe llamarse despu\u00E9s de que se haya devuelto el evento startDocument
nullparameter=el par\u00E1metro de nombre para "{0}" es nulo
errorHandlerNotSet=Advertencia: se activ\u00F3 la validaci\u00F3n pero no se defini\u00F3 un org.xml.sax.ErrorHandler, lo cual probablemente sea un resultado no deseado. El analizador utilizar\u00E1 un ErrorHandler por defecto para imprimir los primeros {0} errores. Llame al m\u00E9todo ''setErrorHandler'' para solucionarlo.
errorHandlerDebugMsg=Error: URI = "{0}", L\u00EDnea = "{1}", : {2} 
