#
# 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 impl
# Error messages
SAAJ0101.impl.parent.of.body.elem.mustbe.body=SAAJ0101: \u00DCbergeordnetes Element von SOAPBodyElement muss ein SOAPBody sein
SAAJ0102.impl.cannot.locate.ns=SAAJ0102: Namespace f\u00FCr Pr\u00E4fix {0} kann nicht gefunden werden
SAAJ0103.impl.cannot.add.fragements=SAAJ0103: Es k\u00F6nnen keine Fragmente hinzugef\u00FCgt werden, die Elemente enthalten, die im SOAP-Namespace enthalten sind
SAAJ0105.impl.encoding.style.mustbe.valid.URI=SAAJ0105: Codierungsstil {0} muss ein g\u00FCltiger URI sein
SAAJ0106.impl.no.null.to.parent.elem=SAAJ0106: NULL kann nicht an setParentElement \u00FCbergeben werden
SAAJ0107.impl.elem.child.not.single.text=SAAJ0107: setValue ist bei einem Element nicht m\u00F6glich, das nicht ein einziges untergeordnetes Element vom Typ Text hat

SAAJ0110.impl.fault.already.exists=SAAJ0110: Fehler: Fault ist bereits vorhanden
SAAJ0111.impl.body.parent.must.be.envelope=SAAJ0111: \u00DCbergeordnetes Element von SOAPBody muss SOAPEnvelope sein

SAAJ0112.impl.no.null.to.parent.elem=SAAJ0112: NULL kann nicht an setParentElement \u00FCbergeben werden
SAAJ0113.impl.cannot.split.text.from.comment=SAAJ0113: Text aus einem Kommentarknoten kann nicht geteilt werden
SAAJ0114.impl.cannot.replace.wholetext.from.comment=SAAJ0114: Gesamter Text aus einem Kommentarknoten kann nicht ersetzt werden

SAAJ0120.impl.header.already.exists=SAAJ0120: Es kann kein Header hinzugef\u00FCgt werden, wenn bereits ein Header vorhanden ist
SAAJ0121.impl.invalid.first.child.of.envelope=SAAJ0121: Erstes untergeordnetes Element von Envelope muss "Header" oder "Body" sein
SAAJ0122.impl.body.already.exists=SAAJ0122: Es kann kein Nachrichtentext hinzugef\u00FCgt werden, wenn bereits ein Nachrichtentext vorhanden ist
SAAJ0123.impl.no.reserved.xmlns=SAAJ0123: Reserviertes xmlns-Pr\u00E4fix kann nicht deklariert werden
SAAJ0124.impl.qualified.name.cannot.be.xmlns=SAAJ0124: Vollst\u00E4ndiger Name darf nicht xmlns sein
#SAAJ0125.impl.URI.cannot.be.null=SAAJ0125: URI cannot be null
SAAJ0126.impl.cannot.locate.ns=SAAJ0126: Namespace f\u00FCr Pr\u00E4fix {0} kann nicht gefunden werden
SAAJ0127.impl.no.null.for.parent.elem=SAAJ0127: NULL kann nicht an setParentElement \u00FCbergeben werden

SAAJ0130.impl.header.elem.parent.mustbe.header=SAAJ0130: \u00DCbergeordnetes Element von SOAPHeaderElement muss ein SOAPHeader sein
SAAJ0131.impl.header.elems.ns.qualified=SAAJ0131: HeaderElements muss mit Namespace angegeben werden
SAAJ0132.impl.invalid.value.for.actor.or.role=SAAJ0132: Ung\u00FCltiger Wert f\u00FCr Actor oder Rolle
SAAJ0133.impl.header.parent.mustbe.envelope=SAAJ0133: \u00DCbergeordnetes Element von SOAPHeader muss SOAPEnvelope sein
SAAJ0134.impl.header.elems.ns.qualified=SAAJ0134: HeaderElements muss mit Namespace angegeben werden

