# /**
#  * <copyright>
#  *
#  * Copyright (c) 2002-2010 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
#  *
#  * </copyright>
#  *
#  * $Id: about.properties,v 1.6 2010/04/27 15:57:26 emerks Exp $
#  */

# NLS_MESSAGEFORMAT_VAR

featureName=XSD Ecore Converter

featureText=XSD Ecore Converter\n\
Version: {featureVersion}\n\
Build id: {0}\n\
\n\
(c) Copyright Eclipse contributors and others. 2002, 2010.  All rights reserved.\n\
\n\
XSD is a reference library for manipulating the components of an\n\
XML Schema as described by the W3C XML Schema specifications.\n\
Visit http://www.eclipse.org/xsd/
