###############################################################################
# Copyright (c) 2009, 2010 Progress Software
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
###############################################################################

#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