################################################################################
# Copyright (c) 2010, 2011 Oracle. All rights reserved.
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v1.0, which accompanies this distribution
# and is available at http://www.eclipse.org/legal/epl-v10.html.
# 
# Contributors:
#     Oracle - initial API and implementation
################################################################################

NO_JAXB_PROJECT = This project has the JAXB facet, but no JAXB content could be created.  See the error log for more details.
PROJECT_INVALID_LIBRARY_PROVIDER = The currently selected JAXB library provider is invalid.
PROJECT__UNRESOLVED_SCHEMA = Cannot resolve the schema with location ''{0}''.
PROJECT__DUPLICATE_NAMESPACE = Duplicate schema library entries with the namespace ''{0}''.

PACKAGE_NO_SCHEMA_FOR_NAMESPACE = There is no schema specified on the project for the namespace ''{0}'' on the package ''{1}''.  No schema-specific validation will be performed.
PACKAGE_XML_JAVA_TYPE_ADAPTER_TYPE_NOT_SPECIFIED = The type must be specified for an XML Java type adapter on a package
XML_SCHEMA__MISMATCHED_ATTRIBUTE_FORM_DEFAULT = The attribute form default conflicts with what is specified on the schema
XML_SCHEMA__MISMATCHED_ELEMENT_FORM_DEFAULT = The element form default conflicts with what is specified on the schema

XML_ENUM__NON_SIMPLE_SCHEMA_TYPE = The type ''{0}'' must be associated with a simple schema type.

XML_TYPE__UNMATCHING_NAMESPACE_FOR_ANONYMOUS_TYPE = The namespace for an anonymous type should not be different from its package
XML_TYPE__UNSPECIFIED_FACTORY_METHOD = If a factory class is specified, a factory method must also be specified.
XML_TYPE__NO_PUBLIC_OR_PROTECTED_CONSTRUCTOR = A class must have a public or protected no-arg constructor, unless a factory class/method is provided or the class is adapted with an XmlAdapter.
XML_TYPE__DUPLICATE_PROP = Duplicate property ''{0}''.
XML_TYPE__MISSING_PROP = Missing required property ''{0}''.
XML_TYPE__NONEXISTENT_PROP = Nonexistent property ''{0}''.
XML_TYPE__TRANSIENT_PROP = The property ''{0}'' is transient and should not be included in the property order.
XML_TYPE__FACTORY_CLASS_IGNORED_FOR_ENUM = The factory class element is ignored for enums.
XML_TYPE__FACTORY_METHOD_IGNORED_FOR_ENUM = The factory method element is ignored for enums.
XML_TYPE__PROP_ORDER_IGNORED_FOR_ENUM = The prop order element is ignored for enums.

XML_ROOT_ELEMENT_TYPE_CONFLICTS_WITH_XML_TYPE = The xml type of the element declaration with name ''{0}'' and namespace ''{1}'' conflicts with the xml type of the associated class

XML_ENUM_VALUE__INVALID_LEXICAL_VALUE = Invalid lexical value \"{0}\" for schema type ''{1}''.

ATTRIBUTE_MAPPING__UNSUPPORTED_ANNOTATION = The annotation ''{0}'' is not allowed to be used in conjunction with ''{1}''. 
ATTRIBUTE_MAPPING_XML_JAVA_TYPE_ADAPTER_TYPE_NOT_DEFINED = The type for XML Java type adapter is not defined.
XML_ELEMENT_WRAPPER_DEFINED_ON_NON_ARRAY_NON_COLLECTION = An XML element wrapper may only be defined on a collection or array property

XML_ANY_ATTRIBUTE__MULTIPLE_MAPPINGS_DEFINED = Multiple attributes are annotated with @XmlAnyAttribute.  At most one field or property per class is allowed.
XML_ANY_ATTRIBUTE__NON_MAP_TYPE = The type of a field or property annotated with @XmlAnyAttribute must be assignable to java.util.Map.

XML_ANY_ELEMENT__MULTIPLE_MAPPINGS_DEFINED = Multiple attributes are annotated with @XmlAnyElement.  At most one field or property per class is allowed.

XML_ELEMENT__UNSPECIFIED_TYPE = Unspecified XML element type.
XML_ELEMENT__ILLEGAL_TYPE = XML element type must be a sub-type of ''{0}''.

