###############################################################################
# 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_DEPENDENCIES_CHANGED=Dependencies Changed
_UI_DEPENDENCIES_CHANGED_REFRESH=One or more dependencies have changed.  Do you want to refresh the editor to reflect these changes?
_UI_EDIT_NAMESPACES_DIALOG_TITLE=Edit Namespaces
_UI_PREF_PAGE_CREATING_FILES=Creating files
_UI_REMEMBER_MY_DECISION_LABEL=Remember my decision
_UI_PREF_PAGE_DEFAULT_TARGET_NAMESPACE=Default Target Namespace:
_UI_REGEN_BINDINGS_ON_SAVE_QUESTIONMARK=Regenerate Bindings On Save?
_UI_LABEL_WARNING_DUPLICATE_NAME_EXISTS=Warning: duplicate name already exists
_UI_LABEL_NAMESPACE_URIS_TO_BE_INCLUDED=Namespace URIs to be included
_UI_PREF_PAGE_AUTO_REGENERATE_BINDING=Regenerate Binding on save
_UI_PREF_PAGE_PROMPT_REGEN_BINDING_ON_SAVE=Prompt Regenerate Binding on save
_UI_EDIT_NAMESPACES=Edit Namespaces...
_UI_ACTION_ADD_IMPORT=Add Import
_UI_ACTION_ADD_BINDING=Add Binding
_UI_ACTION_ADD_PART=Add Part
_UI_ACTION_OPEN_IN_NEW_EDITOR=Open In New Editor
_UI_ACTION_EXISTING_MESSAGE=Existing Message...
_UI_ACTION_EXISTING_ELEMENT=Existing Element...
_UI_ERROR_NAMESPACE_INVALID=The target namespace is invalid
_UI_ERROR_FILE_ALREADY_EXISTS=File already exists: {0}
_UI_DESCRIPTION_NEW_WSDL_FILE=Specify the attributes for the new WSDL file.
_UI_REGEN_BINDINDS_ON_SAVE=Regenerate Bindings On Save
_UI_RADIO_DOCUMENT_LITERAL=document literal
_UI_TITLE_SPECIFY_PORTTYPE=Specify Port Type
_UI_LABEL_BINDING_PROTOCOL=Protocol:
_UI_LABEL_INLINE_SCHEMA_OF=Inline Schema of 
_UI_LABEL_TARGET_NAMESPACE=Target namespace:
_UI_LABEL_PREFIX_WITH_COLON=Prefix:
_UI_LABEL_CREATE_WSDL_SKELETON=Create WSDL Skeleton
_UI_LABEL_CREATE_NEW_WSDL_FILE=Create a new WSDL File
_UI_LABEL_SOAP_BINDING_OPTIONS=SOAP Binding Options
_UI_LABEL_HTTP_BINDING_OPTIONS=HTTP Binding Options
_UI_LABEL_ADD_EXTENSION_ELEMENT=Add Extension Element
_UI_SPECIFY_BINDING_DETAILS_LABEL=Specify the details of the binding that will be created
_UI_SPECIFY_PORT_DETAILS_TO_BE_CREATED=Specify the details of the port that will be created
_UI_LABEL_NEW_BINDING=New Binding
_UI_LABEL_NEW_PORTTYPE=New PortType
_UI_LABEL_REFERENCE_KIND=Reference Kind
_UI_LABEL_NEW_MESSAGE=New Message
_UI_RADIO_RPC_ENCODED=rpc encoded
_UI_RADIO_RPC_LITERAL=rpc literal
_UI_ACTION_EXISTING_TYPE=Existing Type...
_UI_SPECIFY_PORT_DETAILS=Specify Port Details
_UI_TITLE_SPECIFY_BINDING=Specify Binding
_UI_TITLE_SPECIFY_BINDING_DETAILS=Specify Binding Details
_UI_ERROR_FILE_MUST_END_WITH_WSDL=Error: File must end with wsdl
_UI_TITLE_SPECIFY_MESSAGE=Specify Message
_UI_TITLE_NEW_WSDL_FILE=New WSDL File
_UI_NAME_INVALID_CHAR_END=')
_UI_ACTION_RENAME=Rename
_UI_FOLDER_TYPES=Types
_UI_CANCEL_LABEL=Cancel
_UI_ACTION_NEW_TYPE=New Type...
_UI_ACTION_SET_TYPE=Set Type
_UI_FOLDER_IMPORTS=Imports
_UI_FOLDER_SERVICES=Services
_UI_FOLDER_BINDINGS=Bindings
_UI_FOLDER_INTERFACES=Interfaces
_UI_FOLDER_PORTTYPES=PortTypes
_UI_FOLDER_MESSAGES=Messages
_UI_ACTION_NEW_MESSAGE=New Message...
_UI_ACTION_NEW_ELEMENT=New Element...
_UI_ACTION_SET_ELEMENT=Set Element
_UI_ACTION_SET_MESSAGE=Set Message
_UI_ACTION_SET_BINDING=Set Binding
_UI_CHECKBOX_OVERWRITE=Overwrite existing binding information
_UI_ACTION_SET_PORTTYPE=Set PortType
_UI_ACTION_ADD=Add
_UI_ACTION_OPEN_IMPORT=Open Import
_UI_UNSPECIFIED=(unspecified)
_UI_LABEL_NAME=Name
_UI_LABEL_TYPE=Type
_UI_BUTTON_NEW=New...
_UI_LABEL_ELEMENT=Element
_UI_BUTTON_BROWSE=Browse...
_UI_BINDING_WIZARD=Binding Wizard
_UI_BINDING=Binding
_UI_LABEL_MESSAGE=Message
_UI_LABEL_REMOVE=Remove
_UI_TITLE_SELECT=Select
_UI_TITLE_SELECT_FILE = Select File
_UI_DESCRIPTION_SELECT_WSDL_OR_XSD = Select a WSDL or XSD file to import.
_UI_TITLE_OPTIONS=Options
_UI_YES_LABEL=Yes
_UI_PORT_TYPE=Port Type
_UI_PORT_WIZARD=Port Wizard
_UI_NO_LABEL=No
_UI_ADD=Add...
_UI_HELP=Help
_UI_LABEL_NAME_FILTER=Name (? = character, * = any string):
_WARN_NAME_MUST_CONTAIN_AT_LEAST_ONE_CHAR=IWAX1415W Name field must contain at least one character
_WARN_NAME_HAS_SPACE=IWAX1402W Name field cannot contain a space
_WARN_NAME_INVALID_FIRST=IWAX1403W First character in name field must be one of the following ('_', ':', 'letter')
_WARN_NAME_INVALID_CHAR=IWAX1404W Name field contains invalid character ('