#/*
# * Copyright 2001-2008 The Apache Software Foundation.
# * 
# * Licensed under the Apache License, Version 2.0 (the "License");
# * you may not use this file except in compliance with the License.
# * You may obtain a copy of the License at
# * 
# *      http://www.apache.org/licenses/LICENSE-2.0
# * 
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *
# */

# Global base messages file.

#-- UDDI-specific messages
E_accountLimitExceeded=Save request exceeds the quantity limits for a given data type.
E_assertionNotFound=Publisher assertion cannot be identified in a save or delete operation.
E_authTokenExpired=Authentication token information has timed out.
E_authTokenRequired=Authentication token is missing or is invalid.
E_busy=The request cannot be processed at the current time.
E_categorizationNotAllowed=
E_fatalError=A serious technical error has occurred while processing the request.
E_historyDataNotAvailable=Requested history data is not available for the time period requested. 
E_invalidCategory=
E_invalidCompletionStatus=Assertion status value passed is unrecognized.
E_invalidCombination=Invalid find qualifier combination
E_invalidKeyPassed=An invalid key has been passed
E_invalidProjection=An attempt was made to save a businessEntity containing a service projection where the serviceKey does not belong to the business designated by the businessKey.
E_invalidTime=The time period, the date/time, or the pair of date/time is invalid.
E_invalidURLPassed=
E_invalidValue=A value that was passed in a keyValue attribute did not pass validation.
E_invalidValueAddressLine=Each addressLine element MAY be adorned with two optional descriptive attributes, keyName and keyValue. Both attributes MUST be present in each address line if a tModelKey is specified in the address structure. Elements with errors: 
E_keyRetired=The specified key was retired

E_keyUnavailable=The proposed key is in a partition that has already been assigned to some other publisher. 
E_languageError=Language error
E_messageTooLarge=The message is too large.
E_nameTooLong=The name is too large
E_operatorMismatch=Operator Mismatch
E_publisherCancelled=
E_requestDenied=Subscription cannot be renewed.
E_requestTimeout=The request could not be carried out because a needed Web service did not respond in a reasonable amount of time.
E_resultSetTooLarge=The UDDI node deems that a result set from an inquiry is too large, and requests to obtain the results are not honored, even using subsets.
E_secretUnknown=
E_success=
E_tokenAlreadyExists=Key already exists in transfer request
E_tooManyOptions=Too many options
E_transferAborted=Transfer Aborted
E_transferNotAllowed=The transfer request is not allowed
E_transferNotAllowedUnknownNode=The transfer request is not allowed because the destination node is not in the replication config.
E_transferBlocked=The transfer was blocked from it's originator (node to node transfer). 
E_unknownUser=The user ID and password pair passed in a get_authToken API is not known to the UDDI node or is not valid.
E_unrecognizedVersion=The value of the namespace attribute is unsupported by the node being queried.
E_unsupported=Unsupported feature or API.
E_unvalidatable=An attempt was made to reference a value set in a keyedReference whose tModel is categorized with the unvalidatable categorization.
E_userMismatch=An attempt was made to use the publishing API to change data that is controlled by another party. 
E_valueNotAllowed=A value did not pass validation because of contextual issues.


