1 /*
   2  * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javax.xml.soap;
  27 
  28 import javax.xml.namespace.QName;
  29 
  30 /**
  31  * The definition of constants pertaining to the SOAP protocol.
  32  *
  33  * @since 1.6
  34  */
  35 public interface SOAPConstants {
  36     /**
  37      * Used to create <code>MessageFactory</code> instances that create
  38      * <code>SOAPMessages</code> whose concrete type is based on the
  39      * <code>Content-Type</code> MIME header passed to the
  40      * <code>createMessage</code> method. If no <code>Content-Type</code>
  41      * header is passed then the <code>createMessage</code> may throw an
  42      * <code>IllegalArgumentException</code> or, in the case of the no
  43      * argument version of <code>createMessage</code>, an
  44      * <code>UnsupportedOperationException</code>.
  45      *
  46      * @since  1.6, SAAJ 1.3
  47      */
  48     public static final String DYNAMIC_SOAP_PROTOCOL = "Dynamic Protocol";
  49 
  50     /**
  51      * Used to create <code>MessageFactory</code> instances that create
  52      * <code>SOAPMessages</code> whose behavior supports the SOAP 1.1  specification.
  53      *
  54      * @since  1.6, SAAJ 1.3
  55      */
  56     public static final String SOAP_1_1_PROTOCOL = "SOAP 1.1 Protocol";
  57 
  58     /**
  59      * Used to create <code>MessageFactory</code> instances that create
  60      * <code>SOAPMessages</code> whose behavior supports the SOAP 1.2
  61      * specification
  62      *
  63      * @since  1.6, SAAJ 1.3
  64      */
  65     public static final String SOAP_1_2_PROTOCOL = "SOAP 1.2 Protocol";
  66 
  67     /**
  68      * The default protocol: SOAP 1.1 for backwards compatibility.
  69      *
  70      * @since 1.6, SAAJ 1.3
  71      */
  72     public static final String DEFAULT_SOAP_PROTOCOL = SOAP_1_1_PROTOCOL;
  73 
  74     /**
  75      * The namespace identifier for the SOAP 1.1 envelope.
  76      * @since 1.6, SAAJ 1.3
  77      */
  78     public static final String
  79                 URI_NS_SOAP_1_1_ENVELOPE = "http://schemas.xmlsoap.org/soap/envelope/";
  80     /**
  81      * The namespace identifier for the SOAP 1.2 envelope.
  82      * @since 1.6, SAAJ 1.3
  83      */
  84     public static final String
  85                 URI_NS_SOAP_1_2_ENVELOPE = "http://www.w3.org/2003/05/soap-envelope";
  86 
  87     /**
  88      * The namespace identifier for the SOAP 1.1 envelope, All SOAPElements in this
  89      * namespace are defined by the SOAP 1.1 specification.
  90      */
  91     public static final String
  92         URI_NS_SOAP_ENVELOPE = URI_NS_SOAP_1_1_ENVELOPE;
  93 
  94     /**
  95      * The namespace identifier for the SOAP 1.1 encoding.
  96      * An attribute named <code>encodingStyle</code> in the
  97      * <code>URI_NS_SOAP_ENVELOPE</code> namespace and set to the value
  98      * <code>URI_NS_SOAP_ENCODING</code> can be added to an element to indicate
  99      * that it is encoded using the rules in section 5 of the SOAP 1.1
 100      * specification.
 101      */
 102     public static final String
 103         URI_NS_SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
 104 
 105     /**
 106      * The namespace identifier for the SOAP 1.2 encoding.
 107      * @since 1.6, SAAJ 1.3
 108      */
 109     public static final String
 110         URI_NS_SOAP_1_2_ENCODING = "http://www.w3.org/2003/05/soap-encoding";
 111 
 112     /**
 113      * The media type  of the <code>Content-Type</code> MIME header in SOAP 1.1.
 114      * @since 1.6, SAAJ 1.3
 115      */
 116     public static final String
 117         SOAP_1_1_CONTENT_TYPE = "text/xml";
 118 
 119     /**
 120      * The media type  of the <code>Content-Type</code> MIME header in SOAP 1.2.
 121      * @since 1.6, SAAJ 1.3
 122      */
 123     public static final String
 124         SOAP_1_2_CONTENT_TYPE = "application/soap+xml";
 125 
 126     /**
 127      * The URI identifying the next application processing a SOAP request as the intended
 128      * actor for a SOAP 1.1 header entry (see section 4.2.2 of the SOAP 1.1 specification).
 129      * <p>
 130      * This value can be passed to
 131      * {@link SOAPHeader#examineMustUnderstandHeaderElements(String)},
 132      * {@link SOAPHeader#examineHeaderElements(String)} and
 133      * {@link SOAPHeader#extractHeaderElements(String)}
 134      */
 135     public static final String
 136         URI_SOAP_ACTOR_NEXT = "http://schemas.xmlsoap.org/soap/actor/next";
 137 
 138     /**
 139      * The URI identifying the next application processing a SOAP request as the intended
 140      * role for a SOAP 1.2 header entry (see section 2.2 of part 1 of the SOAP 1.2
 141      * specification).
 142      * @since 1.6, SAAJ 1.3
 143      */
 144     public static final String
 145         URI_SOAP_1_2_ROLE_NEXT = URI_NS_SOAP_1_2_ENVELOPE + "/role/next";
 146 
 147     /**
 148      * The URI specifying the role None in SOAP 1.2.
 149      * @since 1.6, SAAJ 1.3
 150      */
 151     public static final String
 152         URI_SOAP_1_2_ROLE_NONE = URI_NS_SOAP_1_2_ENVELOPE + "/role/none";
 153 
 154     /**
 155      * The URI identifying the ultimate receiver of the SOAP 1.2 message.
 156      * @since 1.6, SAAJ 1.3
 157      */
 158     public static final String
 159         URI_SOAP_1_2_ROLE_ULTIMATE_RECEIVER =
 160             URI_NS_SOAP_1_2_ENVELOPE + "/role/ultimateReceiver";
 161 
 162     /**
 163      * The default namespace prefix for http://www.w3.org/2003/05/soap-envelope
 164      * @since 1.6, SAAJ 1.3
 165      */
 166     public static final String SOAP_ENV_PREFIX = "env";
 167 
 168     /**
 169      * SOAP 1.2 VersionMismatch Fault
 170      * @since 1.6, SAAJ 1.3
 171      */
 172     public static final QName SOAP_VERSIONMISMATCH_FAULT =
 173          new QName(URI_NS_SOAP_1_2_ENVELOPE, "VersionMismatch", SOAP_ENV_PREFIX);
 174 
 175     /**
 176      * SOAP 1.2 MustUnderstand Fault
 177      * @since 1.6, SAAJ 1.3
 178      */
 179     public static final QName SOAP_MUSTUNDERSTAND_FAULT =
 180          new QName(URI_NS_SOAP_1_2_ENVELOPE, "MustUnderstand", SOAP_ENV_PREFIX);
 181 
 182     /**
 183      * SOAP 1.2 DataEncodingUnknown Fault
 184      * @since 1.6, SAAJ 1.3
 185      */
 186     public static final QName SOAP_DATAENCODINGUNKNOWN_FAULT =
 187          new QName(URI_NS_SOAP_1_2_ENVELOPE, "DataEncodingUnknown", SOAP_ENV_PREFIX);
 188 
 189     /**
 190      * SOAP 1.2 Sender Fault
 191      * @since 1.6, SAAJ 1.3
 192      */
 193     public static final QName SOAP_SENDER_FAULT =
 194          new QName(URI_NS_SOAP_1_2_ENVELOPE, "Sender", SOAP_ENV_PREFIX);
 195 
 196     /**
 197      * SOAP 1.2 Receiver Fault
 198      * @since 1.6, SAAJ 1.3
 199      */
 200     public static final QName SOAP_RECEIVER_FAULT =
 201          new QName(URI_NS_SOAP_1_2_ENVELOPE, "Receiver", SOAP_ENV_PREFIX);
 202 
 203 }