###############################################################################
# Copyright (c) 2001, 2008 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=Maximum Occurrence Change 
_UI_ACTION_CHANGE_MINIMUM_OCCURRENCE=Minimum Occurrence Change
_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.
_UI_VALUE_COLON=Value:
_UI_ID=ID:
_UI_REF=Reference:
_UI_FIXED=Fixed
_UI_DEFAULT=Default
_UI_FORM=Form qualification:
# The following string will be used for the undo action.  An
# example label is: Undo Abstract Change
_UI_ACTION_CHANGE={0} Change
_UI_ACTION_NAMESPACE_INFORMATION_CHANGE=Namespace Information Change
_UI_LABEL_ABSTRACT=Abstract
_UI_LABEL_BLOCK=Block
_UI_LABEL_FINAL=Final
_UI_LABEL_SUBSTITUTION_GROUP=Substitution Group
_UI_LABEL_MIXED=Mixed
_UI_LABEL_VALUE=Value
_UI_USAGE=Usage
_UI_LABEL_FORM=Form
_UI_LABEL_NILLABLE=Nillable