#-- General error messages
errors.stringEncoding=non-UTF8 token
errors.DatatypeFactor=Can't create a DatatypeFactory instance.
errors.Unspecified=An unspecified error occurred
errors.Unsupported=This version does not support this feature or API
errros.UnsupportedAuthenticator=This selected authenticator does not support AuthTokens.
errors.Unsupported.findQualifier=An invalid or unsupported findQualifier value was passed
errors.configuration.Retrieval=An error occurred attempting to retrieve configuration information
errors.install.AlreadyInstalled=It appears that the application is already installed.  Please un-install before proceeding.
errors.NullInput=No input was provided for this API call
errors.keyunavailable.BadPartition=The proposed key is not within the partition defined by owning publisher. If you're trying to create a new tModel in a new partition, try creating a tModel that ends in :keygenerator. Failing key 
errors.keyunavailable.KeyExists=The key used for the save operation already exists.  Another key must be chosen
errors.invalidkey.NullKey=The key cannot be null
errors.invalidkey.MalformedKey=The passed key does not conform to UDDI v3 rules
errors.invalidkey.KeyGenSuffix=The passed key generator key does not end with the appropriate suffix
errors.invalidkey.NoKeys=No keys passed.  At least one key must be passed
errors.invalidkey.ClerkNotFound=The clerk was not found for the given name
errors.invalidkey.DuplicateKey=A duplicate key was passed.  No duplicates are allowed
errors.invalidkey.PublisherNotFound=The publisher was not found for the given id
errors.invalidkey.EntityNotFound=The entity was not found for the given id
errors.invalidkey.BusinessNotFound=The business entity was not found for the given key
errors.invalidkey.ServiceNotFound=The business service was not found for the given key
errors.invalidkey.BindingTemplateNotFound=The binding template was not found for the given key
errors.invalidkey.TModelNotFound=The technical model was not found for the given key
errors.invalidkey.TModelNodeOwner=You've attempted to delete a tModel that is not owned by this node. Access the owning node to delete.
errors.invalidkey.ParentServiceNotFound=The business service parent was not found for the given key
errors.invalidkey.ParentBusinessNotFound=The business entity parent was not found for the given key
errors.invalidkey.ServiceKeyNotProvidedWithProjection=Attempting to project a service when the service key was not provided.  The non-owning businessEntity cannot generate a key for a projected service
errors.invalidkey.ProjectedServiceNotFound=Attempting to project a service when the service does not exist
errors.invalidkey.businessservice.ParentMismatch=The service being saved has a different parent business key then the one provided
errors.invalidkey.bindingtemplate.ParentMismatch=The binding template being saved has a different parent service key then the one provided
errors.invalidkey.SubscriptionNotFound=The subscription was not found for the given key
errors.invalidKey.KeysOwned=Either the to key for the from key must be specified on a keysOwned structure
errors.invalidkey.SubscripKeyNotFound=The subscriptionKey was not found for the given id
errors.invalidkey.NodeNotFound=The node was not found for the key given name
errors.invalidprojection.ParentMismatch=The supplied business key doesn't match the actual business key of the service being projected
errors.usermismatch.InvalidOwner=The user is not authorized to access the given entity
errors.usermismatch.InvalidOwnerParent=The user is not authorized to access the given parent entity
errors.config.InvalidTokenExpirationSetting=The authentication token expiration setting is missing or invalid, will default to 15 minutes. See juddiv3.properties file
errors.accessPoint.bindingtemplateRedirect.keynotexist=The access point contains a useType specifying a referenced binding template which does not exist.
errors.accessPoint.hostingRedirector.notaurl=The access point value is not a valid URL. This URL should be a URL to another UDDI registry
#-- Error messages related to entities and other data structures
errors.savebusiness.NoInput=At least one BusinessEntity must be provided
errors.saveservice.NoInput=At least one BusinessService must be provided
errors.savebinding.NoInput=At least one BindingTemplate must be provided
errors.saveclientsubscriptionKey.NoInput=The SubscriptionKey must be provided
errors.saveClerk.NoInput=At least one Clerk must be provided
errors.saveNodes.NoInput=At least one Node must be provided
errors.deleteNode.NoInput=A node id must be specified
errors.deleteNode.NotFound=The specified node could not be found.
errors.deleteClerk.NoInput=A clerk id must be specified
errors.deleteClerk.NotFound=The specified clerk if could not be found.
errors.savetmodel.NoInput=At least one tModel must be provided
errors.addpublisherassertions.NoInput=At least one publisherAssertion must be provided
errors.businessentity.NullInput=The businessEntity structure cannot be blank
errors.entity.SignedButNoKey=The entity has no key defined, which means I'll generate one for you, but the entity is signed and thus will become invalid after I add a generated key. Either specify your own key or omit the signature.
errors.businessservice.NullInput=The businessService structure cannot be blank
errors.bindingtemplate.NullInput=The bindingTemplate structure cannot be blank
errors.bindingtemplate.NoAccessPoint=A binding template must contain either an access point or a hosting redirector element, but not both
errors.tmodel.NullInput=The tModel structure cannot be blank
errors.tmodel.NoName=A tModel must contain a name
errors.tmodel.keygenerator.BadCategory=A Key Generator tModel must have exactly one 'types' category (categoryBag/keyedReference/value) whose value is 'keyGenerator'
errors.tmodel.keygenerator.RootKeyGen=A Key Generator cannot be added for the root publisher. Try signing in as a different user
errors.pubassertion.NullInput=The publisherAssertion structure cannot be blank
errors.pubassertion.BlankKeyedRef=The keyedReference of the publisherAssertion cannot be blank.  All fields must contain content.
errors.pubassertion.BlankFromKey=The fromKey of the publisherAssertion cannot be blank.
errors.pubassertion.BlankToKey=The toKey of the publisherAssertion cannot be blank.
errors.pubassertion.SameBusinessKey=The fromKey and toKey refer to the same business
errors.pubassertion.UserMismatch=The publisher does not own either referenced businessEntity of the publisherAssertion
errors.pubassertion.NoPubAssertions=No publisher assertions were passed.  At least one assertion must be passed
errors.pubassertion.AssertionNotFound=The publisher assertion was not found for the given key
errors.businessservices.NoInput=A businessServices collection must contain at least one businessService
errors.bindingtemplates.NoInput=A bindingTemplates collection must contain at least one bindingTemplate
errors.names.NoInput=At least one name is required
errors.names.TooLong=At least one name is required
errors.names.NoValue=A name was provided with no value
errors.names.LangTooLong=A name language was provided that is too long, only 26 characters are permitted.
errors.names.UseTypeTooLong=The field 'useType' must be less than 256 characters
errors.DescriptionTooLong=The field 'description' must be less than 256 characters
errors.keys.TooLong=Key lengths are limited to 255 characters or less
errors.url.overviewTooLong=Overview URLs are limited to 4096 characters
errors.accessPoint.TooLong=Access points are limited to 4096 characters
errors.sortCode.TooLong=Sort codes are limited to 10 characters
errors.keyname.TooLong=Key Names are limited to 255 characters
errors.phone.noinput=No input provided for phone value
errors.phone.TooLong=Phone numbers are limited to 50 characters
errors.email.TooLong=Email addresses are limited to 4096 characters
errors.email.noinput=No input provided for email
errors.hostingredirector.noinput=No input provided for hosting redirector
errors.hostingredirector.TooLong=The input provided for hosting redirector is too long, only 255 characters are allowed
errors.addressline.noinput=No input provided for address lines
errors.addressline.TooLong=Address lines are limited to 80 characters
errors.hostingredirector.keynotexist=When specifying a hosting redirector field, the referenced binding template must exist already
errors.keyvalue.TooLong=Key values are limited to 255 characters
errors.tmodel.ReferencedKeyDoesNotExist=The referenced tModel key does not exist. This can be caused when specifying a tModel key that is not defined and when jUDDI's referential integrity validation is enabled.
errors.tmodel.ReferentialIntegrityNullConfig=Configuration object is null, I won't be able to process referential integrity checks on tmodel keys
errors.tmodel.ReferentialIntegrityNullEM=The entity manager is null, I won't be able to process referential integrity checks on tmodel keys


