###############################################################################
# Copyright (c) 2001, 2004 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
###############################################################################

_ERROR_NO_LOCATION_FOR_ADDRESS                   = No location has been specified for this address. Every address must have a valid location specified.
_ERROR_INVALID_PORT_ELEMENT                      = The {0} element defined here is undefined for the HTTP namespace. The only valid element is "address".
_ERROR_INVALID_BINDING_ELEMENT                   = The {0} element defined here is undefined for the HTTP namespace. The only valid element is "binding".
_ERROR_INVALID_BINDING_OPERATION_ELEMENT         = The {0} element defined here is undefined for the HTTP namespace. The only valid element is "operation".
_ERROR_INVALID_BINDING_INPUT_ELEMENT             = The {0} element defined here is undefined for the HTTP namespace. The only valid elements are "urlReplacement" and "urlEncoded".
_ERROR_INVALID_HTTP_ELEMENT_FOR_LOCATION         = The {0} element cannot be specified here. This element is not defined in the HTTP namespace for use at this point.
_ERROR_NO_HTTPBINDING_FOR_ADDRESS                = An HTTP address cannot be specified here as the {0} binding that the {1} port refers to does not have an HTTP binding element defined. There must be an HTTP binding element defined in order to specify an HTTP address for a binding.
_ERROR_INVALID_BINDING_VERB                      = The {0} verb defined for the HTTP binding is invalid. The HTTP binding verb must be "GET" or "POST" and is case sensitive.
_ERROR_INVALID_LOCATION_URI                      = The location URI is invalid for the HTTP operation. You must specify a valid location URI for every HTTP Operation.
_ERROR_NO_HTTPBINDING_FOR_OPERATION              = The {0} binding that the HTTP operation is specified for does not have an HTTP binding defined. An HTTP binding must be defined in order to define an HTTP operation here.
_ERROR_NO_HTTPOPERATION_FOR_URL                  = The {0} operation that the {1} HTTP element is specified for does not have an HTTP operation defined. A HTTP operation must be defined in order to define a {1} HTTP element here.
_ERROR_NOT_ONLY_ELEMENT_DEFINED                  = The {0} HTTP element defined is not the only element defined for the input element. When {0} is defined it must be the only child element defined for the input element.
