###############################################################################
#  Copyright (c) 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
###############################################################################

PROJECT_MISSING_ECLIPSELINK_JAXB_CONTEXT_FACTORY = Project is missing a jaxb.properties file specifying the EclipseLink JAXB context factory

XML_DISCRIMINATOR_NODE__NOT_SPECIFIED = XmlDiscriminatorNode not specified.

XML_DISCRIMINATOR_VALUE__NOT_SPECIFIED = XmlDiscriminatorValue not specified.

XML_ELEMENT_DECL__INVALID_METHOD_SIGNATURE_RETURN_TYPE = An element factory method must have a return type consistent with ''javax.xml.bind.JAXBElement''.

XML_JOIN_NODE__XML_PATH_NOT_SPECIFIED = XmlJoinNode xmlPath not specified.
XML_JOIN_NODE__REFERENCED_XML_PATH_NOT_SPECIFIED = XmlJoinNode referencedXmlPath not specified.
XML_JOIN_NODE__REFERENCED_XML_PATH_NOT_IN_REFERENCED_CLASS_KEYS = There is no XmlKey or XmlID on the target class ''{0}'' with XPath \"{1}\".

XML_JOIN_NODES__INVALID_REFERENCED_CLASS = The referenced class ''{0}'' is invalid for use with XmlJoinNodes.
XML_JOIN_NODES__DUPLICATE_XML_PATH = Duplicate xmlPath ''{0}'' in XmlJoinNodes.
XML_JOIN_NODES__DUPLICATE_REFERENCED_XML_PATH = Duplicate referencedXmlpath ''{0}'' in XmlJoinNodes.

XML_PATH__NOT_SPECIFIED = XmlPath not specified.

XML_PATH__INSUFFICIENT_XML_PATHS_FOR_XML_ELEMENTS = Insufficient XmlPaths specified.  There must be an XmlPath for each XmlElement.
XML_PATH__INSUFFICIENT_XML_ELEMENTS_FOR_XML_PATHS = There is no XmlElement to match this XmlPath.  There must be an XmlElement for each Xmlpath.

XML_INVERSE_REFERENCE__MAPPED_BY_NOT_SPECIFIED = The 'mappedBy' property must be specified on an XmlInverseReference.
XML_INVERSE_REFERENCE__MAPPED_BY_NOT_RESOLVED = Cannot resolve the attribute ''{0}'' on the class ''{1}''.
XML_INVERSE_REFERENCE__MAPPED_BY_ILLEGAL_MAPPING_TYPE = The attribute ''{0}'' on the class ''{1}'' must be mapped as XmlElement, XmlElements, XmlAttribute, or XmlValue.j

XPATH__INVALID_FORM_ILLEGAL_SEGMENT = Illegal XPath step \"{0}\".
XPATH__ROOT_NOT_SUPPORTED = Root XPath is not supported in this context.
XPATH__SELF_SEGMENT_MUST_BE_FIRST_SEGMENT = Self XPath step must be first step.
XPATH__TEXT_SEGMENT_MUST_BE_LAST_SEGMENT = Text XPath step must be last step.
XPATH__ATTRIBUTE_SEGMENT_MUST_BE_LAST_SEGMENT = An attribute XPath step must be the last step.
XPATH__INVALID_NS_PREFIX = Cannot resolve a namespace for the prefix \"{0}\".
XPATH__UNRESOLVED_ELEMENT = Cannot resolve element with namespace \"{0}\" and local name \"{1}\" in this context.
XPATH__UNRESOLVED_ATTRIBUTE = Cannot resolve attribute with namespace \"{0}\" and local name \"{1}\" in this context.