errors.contacts.NoInput=At least one contact is required
errors.contact.NullInput=The contact structure cannot be blank
errors.contact.NoPersonName=The contact structure must contain at least one personName
errors.contact.NoAddressLine=Each contact address must contain at least one addressLine
errors.discurls.NoInput=A discoveryURLs collection must have at least one discoveryURL
errors.categorybag.NoInput=A category bag must have at least one keyedReference or keyedReferenceGroup
errors.identifierbag.NoInput=An identifier bag must have at least one keyedReference
errors.keyedreference.NullInput=The keyed reference (or group) cannot be blank
errors.keyedreference.NoTModelKey=The keyed reference (or group) must contain a tModel key
errors.keyedreference.NoKeyValue=The keyed reference (or group) must contain a key value
errors.keyedreference.NodeCategoryTModel=The node categorization tModel is not allowed
errors.tmodelinstdetails.NoInput=A tModelInstanceDetails structure must have at least one tModelInstanceInfo
errors.tmodelinstinfo.NullInput=The tModelInstanceInfo structure cannot be blank
errors.tmodelinstinfo.NoTModelKey=The tModelInstanceInfo structure must contain a tModel key
errors.instdetails.NoOverviewOrParms=The instanceDetails structure must contain either an overviewDoc or instanceParms
errors.instdetails.MaxLength=tModelInstanceInfo value must be no larger than 8192
errors.overviewdoc.NullInput=The overviewDoc structure cannot be blank
errors.overviewdoc.NoDescOrUrl=The overviewDoc structure must contain either a description or overviewURL
errors.findqualifiers.NoInput=The findQualifier collection must contain at least one findQualifier. Try 'approximateMatch'
errors.findqualifiers.DuplicateValue=A duplicate findQualifier was passed.  No duplicates are allowed
errors.findqualifiers.InvalidCombo=An invalid findQualifier combination occurred
errors.findbusiness.NoInput=At least one search criterion must be supplied. Try using '%' as a wild card with the a 'approximateMatch' find qualifer for everything
errors.findservice.NoInput=At least one name, categoryBag, find_tModel or tModelBag or name must be supplied
errors.findbinding.NoInput=At least one categoryBag, find_tModel or tModelBag must be supplied
errors.findtmodel.NoInput=At least one categoryBag, identifierBag or name must be supplied
errors.findrelatedbusiness.NoInput=At least one businessKey, fromKey or toKey must be supplied
errors.findrelatedbusiness.MultipleInput=Only one businessKey, fromKey or toKey can be supplied
errors.findrelatedbusiness.BlankKeyedRef=All fields of the keyedReference provided in find_relatedBusiness must contain values
errors.tmodelbag.NoInput=A tModel key must be supplied in the tModelBag
errors.keybag.NoInput=A key bag must have at least one key
errors.keybag.NullInput=Key bag cannot be null.
errors.discardtransfertoken.NoInput=A discard_transferToken request must contain either a transferToken or keyBag
errors.gettransfertoken.KeyExists=The key already exists in a transfer request
errors.gettransfertoken.InvalidEntity=The key refers to an invalid entity.  Only a BusinessEntity or TModel can be transferred
errors.transfertoken.NullInput=A transfer token must be supplied
errors.transferentities.TokenNotFound=The supplied transfer token was not found
errors.transferentities.TokenExpired=The supplied transfer token has expired
errors.transferentities.KeyMismatch=A supplied key does not match a key associated with the transfer request
errors.transferentities.KeySizeMismatch=The quantity of transfered keys must equal the number of keys in the request
errors.savesubscription.NoInput=At least one Subscription must be provided
errors.subscription.NullInput=The subscription structure cannot be blank
errors.subscription.BindingDoesntExist=The requested subscription has a binding key defined, however that binding template does not exist
errors.subscription.NoFilterOnNewSubscription=No subscription filter was provided on this new subscription request
errors.subscription.BlankFilter=A filter structure was provided but no filter criteria was specified
errors.subscription.TooManyFilters=Only one filter is allowed per subscription request
errors.subscription.expired=The expiration timestamp has already passed.
errors.subscription.maxrecordstoosmall=When specifying the maxium record, it must be greater than zero
errors.subscription.notificationintervalnotdefined=A notification interval must be specified and must be greater than 0ms
errors.getsubscriptionresult.SubscriptionExpired=The passed subscription has expired
errors.getsubscriptionresult.NullCoveragePeriod=The coverage period cannot be blank
errors.getsubscriptionresult.InvalidDateInCoveragePeriod=The coverage period must contain valid dates for start and end points
errors.getsubscriptionresult.StartPointAfterEndPoint=The start point in the coverage period cannot be later than the end point
errors.getsubscriptionresult.InvalidChunkToken=You have provided an invalid chunk token
errors.getsubscriptionresult.NonMatchingChunkToken=The provided chunk token does not match the subscription parameters
errors.getsubscriptionresult.ExpiredChunkToken=The provided chunk token has expired
errors.subscriptionnotifier.client=Client did not receive notification data
errors.getregisteredinfo.NoInfoSelection=The infoSelection argument is required
errors.valuesetvalidation.invalidcontent=The content for tModel value is invalid according to the valid value set defined.
errors.valuesetvalidation.invalidurl=The URL for validating a checked tModel value is invalid or empty
errors.valuesetvalidation.noinput=No input was provided
errors.valuesetvalidation.fatal=Unable to process the validation rule for the specified key. This can happen with a misconfiguration or a classpath issue.