SAAJ0140.impl.no.ns.URI=SAAJ0140: Leerer/Null-NamespaceURI f\u00FCr faultCode {0} angegeben
SAAJ0141.impl.detail.exists=SAAJ0141: Detail ist bereits vorhanden
SAAJ0142.impl.reason.or.text.not.supported=SAAJ0142: Fault/Ursache/Text wird von dieser SOAP-Version nicht unterst\u00FCtzt, versuchen Sie SOAP 1.2 oder h\u00F6her
SAAJ0143.impl.node.not.supported=SAAJ0143: Fault/Knoten wird von dieser SOAP-Version nicht unterst\u00FCtzt, versuchen Sie SOAP 1.2 oder h\u00F6her
SAAJ0144.impl.role.not.supported=SAAJ0144: Fault/Rolle wird von dieser SOAP-Version nicht unterst\u00FCtzt, versuchen Sie SOAP 1.2 oder h\u00F6her
SAAJ0145.impl.no.null.to.parent.elem=SAAJ0145: NULL kann nicht an setParentElement \u00FCbergeben werden
SAAJ0146.impl.invalid.name.change.requested=SAAJ0146: Name des Elements {0} kann nicht in {1} ge\u00E4ndert werden
SAAJ0147.impl.invalid.uri.change.requested=SAAJ0147: Der URI f\u00FCr Pr\u00E4fix {0} kann nicht von {1} in {2} in setElementQName ge\u00E4ndert werden
SAAJ0148.impl.invalid.prefix.for.uri=Nicht-leerer Namespace-URI: {0} f\u00FCr ein leeres Pr\u00E4fix in SetElementQName
SAAJ0149.impl.null.prefix=SAAJ0149: Pr\u00E4fix darf bei der Erstellung eines QName nicht "null" sein

SAAJ0250.impl.body.should.have.exactly.one.child=SAAJ0250: Dokument kann nicht aus Nachrichtentext extrahiert werden
SAAJ0251.impl.cannot.extract.document.from.body=SAAJ0251: Dokument kann nicht aus Nachrichtentext extrahiert werden

# Debug messages
SAAJ0150.impl.added.attr=SAAJ0150: Attribut {0} hinzugef\u00FCgt
SAAJ0151.impl.no.children=SAAJ0151: Knoten, der Wert enth\u00E4lt, kann nicht gefunden werden: es sind keine untergeordneten Elemente vorhanden
SAAJ0152.impl.first.child.not.text.node=SAAJ0152: Knoten, der Wert enth\u00E4lt, kann nicht gefunden werden: erstes untergeordnetes Element ist kein Textknoten
SAAJ0153.impl.multiple.children.same.value=SAAJ0153: Knoten, der Wert enth\u00E4lt, kann nicht gefunden werden: Es ist mehr als ein untergeordneter Knoten vorhanden
SAAJ0154.impl.adding.fault.to.nonbody=SAAJ0154: Ein SOAPFault-Element kann nur als untergeordnetes Element von SOAPBody hinzugef\u00FCgt werden
SAAJ0155.impl.adding.detail.nonfault=SAAJ0155: Ein "Detail"-Element kann nur als untergeordnetes Element von SOAPFault hinzugef\u00FCgt werden
SAAJ0156.impl.adding.fault.error=SAAJ0156: SOAPFault kann nicht hinzugef\u00FCgt werden, SOAPFault muss das einzige untergeordnete Element von SOAPBody sein
SAAJ0157.impl.detail.exists.error=SAAJ0157: Detail kann nicht hinzugef\u00FCgt werden, Detail ist bereits vorhanden
SAAJ0158.impl.version.mismatch.fault=SAAJ0158: Nicht \u00FCbereinstimmende SOAP-Version beim Versuch aufgetreten, SOAPFault zu SOAPBody hinzuzuf\u00FCgen
SAAJ0159.impl.version.mismatch.detail=SAAJ0159: Nicht \u00FCbereinstimmende SOAP-Version beim Versuch aufgetreten, Detail zu SOAPBody hinzuzuf\u00FCgen

# Info messages
SAAJ0190.impl.set.xml.declaration=SAAJ0190: Deklaration "Omit XML" auf {0} gesetzt
SAAJ0191.impl.set.encoding=SAAJ0191: Codierung ist auf {0} gesetzt
