#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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 Corporation - initial implementation.
#-------------------------------------------------------------------------------
#
# urls start with the following will be treated as external urls, use | to sperate 
#
#externalUrl_startWith=http://|https://|ftp://
# see all the possible protocals at:
# http://www.iana.org/assignments/uri-schemes.html
externalUrl_startWith=[a-zA-Z0-9\\.]{1,15}://

# XSL Stylesheet Mapping for the Method Elements.

# Core Method Elements
artifact=artifact.xsl
deliverable=deliverable.xsl
outcome=outcome.xsl
role=role.xsl
task=task.xsl

# Guidance
checklist=checklist.xsl
concept=guidance.xsl
example=guidance_with_attachment.xsl
guideline=guidance.xsl
practice=practice.xsl
report=guidance.xsl
roadmap=guidance.xsl
reusableasset=guidance_with_attachment.xsl
supportingmaterial=guidance.xsl
template=guidance_with_attachment.xsl
termdefinition=guidance.xsl
toolmentor=guidance.xsl
whitepaper=guidance_with_attachment.xsl
estimationconsiderations=guidance.xsl

# Content Categories
customcategory=contentcategory.xsl
discipline=contentcategory.xsl
disciplinegrouping=contentcategory.xsl
domain=contentcategory.xsl
roleset=contentcategory.xsl
rolesetgrouping=contentcategory.xsl
tool=contentcategory.xsl
workproducttype=contentcategory.xsl

# Process Elements
activity=activity_wbs.xsl
capabilitypattern=activity_wbs.xsl
deliveryprocess=activity_wbs.xsl
iteration=activity_wbs.xsl
phase=activity_wbs.xsl
process=activity_wbs.xsl
processcontribution=activity_wbs.xsl

# Descriptors
compositerole=compositerole.xsl
milestone=milestone.xsl
roledescriptor=role_descriptor.xsl
taskdescriptor=task_descriptor.xsl
teamprofile=teamprofile.xsl
workproductdescriptor=artifact_descriptor.xsl

# Misc
default=default.xsl
general=general.xsl
page_not_installed=page_not_installed.xsl