#-- jUDDI-specific API messages
errors.AdminReqd=An account must have administrative privileges to perform this function
errors.savepublisher.NoInput=At least one Publisher must be provided
errors.savepublisher.AdminReqd=An account must have administrative privileges to save publishers
errors.save.maxBusinessesExceeded=The maximum allowed number of businesses are exceed for this publisher
errors.save.maxServicesExceeded=The maximum allowed number of services are exceed for this business
errors.save.maxBindingsExceeded=The maximum allowed number of bindings are exceed for this service
errors.save.maxTModelsExceeded=The maximum allowed number of tmodels are exceed for this publisher
errors.deletepublisher.AdminReqd=An account must have administrative privileges to perform this action
errors.publisher.NullInput=The Publisher structure cannot be blank
errors.publisher.NoAuthorizedName=A valid publisher authorized name was not specified
errors.publisher.NoPublisherName=A valid publisher name was not specified
errors.clerk.NullInput=The Clerk structure cannot be blank
errors.clerk.NullNodeInput=The Node structure on Clerk cannot be blank
errors.clerk.NoName=A valid clerk name was not specified
errors.clerk.NoPublisherName=A valid publisher name was not specified
errors.node.NullInput=The Node structure cannot be blank
errors.node.NoName=A valid node name was not specified
errors.node.NoClientName=A valid client name was not specified
errors.node.NoDescription=A description was not specified
errors.node.NoCT=A custody transfer url was not specified
errors.node.NoPUB=A publish url was not specified
errors.node.NoIN=A inquiry url was not specified
errors.node.NoSUBL=A subscription listener url was not specified
errors.node.NoSUB=A subscription url was not specified
errors.node.NoSec=A security url was not specified
errors.node.NoProxy=A transport proxy class must be specified. If you're not sure, use 'org.apache.juddi.v3.client.transport.JAXWSTransport'
errors.node.illegalProxyTransport=The transport proxy class is invalid. If you're not sure, use 'org.apache.juddi.v3.client.transport.JAXWSTransport'
errors.node.NoRMIData=When using org.apache.juddi.v3.client.transport.RMITransport the factory settings must be specified

