###############################################################################
# Copyright (c) 2001, 2009 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_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=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_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=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:
_UI_LABEL_CATALOG=&XML Catalog...
_UI_LABEL_WORKSPACE=&Workspace...
# 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
