⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soapheaderelement.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
/* * Copyright 2001-2004 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. */package org.apache.axis.message;import org.apache.axis.AxisFault;import org.apache.axis.Constants;import org.apache.axis.encoding.DeserializationContext;import org.apache.axis.encoding.SerializationContext;import org.apache.axis.soap.SOAPConstants;import org.apache.axis.utils.Messages;import org.w3c.dom.Element;import org.w3c.dom.NamedNodeMap;import org.xml.sax.Attributes;import javax.xml.namespace.QName;import javax.xml.soap.Name;import javax.xml.soap.SOAPElement;import javax.xml.soap.SOAPException;/** * A simple header element abstraction.  Extends MessageElement with * header-specific stuff like mustUnderstand, actor, and a 'processed' flag. * * @author Glen Daniels (gdaniels@apache.org) * @author Glyn Normington (glyn@apache.org) */public class SOAPHeaderElement extends MessageElement    implements javax.xml.soap.SOAPHeaderElement {    protected boolean   processed = false;    protected String    actor = "http://schemas.xmlsoap.org/soap/actor/next";    protected boolean   mustUnderstand = false;    protected boolean   relay = false;    public SOAPHeaderElement(String namespace, String localPart)     {        super(namespace, localPart);    }    public SOAPHeaderElement(Name name)     {        super(name);    }    public SOAPHeaderElement(QName qname)     {        super(qname);    }    public SOAPHeaderElement(String namespace, String localPart,                              Object value)     {        super(namespace, localPart, value);    }        public SOAPHeaderElement(QName qname, Object value)    {        super(qname, value);    }    public SOAPHeaderElement(Element elem)     {        super(elem);        // FIXME : This needs to come from someplace reasonable, perhaps        // TLS (SOAPConstants.getCurrentVersion() ?)        SOAPConstants soapConstants = getSOAPConstants();        String val = elem.getAttributeNS(soapConstants.getEnvelopeURI(),                                         Constants.ATTR_MUST_UNDERSTAND);        try {            setMustUnderstandFromString(val, (soapConstants ==                                               SOAPConstants.SOAP12_CONSTANTS));        } catch (AxisFault axisFault) {            // Log the bad MU value, since this constructor can't throw            log.error(axisFault);        }        QName roleQName = soapConstants.getRoleAttributeQName();        actor = elem.getAttributeNS(roleQName.getNamespaceURI(),                                    roleQName.getLocalPart());//        if (actor == null) {//            actor = "";//        }                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {            String relayVal = elem.getAttributeNS(soapConstants.getEnvelopeURI(),                                                  Constants.ATTR_RELAY);            relay = ((relayVal != null) && (relayVal.equals("true") || relayVal.equals("1"))) ? true : false;        }    }    public void setParentElement(SOAPElement parent) throws SOAPException     {        if(parent == null) {            throw new IllegalArgumentException(Messages.getMessage("nullParent00"));        }        // migration aid        if (parent instanceof SOAPEnvelope) {            log.warn(Messages.getMessage("bodyHeaderParent"));            parent = ((SOAPEnvelope)parent).getHeader();        }        if (!(parent instanceof SOAPHeader)) {            throw new IllegalArgumentException(Messages.getMessage("illegalArgumentException00"));        }        super.setParentElement(parent);    }    public SOAPHeaderElement(String namespace,                             String localPart,                             String prefix,                             Attributes attributes,                             DeserializationContext context)        throws AxisFault    {        super(namespace, localPart, prefix, attributes, context);        SOAPConstants soapConstants = getSOAPConstants();        // Check for mustUnderstand        String val = attributes.getValue(soapConstants.getEnvelopeURI(),                                         Constants.ATTR_MUST_UNDERSTAND);        setMustUnderstandFromString(val, (soapConstants ==                                           SOAPConstants.SOAP12_CONSTANTS));        QName roleQName = soapConstants.getRoleAttributeQName();        actor = attributes.getValue(roleQName.getNamespaceURI(),                                    roleQName.getLocalPart());//        if (actor == null) {//            actor = "";//        }        if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {            String relayVal = attributes.getValue(soapConstants.getEnvelopeURI(),                                                  Constants.ATTR_RELAY);            relay = ((relayVal != null) && (relayVal.equals("true") || relayVal.equals("1"))) ? true : false;        }        processed = false;        alreadySerialized = true;    }    private void setMustUnderstandFromString(String val, boolean isSOAP12)         throws AxisFault {        if (val != null && val.length() > 0) {            if ("0".equals(val)) {                mustUnderstand = false;            } else if ("1".equals(val)) {                mustUnderstand = true;            } else if (isSOAP12) {                if ("true".equalsIgnoreCase(val)) {                    mustUnderstand = true;                } else if ("false".equalsIgnoreCase(val)) {                    mustUnderstand = false;                } else {                    throw new AxisFault(                            Messages.getMessage("badMUVal",                                                val,                                                new QName(namespaceURI,                                                          name).toString()));                }            } else {                throw new AxisFault(                        Messages.getMessage("badMUVal",                                            val,                                            new QName(namespaceURI,                                                      name).toString()));            }        }    }        public boolean getMustUnderstand() { return( mustUnderstand ); }    public void setMustUnderstand(boolean b) {        mustUnderstand = b ;    }    public String getActor() { return( actor ); }    public void setActor(String a) {        actor = a ;    }        public String getRole() { return( actor ); }    public void setRole(String a) {        actor = a ;    }    public boolean getRelay() {        return relay;    }    public void setRelay(boolean relay) {        this.relay = relay;    }    public void setProcessed(boolean value) {        processed = value ;    }    public boolean isProcessed() {        return( processed );    }    boolean alreadySerialized = false;    /** Subclasses can override     */    protected void outputImpl(SerializationContext context) throws Exception {        if (!alreadySerialized) {            SOAPConstants soapVer = getSOAPConstants();            QName roleQName = soapVer.getRoleAttributeQName();            if (actor != null) {                setAttribute(roleQName.getNamespaceURI(),                             roleQName.getLocalPart(), actor);            }                        String val;            if (context.getMessageContext() != null && context.getMessageContext().getSOAPConstants() == SOAPConstants.SOAP12_CONSTANTS)                val = mustUnderstand ? "true" : "false";            else                val = mustUnderstand ? "1" : "0";            setAttribute(soapVer.getEnvelopeURI(),                         Constants.ATTR_MUST_UNDERSTAND,                         val);                        if (soapVer == SOAPConstants.SOAP12_CONSTANTS && relay) {                setAttribute(soapVer.getEnvelopeURI(), Constants.ATTR_RELAY,                             "true");            }        }        super.outputImpl(context);    }    public NamedNodeMap getAttributes() {        makeAttributesEditable();        SOAPConstants soapConstants = getSOAPConstants();        String mustUnderstand = attributes.getValue(soapConstants.getEnvelopeURI(),                                         Constants.ATTR_MUST_UNDERSTAND);        QName roleQName = soapConstants.getRoleAttributeQName();        String actor = attributes.getValue(roleQName.getNamespaceURI(),roleQName.getLocalPart());                if(mustUnderstand == null){            if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {                setAttributeNS(soapConstants.getEnvelopeURI(),                             Constants.ATTR_MUST_UNDERSTAND,"false");            } else {                setAttributeNS(soapConstants.getEnvelopeURI(),                             Constants.ATTR_MUST_UNDERSTAND,"0");            }        }        if(actor == null){            setAttributeNS(roleQName.getNamespaceURI(),                         roleQName.getLocalPart(), this.actor);        }        return super.getAttributes();    }    private SOAPConstants getSOAPConstants() {        SOAPConstants soapConstants = null;        if (context != null) {            return context.getSOAPConstants();        }        if (getNamespaceURI() != null &&                getNamespaceURI().equals(SOAPConstants.SOAP12_CONSTANTS.getEnvelopeURI())) {            soapConstants = SOAPConstants.SOAP12_CONSTANTS;        }        if (soapConstants == null && getEnvelope() != null) {            soapConstants = getEnvelope().getSOAPConstants();        }        if (soapConstants == null) {            soapConstants = SOAPConstants.SOAP11_CONSTANTS;        }        return soapConstants;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -