###############################################################################
# Copyright (c) 2001, 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 API and implementation
###############################################################################
_UI_ACTION_OPEN_IN_NEW_EDITOR=Open In New Editor
_UI_ACTION_DELETE_CONSTRAINTS=Delete Constraints
_UI_ACTION_DELETE_ENUMERATION=Delete Enumeration
_UI_ACTION_DELETE_APPINFO_ELEMENT=Delete AppInfo Element
_UI_ACTION_DELETE_APPINFO_ATTRIBUTE=Delete AppInfo Attribute
_UI_ACTION_DELETE_EXTENSION_COMPONENT=Delete Extension Component
_UI_ACTION_ADD_ATTRIBUTE_GROUP=Add Attribute Group
_UI_ACTION_ADD_APPINFO_ELEMENT=Add AppInfo Element
_UI_ACTION_ADD_ATTRIBUTE=Add Attribute
_UI_ACTION_ADD_GROUP_REF=Add Group Ref
_UI_ACTION_ADD_ANY_ELEMENT=Add An&y
_UI_ACTION_ADD_ANY_ATTRIBUTE=Add Any Attribute
_UI_ACTION_ADD_WITH_DOTS=Add...
_UI_ACTION_UPDATE_BOUNDS=Update bounds
_UI_ACTION_ADD_COMPLEX_TYPE=Add Complex Type
_UI_ACTION_ADD_ENUMERATIONS=Add Enumerations
_UI_ACTION_ADD_DOCUMENTATION=Add Documentation
_UI_ACTION_CONSTRAIN_LENGTH=Constrain length
_UI_ACTION_BROWSE_WORKSPACE=Workspace
_UI_LABEL_NO_ITEMS_SELECTED=No items selected
_UI_LABEL_EXTENSION_DETAILS=Extension Details
_UI_LABEL_EXTENSION_CATEGORIES=Extension Categories:
_UI_LABEL_COLLAPSE_WHITESPACE=Collapse whitespace
_UI_LABEL_RESTRICT_VALUES_BY=Restrict values by:
_UI_LABEL_MINIMUM_LENGTH=Minimum length:
_UI_LABEL_MAXIMUM_LENGTH=Maximum length:
_UI_LABEL_SELECT_XSD_FILE=Select XSD file
_UI_LABEL_CONSTRAINTS_ON_VALUE_OF=Constraints on value of 
_UI_ACTION_ADD_SIMPLE_TYPE=Add Simple Type
_UI_ACTION_EDIT_WITH_DOTS=Edit...
_UI_ACTION_CHANGE_PATTERN=Change pattern
_UI_ACTION_ADD_ENUMERATION=Add Enumeration
_UI_ACTION_DELETE_PATTERN=Delete Pattern
_UI_ACTION_BROWSE_CATALOG=Catalog
_UI_ACTION_ADD_GROUP=Add Group
_UI_ACTION_ADD_PATTERN=Add pattern
_UI_ACTION_SET_BASE_TYPE=Set Base Type
_UI_ERROR_INVALID_NAME=Invalid name
_UI_ERROR_INVALID_FILE=Invalid file
_UI_ERROR_INVALID_CATEGORY=Invalid Category
_UI_ACTION_DELETE=Delete
_UI_ACTION_ADD=Add
_UI_ACTION_RENAME=Rename
_UI_LABEL_PATTERN=Pattern
_UI_LABEL_PATTERNS=Patterns
_UI_LABEL_NAME=Name:
_UI_LABEL_TYPE=Type: 
_UI_LABEL_BASE=Base
_UI_LABEL_UP=Up
_UI_LABEL_DOWN=Down
_UI_LABEL_DELETE=Delete
_UI_LABEL_SCHEMA=Schema:
_UI_LABEL_EDIT=Edit
_UI_LABEL_REFERENCE=Reference:
_UI_LABEL_READONLY=ReadOnly
_UI_LABEL_INCLUSIVE=Inclusive
_UI_LABEL_ENUMERATIONS=Enumerations
_UI_LABEL_EXTENSIONS=Extensions
_UI_LABEL_MINIMUM_VALUE=Minimum value:
_UI_LABEL_MAXIMUM_VALUE=Maximum value:
_UI_LABEL_CONTRAINTS_ON=Constraints on 
_UI_LABEL_ADD_WITH_DOTS=Add...
_UI_LABEL_ADD_CATEGORY=Add Category
_UI_LABEL_EDIT_CATEGORY=Edit Category
_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF=Add Attribute Group Ref
_UI_ACTION_ADD_EXTENSION_COMPONENT=Add Extension Component
_UI_ACTION_ADD_EXTENSION_COMPONENTS=Add Extension Components
_UI_LABEL_CONSTRAINTS_ON_LENGTH_OF=Constraints on length of 
_UI_ACTION_ADD_APPINFO_ATTRIBUTE=Add AppInfo Attribute
_UI_ACTION_SET_ENUMERATION_VALUE=Set Enumeration Value
_UI_ACTION_UPDATE_ELEMENT_REFERENCE=Update Element Reference
_UI_ACTION_UPDATE_MAXIMUM_OCCURRENCE=Update Maximum Occurrence
_UI_ACTION_UPDATE_MINIMUM_OCCURRENCE=Update Minimum Occurrence
_UI_ACTION_CHANGE_MAXIMUM_OCCURRENCE=Change Maximum Occurrence
_UI_ACTION_CHANGE_MINIMUM_OCCURRENCE=Change Minimum Occurrence
_UI_LABEL_SPECIFIC_CONSTRAINT_VALUES=Specific constraint values
_UI_LABEL_AVAILABLE_COMPONENTS_TO_ADD=Available components to Add:
_UI_ACTION_CHANGE_CONTENT_MODEL=Change Content Model
_UI_ERROR_FILE_CANNOT_BE_PARSED=The xsd file of the selected category cannot be parsed.
_UI_DESCRIPTION_CHOOSE_XSD_FILE=Choose an XSD file containing schema for your extensible components
_UI_ERROR_VALIDATE_THE_FILE=Please validate the file.
_UI_ERROR_NAME_ALREADY_USED=The name is already being used.
_UI_ACTION_COLLAPSE_WHITESPACE=Collapse whitespace
_UI_ACTION_ADD_ATTRIBUTE_GROUP_DEFINITION=Add Attribute Group Definition
_UI_ERROR_INVALID_VALUE_FOR_MAXIMUM_OCCURRENCE=Invalid value for maximum occurrence
_UI_TOOLTIP_RENAME_REFACTOR=Click here to invoke the Rename refactoring.
