###############################################################################
# Copyright (c) 2001, 2010 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 A&ny 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_DELETE_BUTTON=&Delete
_UI_LABEL_NO_ITEMS_SELECTED=No items selected
_UI_LABEL_ELEMENTFORMDEFAULT=Prefix for &Elements:
_UI_LABEL_ATTRIBUTEFORMDEFAULT=Prefix for &Attributes:
_UI_LABEL_BLOCKDEFAULT=&Block default:
_UI_LABEL_EXTENSION_DETAILS=Extension Details
_UI_LABEL_EXTENSION_CATEGORIES=Extension &Categories:
_UI_LABEL_FINALDEFAULT=&Final default:
_UI_LABEL_COLLAPSE_WHITESPACE=Collapse &whitespace
_UI_LABEL_RESTRICT_VALUES_BY=&Restrict values by:
_UI_LABEL_MINIMUM_LENGTH=Mi&nimum length:
_UI_LABEL_MAXIMUM_LENGTH=Ma&ximum 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_INSERT_ENUMERATION=&Insert Enumeration
_UI_ACTION_CHANGE_ENUMERATION_VALUE=Change Enumeration value
_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=A&dd
_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=Ma&ximum 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 com&ponents 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:
_UI_LABEL_CATALOG=&XML Catalog...
_UI_LABEL_WORKSPACE=&Workspace...
_UI_ACTION_CHANGE={0} Change
_UI_ACTION_CLOSE_SCHEMA_PREVIEW_POPUP=&Close
_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: