###############################################################################
# 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_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_PORTTYPES=Interfaces
_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_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_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 ('