###############################################################################
# Copyright (c) 2009, 2010 John Krasnay 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:
#     John Krasnay - initial API and implementation
#     Igor Jacy Lino Campista - bug 251954 - content types for DITA file extensions
###############################################################################
pluginName= Vex DITA
providerName= Eclipse.org

doctype.concept=DITA Concept
doctype.composite=DITA Composite
doctype.reference=DITA Reference
doctype.task=DITA Task
doctype.topic=DITA Topic
doctype.map=DITA Map

style.classed=DITA Classed
style.mapStyle=DITA Map

contentType.name = DITA
contentType.map.name = DITA Map
contentType.ditaval.name = DITAVal
contentType.topic.name = DITA Topic