# /**
#  * Copyright (c) 2002-2008 IBM Corporation and others.
#  * 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: 
#  *   IBM - Initial API and implementation
#  */

# NLS_MESSAGEFORMAT_VAR

pluginName = XSD Ecore Exporter
providerName = Eclipse Modeling Project

_UI_XSDExporter_label = XML Schema
_UI_XSDExporter_description = Export the model to XML Schema

_UI_XMIExporter_label = XML Schema for XMI
_UI_XMIExporter_description = Export the model to XML Schema for XMI

_UI_XSDImport_title = XML Schema Export
_UI_InvalidArtifactFileNameExtension_message = The artifact file name must end in '.xsd'
