/*
* Copyright 2006 the original author or authors.
*
* 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.
*/
package org.springframework.ws.soap;
import javax.xml.namespace.QName;
/**
* Interface that defines a specific version of the SOAP specification. Contains properties for elements that make up a
* soap envelope.
*
* @author Arjen Poutsma
* @see #SOAP_11
* @see #SOAP_12
* @since 1.0.0
*/
public interface SoapVersion {
/**
* Represents version 1.1 of the SOAP specification.
*
* @see <a href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/">SOAP 1.1 specification</a>
*/
SoapVersion SOAP_11 = new SoapVersion() {
private static final String ENVELOPE_NAMESPACE_URI = "http://schemas.xmlsoap.org/soap/envelope/";
private static final String NEXT_ROLE_URI = "http://schemas.xmlsoap.org/soap/actor/next";
private static final String CONTENT_TYPE = "text/xml";
private QName ENVELOPE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Envelope");
private QName HEADER_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Header");
private QName BODY_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Body");
private QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Fault");
private QName MUST_UNDERSTAND_ATTRIBUTE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "mustUnderstand");
private QName ACTOR_NAME = new QName(ENVELOPE_NAMESPACE_URI, "actor");
private QName CLIENT_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Client");
private QName SERVER_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Server");
private QName MUST_UNDERSTAND_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "MustUnderstand");
private QName VERSION_MISMATCH_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "VersionMismatch");
public QName getBodyName() {
return BODY_NAME;
}
public QName getEnvelopeName() {
return ENVELOPE_NAME;
}
public String getEnvelopeNamespaceUri() {
return ENVELOPE_NAMESPACE_URI;
}
public QName getFaultName() {
return FAULT_NAME;
}
public QName getHeaderName() {
return HEADER_NAME;
}
public String getNextActorOrRoleUri() {
return NEXT_ROLE_URI;
}
public String getNoneActorOrRoleUri() {
return "";
}
public QName getServerOrReceiverFaultName() {
return SERVER_FAULT_NAME;
}
public String getUltimateReceiverRoleUri() {
return "";
}
public QName getActorOrRoleName() {
return ACTOR_NAME;
}
public QName getClientOrSenderFaultName() {
return CLIENT_FAULT_NAME;
}
public String getContentType() {
return CONTENT_TYPE;
}
public QName getMustUnderstandAttributeName() {
return MUST_UNDERSTAND_ATTRIBUTE_NAME;
}
public QName getMustUnderstandFaultName() {
return MUST_UNDERSTAND_FAULT_NAME;
}
public QName getVersionMismatchFaultName() {
return VERSION_MISMATCH_FAULT_NAME;
}
public String toString() {
return "SOAP 1.1";
}
};
/**
* Represents version 1.2 of the SOAP specification.
*
* @see <a href="http://www.w3.org/TR/soap12-part0/">SOAP 1.2 specification</a>
*/
SoapVersion SOAP_12 = new SoapVersion() {
private static final String ENVELOPE_NAMESPACE_URI = "http://www.w3.org/2003/05/soap-envelope";
private static final String NEXT_ROLE_URI = ENVELOPE_NAMESPACE_URI + "/role/next";
private static final String NONE_ROLE_URI = ENVELOPE_NAMESPACE_URI + "/role/none";
private static final String ULTIMATE_RECEIVER_ROLE_URI = ENVELOPE_NAMESPACE_URI + "/role/ultimateReceiver";
private static final String CONTENT_TYPE = "application/soap+xml";
private QName ENVELOPE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Envelope");
private QName HEADER_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Header");
private QName BODY_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Body");
private QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Fault");
private QName MUST_UNDERSTAND_ATTRIBUTE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "mustUnderstand");
private QName ROLE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "role");
private QName SENDER_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Sender");
private QName RECEIVER_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Receiver");
private QName MUST_UNDERSTAND_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "MustUnderstand");
private QName VERSION_MISMATCH_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "VersionMismatch");
public QName getBodyName() {
return BODY_NAME;
}
public QName getEnvelopeName() {
return ENVELOPE_NAME;
}
public String getEnvelopeNamespaceUri() {
return ENVELOPE_NAMESPACE_URI;
}
public QName getFaultName() {
return FAULT_NAME;
}
public QName getHeaderName() {
return HEADER_NAME;
}
public String getNextActorOrRoleUri() {
return NEXT_ROLE_URI;
}
public String getNoneActorOrRoleUri() {
return NONE_ROLE_URI;
}
public QName getServerOrReceiverFaultName() {
return RECEIVER_FAULT_NAME;
}
public String getUltimateReceiverRoleUri() {
return ULTIMATE_RECEIVER_ROLE_URI;
}
public QName getActorOrRoleName() {
return ROLE_NAME;
}
public QName getClientOrSenderFaultName() {
return SENDER_FAULT_NAME;
}
public String getContentType() {
return CONTENT_TYPE;
}
public QName getMustUnderstandAttributeName() {
return MUST_UNDERSTAND_ATTRIBUTE_NAME;
}
public QName getMustUnderstandFaultName() {
return MUST_UNDERSTAND_FAULT_NAME;
}
public QName getVersionMismatchFaultName() {
return VERSION_MISMATCH_FAULT_NAME;
}
public String toString() {
return "SOAP 1.2";
}
};
/** Returns the qualified name for a SOAP body. */
QName getBodyName();
/** Returns the {@code Content-Type} MIME header for a SOAP message. */
String getContentType();
/** Returns the qualified name for a SOAP envelope. */
QName getEnvelopeName();
/** Returns the namespace URI for the SOAP envelope namespace. */
String getEnvelopeNamespaceUri();
/** Returns the qualified name for a SOAP fault. */
QName getFaultName();
/** Returns the qualified name for a SOAP header. */
QName getHeaderName();
/** Returns the qualified name of the SOAP {@code MustUnderstand} attribute. */
QName getMustUnderstandAttributeName();
/**
* Returns the URI indicating that a header element is intended for the next SOAP application that processes the
* message.
*/
String getNextActorOrRoleUri();
/** Returns the URI indicating that a header element should never be directly processed. */
String getNoneActorOrRoleUri();
/** Returns the qualified name of the {@code MustUnderstand} SOAP Fault value. */
QName getMustUnderstandFaultName();
/** Returns the qualified name of the Receiver/Server SOAP Fault value. */
QName getServerOrReceiverFaultName();
/** Returns the qualified name of the {@code VersionMismatch} SOAP Fault value. */
QName getVersionMismatchFaultName();
/** Returns the qualified name of the SOAP {@code actor}/{@code role} attribute. */
QName getActorOrRoleName();
/** Returns the qualified name of the Sender/Client SOAP Fault value. */
QName getClientOrSenderFaultName();
/**
* Returns the URI indicating that a header element should only be processed by nodes acting as the ultimate
* receiver of a message.
*/
String getUltimateReceiverRoleUri();
}