#-- Authentication error messages
errors.auth.AuthRequired=Authentication is required for this API call
errors.auth.AuthInvalid=Invalid authentication information
errors.auth.AuthTokenExpired=The authentication token is expired
errors.auth.InvalidUserId=An invalid user identification was passed
errors.auth.InvalidCredentials=Invalid credentials were passed
errors.auth.NoPublisher=The user provided does not have a publishing account
errors.auth.cryptor.InvalidKey=Invalid Key Exception in crypting the password
errors.auth.cryptor.Padding=Padding Exception in crypting the password
errors.auth.cryptor.Algorithm=Algorithm Exception in crypting the password
errors.auth.cryptor.AlgorithmParam=Algorithm parameter Exception in crypting the password
errors.auth.cryptor.BlockSize=Block size Exception in crypting the password
errors.auth.cryptor.BadPadding=Bad Padding Exception in crypting the password

#-- Local transport error messages
errors.local.soapnotfound=A UDDI request was not found in the SOAP message
errors.local.serviceoperation=The UDDI service operation could not be identified
errors.local.generic=A UDDI generic attribute value was not found for the request.    UDDI generic attribute must be present
errors.local.serviceoperation.unsupported=The UDDI service operation specified in unknown or unsupported
errors.local.responseobject.unknown=The response object type is unknown
errors.local.registryunavailable=The registry is currently unavailable
errors.local.operation.notidentified=The UDDI service operation could not be identified
errors.local.inquiry.notsupported=The operation is not supported by the UDDI version 3 Inquiry API
errors.local.publish.notsupported=The operation is not supported by the UDDI version 3 Publish API
errors.local.security.notsupported=The operation is not supported by the UDDI version 3 Security API


