1/*
2 * Copyright (c) 2004, 2015, 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
26package javax.xml.soap;
27
28import javax.xml.namespace.QName;
29
30/**
31 * The definition of constants pertaining to the SOAP protocol.
32 *
33 * @since 1.6
34 */
35public interface SOAPConstants {
36    /**
37     * Used to create {@code MessageFactory} instances that create
38     * {@code SOAPMessages} whose concrete type is based on the
39     * {@code Content-Type} MIME header passed to the
40     * {@code createMessage} method. If no {@code Content-Type}
41     * header is passed then the {@code createMessage} may throw an
42     * {@code IllegalArgumentException} or, in the case of the no
43     * argument version of {@code createMessage}, an
44     * {@code UnsupportedOperationException}.
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} instances that create
52     * {@code SOAPMessages} 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} instances that create
60     * {@code SOAPMessages} 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} in the
97     * {@code URI_NS_SOAP_ENVELOPE} namespace and set to the value
98     * {@code URI_NS_SOAP_ENCODING} 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} 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} 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}
204