#
# Copyright (c) 1997, 2021 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Distribution License v. 1.0, which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: BSD-3-Clause
#


# Wrapped into an Exception. Not concatenated with any other string.
NOT_MARSHALLABLE = \
	the object parameter to marshal() is not marshallable

# Not concatenated with any other string (written on a separate line).
UNSUPPORTED_RESULT = \
	unsupported javax.xml.parser.transform.Result parameter

# Not concatenated with any other string (written on a separate line).
UNSUPPORTED_ENCODING = \
	unsupported encoding: {0}

ILLEGAL_PARAMETER = \
    Illegal "{0}" parameter: {1}

# {0} - class name, {2} - method name
UNABLE_TO_FIND_CONVERSION_METHOD = \
    {0} doesn''t have a method {1} {2}();

MISSING_ID = \
    Object "{0}" is found in an IDREF property but this object doesn't have an ID.

NOT_IMPLEMENTED_IN_2_0 = \
    This feature is not available in JAXB RI 2.0

UNRECOGNIZED_ELEMENT_NAME = \
    The tag name "{0}" is not known to this JAXBContext.

TYPE_MISMATCH = \
	"{1}" property of a "{0}" object contains an object of type "{2}" but this is not allowed. \
	See javadoc of this property for what this property can accept.

MISSING_OBJECT = \
	a required field "{0}" is missing an object

NOT_IDENTIFIABLE = \
	An object is referenced as IDREF but its ID field is null

DANGLING_IDREF = \
	A tree contains a reference to ID "{0}" but it's not a part of the object graph

# Wrapped into a IOException. Not concatenated with any other string.
NULL_OUTPUT_RESOLVER = \
    schema output resolver must not be null

UNABLE_TO_MARSHAL_NON_ELEMENT = \
    unable to marshal type "{0}" as an element because it is missing an @XmlRootElement annotation

UNABLE_TO_MARSHAL_UNBOUND_CLASS = \
    unable to marshal type "{0}" as an element because it is not known to this context.

UNSUPPORTED_PROPERTY = \
    "{0}" is not a supported property

NULL_PROPERTY_NAME = \
    property name parameter can not be null

MUST_BE_X = \
    property "{0}" must be an instance of type {1}, not {2}

# {0}, {1}, {2} - class name. e.g.: Instance of "com.test.implementation.Implementation" is substituting "com.test.abstractbase.AbstractType", but "com.test.implementation.Implementation" is bound to an anonymous type.
SUBSTITUTED_BY_ANONYMOUS_TYPE = \
    Instance of "{1}" is substituting "{0}", but "{2}" is bound to an anonymous type.

CYCLE_IN_MARSHALLER = \
    A cycle is detected in the object graph. This will cause infinitely deep XML: {0}

# {0} - class name
UNABLE_TO_DISCOVER_EVENTHANDLER = \
    Unable to list methods of "{0}". If there is any event callback handler on this class, it will be ignored.

ELEMENT_NEEDED_BUT_FOUND_DOCUMENT = \
    A DOM document "{0}" is found but an element is needed. Use Document.getDocumentElement() and set that object instead.

UNKNOWN_CLASS = \
    {0} nor any of its super class is known to this context.

FAILED_TO_GENERATE_SCHEMA = \
    Failed to generate schema.

ERROR_PROCESSING_SCHEMA = \
    Error during schema processing.

ILLEGAL_CONTENT = \
    Illegal XML content in <{0}>: "{1}".