notifications.smtp.default.subject=UDDI Subscription Notification for subscription 

notifications.smtp.userfriendly.subject=UDDI Subscription Notification for subscription 
notifications.smtp.userfriendly.body=Hello %s,<br><br>You are currently registered to receive subscription updates in the UDDI Node <b>%s</b> for %s. A change was registered that triggered an update notification to be sent. The attachment contains the XML containing the details of the change.<br><br><b>Summary of changes</b>: <br><br>%s
notifications.smtp.subscriptionDeleted=Hello %s, %s,<br><br>Your UDDI subscription was deleted. Attached is what the subscription was. It was deleted by %s, %s at %s. This node is %s.<br><br><a href="%s">Non-secure web site</a><br><a href="%s">Secure web site</a>
notifications.smtp.accountDeleted=Hello %s, %s,<br><br>Your account has been deleted by %s, %s at %s. This node is %s.<br><br><a href="%s">Non-secure web site</a><br><a href="%s">Secure web site</a>
notifications.smtp.accountDeleted.subject=UDDI Account Management
#username
#node
#search results or a specific item



#replication error messages
errors.replication.nodeNotSpecified=The requestor's node name must be specified
errors.replication.unknownNode=The requestor's node is NOT in the replication configuration graph. Access Denied
errors.replication.bothLimitsSpecified=responseLimitCount or responseLimitVector: A caller MAY place an upper bound on the number of change records he wishes to receive in response to this message by either providing a integer responseLimitCount, or, using responseLimitVector, indicating for each node in the graph the first change originating there that he does not wish to be returned.
errors.replication.negativeLimit=The specified response limit is either 0 or a negative number.
errors.replication.limitVectorNull=The high water mark vector limit specified OriginatingUSN is null or invalid
errors.replication.limitVectorNoNode=No node name was specified
errors.replication.configNodeNotFound=No specified node name is not currently listed as a Operator. Add it to the list and try again. Id:
errors.replication.configNull=No replication config was present in the message
errors.replication.contactNull=No replication contact was present in the message
errors.replication.configNodeLoop=In at least one edge, there is a loop where the sender is also the receiver. This is not allowed and just does not make sense
errors.deleteNode.InReplicationConfig=The node to be deleted is currently referenced in the replication configuration. You must revise the configuration before deleting the node, 
errors.usermismatch.InvalidNode=The user is not authorized to alter the given entity. It is not owned by this jUDDI node. Try your request again on the authoritative node.

errors.usermismatch.assertion=You have to be either the owner of the 'from' or 'to' business in order to delete a publisher assertion.
errors.assertionNotFound=The referenced publisher assertion isn't in the database!
errors.digitalsignature.validationfailure=The digital signature the following element failed to validate. Because of this, the request was rejected. Key and validation error as follows. 