###############################################################################
# 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_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
