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

LOADING_CLASSES = loading...
GENERATING_SCHEMA = \nMOXy generating schema...
SCHEMA_GENERATED =  \nSchema {0} generated
SCHEMA_NOT_CREATED =  \nSchema {0} not created
NOT_FOUND =  \n\tNot found: {0}
PROPERTIES_FILE_NOT_FOUND =  \nEclipseLink JAXBContextFactory must be specified in the jaxb.properties file to use EclipseLink MOXy for schema generation.\n\
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
CONTEXT_FACTORY_NOT_FOUND =  \nThe JAXBContextFactory {0} \n\
configured in the jaxb.properties file could not be located on the project classpath. \n\
The JAXB provider that defines this factory should be added to the project classpath, \n\
or the jaxb.properties file should be removed to use the default provider.
