#
# 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 JAXP Validation API implementation.
#
# The messages are arranged in key and value tuples in a ListResourceBundle.

# Messages for message reporting
BadMessageKey = \u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30AD\u30FC\u306B\u5BFE\u5FDC\u3059\u308B\u30A8\u30E9\u30FC\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
FormatFailed = \u6B21\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u66F8\u5F0F\u8A2D\u5B9A\u4E2D\u306B\u5185\u90E8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F:\n

# SchemaFactory error messages
SchemaLanguageNull = \u6307\u5B9A\u3057\u305F\u30B9\u30AD\u30FC\u30DE\u8A00\u8A9E\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093\u3002
SchemaLanguageLengthZero = \u6307\u5B9A\u3057\u305F\u30B9\u30AD\u30FC\u30DE\u8A00\u8A9E\u306E\u9577\u3055\u306F\u30BC\u30ED\u6587\u5B57\u306B\u3067\u304D\u307E\u305B\u3093\u3002
SchemaSourceArrayNull = Source\u914D\u5217\u30D1\u30E9\u30E1\u30FC\u30BF\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093\u3002
SchemaSourceArrayMemberNull = Source\u914D\u5217\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u306F\u3001null\u306E\u30A2\u30A4\u30C6\u30E0\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
SchemaFactorySourceUnrecognized = \u30BF\u30A4\u30D7''{0}''\u306ESource\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u3001\u3053\u306ESchemaFactory\u3067\u306F\u8A8D\u8B58\u3055\u308C\u307E\u305B\u3093\u3002

# Validator error messages
SourceParameterNull = Source\u30D1\u30E9\u30E1\u30FC\u30BF\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093\u3002
SourceNotAccepted = \u30BF\u30A4\u30D7''{0}''\u306ESource\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u3001\u3053\u306E\u30D0\u30EA\u30C7\u30FC\u30BF\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
SourceResultMismatch = \u30BF\u30A4\u30D7''{0}''\u306ESource\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u3001\u30BF\u30A4\u30D7''{1}''\u306E\u7D50\u679C\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002

# TypeInfoProvider error messages
TypeInfoProviderIllegalState = TypeInfoProvider\u306F\u3001startElement\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u306E\u5916\u3067\u554F\u3044\u5408\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002

# General error messages
FeatureNameNull = \u6A5F\u80FD\u540D\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093\u3002
ProperyNameNull = \u30D7\u30ED\u30D1\u30C6\u30A3\u540D\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093\u3002
SAXSourceNullInputSource = \u6307\u5B9A\u3057\u305FSAXSource\u306B\u306F\u3001InputSource\u306F\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002