XML_ELEMENT_DECL__INVALID_METHOD_SIGNATURE_RETURN_TYPE = An element factory method must have a return type of ''javax.xml.bind.JAXBElement''.
XML_ELEMENT_DECL__INVALID_METHOD_SIGNATURE_PARAM = An element factory method must have a single parameter assignable to ''java.lang.Object''.
XML_ELEMENT_DECL__SUBST_HEAD_NAME_EQUALS_NAME = XML element decl substitution head must not match its XML element.
XML_ELEMENT_DECL__SUBST_HEAD_NO_MATCHING_ELEMENT_DECL = XML element decl substitution head must match another XML element decl.

XML_ELEMENT_REF__UNSPECIFIED_TYPE = Unspecified XML element ref type.
XML_ELEMENT_REF__ILLEGAL_TYPE = XML element ref type must be a sub-type of ''{0}''.
XML_ELEMENT_REF__NO_ROOT_ELEMENT = No root element specified on type ''{0}'' or any of its sub-types.
XML_ELEMENT_REF__NO_REGISTRY = No XML registry configured for this package.
XML_ELEMENT_REF__NO_MATCHING_ELEMENT_DECL = No XML element decl in the XML registry matching the namespace ''{0}'' and name ''{1}''.

XML_ELEMENT_REFS__DUPLICATE_XML_ELEMENT_TYPE = Duplicate type ''{0}'' in XML element refs.
XML_ELEMENT_REFS__DUPLICATE_XML_ELEMENT_QNAME = Duplicate element name ''{0}'' in XML element refs.
	
XML_ELEMENTS__DUPLICATE_XML_ELEMENT_TYPE = Duplicate type ''{0}'' in XML elements.
XML_ELEMENTS__DUPLICATE_XML_ELEMENT_QNAME = Duplicate element name ''{0}'' in XML elements.

XML_ID__MULTIPLE_MAPPINGS_DEFINED = Multiple attributes are mapped as XmlID.  At most one field or property per class is allowed.
XML_ID__ATTRIBUTE_TYPE_NOT_STRING = An attribute mapped as XmlID must have type ''java.lang.String''.
XML_ID__SCHEMA_TYPE_NOT_ID = The schema type to which this attribute is mapped must be ''ID''.

XML_ID_REF__TYPE_DOES_NOT_CONTAIN_XML_ID =  In order to be used with XmlIDREF, type ''{0}'' must contain a property or field mapped as an XML ID.
XML_ID_REF__SCHEMA_TYPE_NOT_IDREF = In order to be used with XmlIDREF, The schema type of ''{0}'' must be ''IDREF''.

XML_LIST__ATTRIBUTE_NOT_COLLECTION_TYPE = In order to be mapped as XmlList, an attribute must have a collection or array type.
XML_LIST__ITEM_TYPE_NOT_MAPPED_TO_VALID_SCHEMA_TYPE = In order to be mapped as XmlList, the type ''{0}'' must be mapped to a non-list simple schema type.

XML_REGISTRY__DUPLICATE_XML_ELEMENT_QNAME = Duplicate XmlElementDecl name ''{0}'' {1}.

XML_VALUE__MULTIPLE_MAPPINGS_DEFINED = Multiple attributes are annotated with @XmlValue.  At most one field or property per class is allowed.
XML_VALUE_MAPPING_WITH_NON_XML_ATTRIBUTE_MAPPING_DEFINED = Attribute ''{0}'' must be mapped as XmlAttribute because another attribute ''{1}'' is mapped as XmlValue

XML_SCHEMA_TYPE__NON_SIMPLE_TYPE = The schema type ''{0}'' is not a simple type.
XML_SCHEMA_TYPE__TYPE_NOT_SPECIFIED_ON_PACKAGE = The ''type'' element should be specified when defining a schema type on a package.
XML_SCHEMA_TYPE__TYPE_SPECIFIED_ON_ATTRIBUTE = The ''type'' element should not be specified when defining a schema type on a field or property.

QNAME__MISSING_NAME = {0} name not specified
QNAME__UNRESOLVED_COMPONENT = Cannot resolve {0} with namespace ''{1}'' and name ''{2}'' in this context