#
# Copyright (c) 1997, 2011, 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.
#

#
# Message resource file
#



ERR_UNDECLARED_PREFIX = \u63A5\u982D\u8F9E"{0}"\u306F\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093

ERR_UNEXPECTED_EXTENSION_BINDING_PREFIXES = extensionBindingPrefixes\u5C5E\u6027\u306F\u30EB\u30FC\u30C8\u8981\u7D20\u3067\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059

ERR_VENDOR_EXTENSION_DISALLOWED_IN_STRICT_MODE = \u30D9\u30F3\u30C0\u30FC\u62E1\u5F35\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0(jaxb:extensionBindingPrefixes)\u306Fstrict\u30E2\u30FC\u30C9\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002-extension\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002

ERR_UNSUPPORTED_EXTENSION = \u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u30FB\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9"{0}"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"{1}"\u306E\u8AA4\u308A\u3067\u3042\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002

ERR_SUPPORTED_EXTENSION_IGNORED = \u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u5BA3\u8A00\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9"{0}"\u306F\u3001jaxb:extensionBindingPrefixes\u5C5E\u6027\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u7121\u8996\u3055\u308C\u307E\u3059\u3002

ERR_RELEVANT_LOCATION = \u6B21\u306E\u5834\u6240\u306F\u524D\u8FF0\u306E\u30A8\u30E9\u30FC\u306B\u95A2\u9023\u3057\u3066\u3044\u307E\u3059


ERR_CLASS_NOT_FOUND = \u30BF\u30A4\u30D7"{0}"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30BF\u30A4\u30D7\u306E\u6B63\u3057\u3044\u7D99\u627F\u968E\u5C64\u304C\u4E0D\u660E\u306A\u5834\u5408\u3001XJC\u306F\u3044\u304F\u3064\u304B\u306E\u7F72\u540D\u3092\u6B63\u3057\u304F\u751F\u6210\u3067\u304D\u306A\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002-classpath\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3053\u306E\u30AF\u30E9\u30B9\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002

DUPLICATE_PROPERTY = \u30D7\u30ED\u30D1\u30C6\u30A3"{0}"\u306F\u3059\u3067\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u7AF6\u5408\u3092\u89E3\u6C7A\u3059\u308B\u306B\u306F\u3001&lt;jaxb:property>\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002

DUPLICATE_ELEMENT = \u8981\u7D20"{0}"\u304C\u8907\u6570\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u5B58\u5728\u3057\u307E\u3059\u3002

# Usage not found. Assuming the intention was to use it together with DUPLICATE_ELEMENT but ERR_RELEVANT_LOCATION is used instead.
DUPLICATE_PROPERTY_LOC = (\u524D\u8FF0\u306E\u30A8\u30E9\u30FC\u306B\u95A2\u9023\u3057\u3066)\u5225\u306E\u5B9A\u7FA9\u304C\u3053\u3053\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002

PROPERTY_CLASS_IS_RESERVED = \u30D7\u30ED\u30D1\u30C6\u30A3\u540D"Class"\u306Fjava.lang.Object\u3067\u4E88\u7D04\u3055\u308C\u3066\u3044\u307E\u3059\u3002

ERR_ILLEGAL_CUSTOMIZATION_TAGNAME = "{0}"\u306F\u6709\u52B9\u306A\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002

ERR_PLUGIN_NOT_ENABLED = "{1}"\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001"-{0}"\u30B9\u30A4\u30C3\u30C1\u3067\u3053\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
