###############################################################################
# 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
###############################################################################
!-- Constants for strings  

!-- Warning Messages
_WARN_NO_VALDIATOR                         = There is no registered validator for the namespace {0}.

_ERROR_PROBLEM_WSDL_VALIDATOR              = A problem occurred while running the WSDL validator for namespace {0}.
_ERROR_NO_WSDL_VALIDATOR                   = The namespace {0} specified is not a valid WSDL namespace.
_ERROR_PROBLEM_EXT_VALIDATOR               = A probelm occurred while running the Extension validator {0} for namespace {1}.

!-- Strings for WSDL 1.1 validator
                                                       
_UNABLE_TO_IMPORT_BAD_LOCATION             = The {0} document could not be imported. Check that the document exists and that the location is correct.
_UNABLE_TO_IMPORT_INVALID                  = The {0} document could not be imported because it is not valid. The document must be corrected before it can be imported.
_NO_BINDING_FOR_PORT                       = The {0} port has an invalid binding - {1}. Check that the {1} binding is defined.
_PORTTYPE_UNDEFINED_FOR_BINDING            = The {0} port type specified for the {1} binding is undefined. Check the {0} port type name and ensure it is defined.
_OPERATION_UNDEFINED_FOR_PORTTYPE          = The operation specified for the {0} binding is not defined for port type {1}. All operations specified in this binding must be defined in port type {1}.
_INPUT_NAME_NOT_UNIQUE                     = The name {0} specified for this input element is not unique. The name of an input element must be unique from the names of all other input and output elements defined in the {1} port type.
_OUTPUT_NAME_NOT_UNIQUE                    = The name {0} specified for this output element is not unique. The name of an output element must be unique from the names of all other inputs and output elements defined in the {1} port type.
_MESSAGE_UNDEFINED_FOR_INPUT               = The input element is referencing an undefined message {0}. Check that the message name and namespace are correct and that the message has been defined.
_MESSAGE_UNDEFINED_FOR_OUTPUT              = The output element is referencing an undefined message {0}. Check that the message name and namespace are correct and that the message has been defined.
_MESSAGE_UNDEFINED_FOR_FAULT               = The fault element is referencing an undefined message {0}. Check that the message name and namespace are correct and that the message has been defined.
_DUPLICATE_FAULT_NAME                      = A fault with the name {0} has already been defined for the {1} 0peration. Check that every fault defined for this operation has a unique name.
_PART_NO_ELEMENT_OR_TYPE                   = The part {0} does not have a type defined. Every part must specify a type from some type system. The type can be specified using the built in 'element' or 'type' attributes or may be specified using an extension attribute.
_PART_BOTH_ELEMENT_AND_TYPE                = The part {0} has both an element and a type defined. Every part must only have an element or a type defined.
_PART_INVALID_ELEMENT                      = The part {0} has an invalid value {1} defined for its element. Element declarations must refer to valid values defined in a schema.
_PART_INVALID_TYPE                         = The part {0} has an invalid value {1} defined for its type. Type declarations must refer to valid values defined in a schema.
_DUPLICATE_OPERATION_FOR_PORTTYPE          = An operation with the name {0} has already been defined for the {1} port type. Every operation defined for a port type must have a unique name. 
_SERVICE_NAME_ALREADY_DEFINED              = A Service with the name {0} has already been defined. Every service in the WSDL document must have a unique name.
_BINDING_NAME_ALREADY_DEFINED              = A binding with the name {0} has already been defined. Every binding in the WSDL document must have a unique name.
_MESSAGE_NAME_ALREADY_DEFINED              = A message with the name {0} has already been defined. Every message in the WSDL document must have a unique name.
_PORTTYPE_NAME_ALREADY_DEFINED             = A port type with the name {0} has already been defined. Every port type in the WSDL document must have a unique name.
_MORE_THEN_ONE_ADDRESS_PORT                = An address has already been defined for port {0}. Each port can have only one address defined.
_NO_ADDRESS_PORT                           = The port {0} has no address defined. Each port must define one address.
_PORT_NAME_NOT_UNIQUE                      = A port with the name {0} has already been defined. Every port in the WSDL document must have a unique name.
_OPERATION_NO_INPUT_OR_OUTPUT              = No input or output element has been defined for the {0} operation. An input element, an output element, or both must be defined for every operation.
_WARN_SOAPENC_IMPORTED_PART                = The part {0} uses an element or type from the SOAP encoding namespace but the namespace has not been imported. The SOAP encoding namespace should be imported with an import statement before it is used.
_WARN_SOAPENC_IMPORTED_SCHEMA              = The inline schema uses an element or type from the SOAP encoding namespace but the namespace has not been imported. The SOAP encoding namespace should be imported with an import statement before it is used.
_REFERENCED_FILE_CONTAINS_ERRORS           = Referenced file contains errors ({0}).
_WARN_OLD_SCHEMA_NAMESPACE                 = An old version of the schema namespace has been specified. {0} is the schema namespace that should be used.
_ERROR_MULTIPLE_TYPES_DEFINED              = A types section has already been defined. Only one types element is allowed.
_WARN_WRONG_NS_ON_IMPORT                   = The file cannot be imported because the namespace {0} does not match the imported document''s target namespace {1}.
!-- Referenced file error
!-- Note to translator - _REF_FILE_ERROR_MESSAGE needs a trailing space as another message may follow.
_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}). 
