1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
/* * $Id: SOAPHeader.java,v 1.5.2.12 2004/11/17 13:59:28 vj135062 Exp $ * $Revision: 1.5.2.12 $ * $Date: 2004/11/17 13:59:28 $ */ /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.xml.soap; import java.util.Iterator; import javax.xml.namespace.QName; /** * A representation of the SOAP header * element. A SOAP header element consists of XML data that affects * the way the application-specific content is processed by the message * provider. For example, transaction semantics, authentication information, * and so on, can be specified as the content of a <code>SOAPHeader</code> * object. * <P> * A <code>SOAPEnvelope</code> object contains an empty * <code>SOAPHeader</code> object by default. If the <code>SOAPHeader</code> * object, which is optional, is not needed, it can be retrieved and deleted * with the following line of code. The variable <i>se</i> is a * <code>SOAPEnvelope</code> object. * <PRE> * se.getHeader().detachNode(); * </PRE> * * A <code>SOAPHeader</code> object is created with the <code>SOAPEnvelope</code> * method <code>addHeader</code>. This method, which creates a new header and adds it * to the envelope, may be called only after the existing header has been removed. * * <PRE> * se.getHeader().detachNode(); * SOAPHeader sh = se.addHeader(); * </PRE> * <P> * A <code>SOAPHeader</code> object can have only <code>SOAPHeaderElement</code> * objects as its immediate children. The method <code>addHeaderElement</code> * creates a new <code>HeaderElement</code> object and adds it to the * <code>SOAPHeader</code> object. In the following line of code, the * argument to the method <code>addHeaderElement</code> is a <code>Name</code> * object that is the name for the new <code>HeaderElement</code> object. * <PRE> * SOAPHeaderElement shElement = sh.addHeaderElement(name); * </PRE> * * @see SOAPHeaderElement */ public interface SOAPHeader extends SOAPElement { /** * Creates a new <code>SOAPHeaderElement</code> object initialized with the * specified name and adds it to this <code>SOAPHeader</code> object. * * @param name a <code>Name</code> object with the name of the new * <code>SOAPHeaderElement</code> object * @return the new <code>SOAPHeaderElement</code> object that was * inserted into this <code>SOAPHeader</code> object * @exception SOAPException if a SOAP error occurs * @see SOAPHeader#addHeaderElement(javax.xml.namespace.QName) */ public SOAPHeaderElement addHeaderElement(Name name) throws SOAPException; /** * Creates a new <code>SOAPHeaderElement</code> object initialized with the * specified qname and adds it to this <code>SOAPHeader</code> object. * * @param qname a <code>QName</code> object with the qname of the new * <code>SOAPHeaderElement</code> object * @return the new <code>SOAPHeaderElement</code> object that was * inserted into this <code>SOAPHeader</code> object * @exception SOAPException if a SOAP error occurs * @see SOAPHeader#addHeaderElement(Name) * @since SAAJ 1.3 */ public SOAPHeaderElement addHeaderElement(QName qname) throws SOAPException; /** * Returns an <code>Iterator</code> over all the <code>SOAPHeaderElement</code> objects * in this <code>SOAPHeader</code> object * that have the specified <i>actor</i> and that have a MustUnderstand attribute * whose value is equivalent to <code>true</code>. * <p> * In SOAP 1.2 the <i>env:actor</i> attribute is replaced by the <i>env:role</i> * attribute, but with essentially the same semantics. * * @param actor a <code>String</code> giving the URI of the <code>actor</code> / <code>role</code> * for which to search * @return an <code>Iterator</code> object over all the * <code>SOAPHeaderElement</code> objects that contain the specified * <code>actor</code> / <code>role</code> and are marked as MustUnderstand * @see #examineHeaderElements * @see #extractHeaderElements * @see SOAPConstants#URI_SOAP_ACTOR_NEXT * * @since SAAJ 1.2 */ public Iterator examineMustUnderstandHeaderElements(String actor); /** * Returns an <code>Iterator</code> over all the <code>SOAPHeaderElement</code> objects * in this <code>SOAPHeader</code> object * that have the specified <i>actor</i>. * * An <i>actor</i> is a global attribute that indicates the intermediate * parties that should process a message before it reaches its ultimate * receiver. An actor receives the message and processes it before sending * it on to the next actor. The default actor is the ultimate intended * recipient for the message, so if no actor attribute is included in a * <code>SOAPHeader</code> object, it is sent to the ultimate receiver * along with the message body. * <p> * In SOAP 1.2 the <i>env:actor</i> attribute is replaced by the <i>env:role</i> * attribute, but with essentially the same semantics. * * @param actor a <code>String</code> giving the URI of the <code>actor</code> / <code>role</code> * for which to search * @return an <code>Iterator</code> object over all the * <code>SOAPHeaderElement</code> objects that contain the specified * <code>actor</code> / <code>role</code> * @see #extractHeaderElements * @see SOAPConstants#URI_SOAP_ACTOR_NEXT */ public Iterator examineHeaderElements(String actor); /** * Returns an <code>Iterator</code> over all the <code>SOAPHeaderElement</code> objects * in this <code>SOAPHeader</code> object * that have the specified <i>actor</i> and detaches them * from this <code>SOAPHeader</code> object. * <P> * This method allows an actor to process the parts of the * <code>SOAPHeader</code> object that apply to it and to remove * them before passing the message on to the next actor. * <p> * In SOAP 1.2 the <i>env:actor</i> attribute is replaced by the <i>env:role</i> * attribute, but with essentially the same semantics. * * @param actor a <code>String</code> giving the URI of the <code>actor</code> / <code>role</code> * for which to search * @return an <code>Iterator</code> object over all the * <code>SOAPHeaderElement</code> objects that contain the specified * <code>actor</code> / <code>role</code> * * @see #examineHeaderElements * @see SOAPConstants#URI_SOAP_ACTOR_NEXT */ public Iterator extractHeaderElements(String actor); /** * Creates a new NotUnderstood <code>SOAPHeaderElement</code> object initialized * with the specified name and adds it to this <code>SOAPHeader</code> object. * This operation is supported only by SOAP 1.2. * * @param name a <code>QName</code> object with the name of the * <code>SOAPHeaderElement</code> object that was not understood. * @return the new <code>SOAPHeaderElement</code> object that was * inserted into this <code>SOAPHeader</code> object * @exception SOAPException if a SOAP error occurs. * @exception UnsupportedOperationException if this is a SOAP 1.1 Header. * @since SAAJ 1.3 */ public SOAPHeaderElement addNotUnderstoodHeaderElement(QName name) throws SOAPException; /** * Creates a new Upgrade <code>SOAPHeaderElement</code> object initialized * with the specified List of supported SOAP URIs and adds it to this * <code>SOAPHeader</code> object. * This operation is supported on both SOAP 1.1 and SOAP 1.2 header. * * @param supportedSOAPURIs an <code>Iterator</code> object with the URIs of SOAP * versions supported. * @return the new <code>SOAPHeaderElement</code> object that was * inserted into this <code>SOAPHeader</code> object * @exception SOAPException if a SOAP error occurs. * @since SAAJ 1.3 */ public SOAPHeaderElement addUpgradeHeaderElement(Iterator supportedSOAPURIs) throws SOAPException; /** * Creates a new Upgrade <code>SOAPHeaderElement</code> object initialized * with the specified array of supported SOAP URIs and adds it to this * <code>SOAPHeader</code> object. * This operation is supported on both SOAP 1.1 and SOAP 1.2 header. * * @param supportedSoapUris an array of the URIs of SOAP versions supported. * @return the new <code>SOAPHeaderElement</code> object that was * inserted into this <code>SOAPHeader</code> object * @exception SOAPException if a SOAP error occurs. * @since SAAJ 1.3 */ public SOAPHeaderElement addUpgradeHeaderElement(String[] supportedSoapUris) throws SOAPException; /** * Creates a new Upgrade <code>SOAPHeaderElement</code> object initialized * with the specified supported SOAP URI and adds it to this * <code>SOAPHeader</code> object. * This operation is supported on both SOAP 1.1 and SOAP 1.2 header. * * @param supportedSoapUri the URI of SOAP the version that is supported. * @return the new <code>SOAPHeaderElement</code> object that was * inserted into this <code>SOAPHeader</code> object * @exception SOAPException if a SOAP error occurs. * @since SAAJ 1.3 */ public SOAPHeaderElement addUpgradeHeaderElement(String supportedSoapUri) throws SOAPException; /** * Returns an <code>Iterator</code> over all the <code>SOAPHeaderElement</code> objects * in this <code>SOAPHeader</code> object. * * @return an <code>Iterator</code> object over all the * <code>SOAPHeaderElement</code> objects contained by this * <code>SOAPHeader</code> * @see #extractAllHeaderElements * * @since SAAJ 1.2 */ public Iterator examineAllHeaderElements(); /** * Returns an <code>Iterator</code> over all the <code>SOAPHeaderElement</code> objects * in this <code>SOAPHeader</code> object and detaches them * from this <code>SOAPHeader</code> object. * * @return an <code>Iterator</code> object over all the * <code>SOAPHeaderElement</code> objects contained by this * <code>SOAPHeader</code> * * @see #examineAllHeaderElements * * @since SAAJ 1.2 */ public Iterator extractAllHeaderElements(); }