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

# SAAJ ResourceBundle properties file
# Contains Log messages for ver1_1 pkg

# Error messages
SAAJ0301.ver1_1.hdr.op.unsupported.in.SOAP1.1=SAAJ0301: SOAP 1.1 \u4E0D\u652F\u6301\u64CD\u4F5C{0}
SAAJ0302.ver1_1.hdr.attr.unsupported.in.SOAP1.1=SAAJ0302: SOAP 1.1 \u4E0D\u652F\u6301\u5C5E\u6027{0}
SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1=SAAJ0303: SOAP 1.1 \u4E0D\u652F\u6301\u64CD\u4F5C{0}
SAAJ0304.ver1_1.msg.invalid.SOAP1.1=SAAJ0304: InputStream \u4E0D\u8868\u793A\u6709\u6548\u7684 SOAP 1.1 \u6D88\u606F
SAAJ0305.ver1_2.detail.exists.error=SAAJ0305: \u65E0\u6CD5\u6DFB\u52A0\u8BE6\u7EC6\u4FE1\u606F, \u8BE6\u7EC6\u4FE1\u606F\u5DF2\u5B58\u5728
SAAJ0306.ver1_1.faultcode.incorrect.namespace=SAAJ0306: \u540D\u79F0\u7A7A\u95F4\u8B66\u544A, \u6807\u51C6\u6545\u969C\u4EE3\u7801 {0} \u6700\u9002\u5408\u5728 SOAP 1.1 \u540D\u79F0\u7A7A\u95F4\u4E2D\u4F7F\u7528
SAAJ0307.impl.no.ns.URI=SAAJ0307: \u4E3A faultCode {0} \u6307\u5B9A\u7684 NamespaceURI \u5FC5\u987B\u4E3A\u7A7A/\u7A7A\u503C
