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

#properties file for JAXB Core
pluginName=JAXB Tools Core
pluginProvider=Eclipse Web Tools Platform

JAXB_CATEGORY_NAME=JAXB

XML_SCHEMA_TYPE_RULES=Validation rules governing the use of @XmlSchemaType