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

📄 soapbody.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
/* * Copyright 2002-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.components.logger.LogFactory;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.apache.commons.logging.Log;import org.w3c.dom.Document;import org.w3c.dom.Element;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;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Locale;import java.util.Vector;/** * Holder for body elements. * * @author Glyn Normington (glyn@apache.org) */public class SOAPBody extends MessageElement    implements javax.xml.soap.SOAPBody {    private static Log log = LogFactory.getLog(SOAPBody.class.getName());    private SOAPConstants soapConstants;    private boolean disableFormatting = false;    private boolean doSAAJEncodingCompliance = false;    private static ArrayList knownEncodingStyles = new ArrayList();    static {        knownEncodingStyles.add(Constants.URI_SOAP11_ENC);        knownEncodingStyles.add(Constants.URI_SOAP12_ENC);        knownEncodingStyles.add("");        knownEncodingStyles.add(Constants.URI_SOAP12_NOENC);    }    SOAPBody(SOAPEnvelope env, SOAPConstants soapConsts) {       super(soapConsts.getEnvelopeURI(), Constants.ELEM_BODY);       soapConstants = soapConsts;        try {            setParentElement(env);        } catch (SOAPException ex) {            // class cast should never fail when parent is a SOAPEnvelope            log.fatal(Messages.getMessage("exception00"), ex);        }    }    public SOAPBody(String namespace, String localPart, String prefix,                    Attributes attributes, DeserializationContext context,                    SOAPConstants soapConsts) throws AxisFault {        super(namespace, localPart, prefix, attributes, context);        soapConstants = soapConsts;    }    public void setParentElement(SOAPElement parent) throws SOAPException {        if(parent == null) {            throw new IllegalArgumentException(Messages.getMessage("nullParent00"));         }        try {            SOAPEnvelope env = (SOAPEnvelope)parent;            super.setParentElement(env);            setEnvelope(env);        } catch (Throwable t) {            throw new SOAPException(t);        }    }    public void disableFormatting() {        this.disableFormatting = true;    }    public void setEncodingStyle(String encodingStyle) throws SOAPException {        if (encodingStyle == null) {            encodingStyle = "";        }        if (doSAAJEncodingCompliance) {            // Make sure this matches a known encodingStyle.  This is            if (!knownEncodingStyles.contains(encodingStyle))                throw new IllegalArgumentException(Messages.getMessage("badEncodingStyle1", encodingStyle));        }        super.setEncodingStyle(encodingStyle);    }    protected void outputImpl(SerializationContext context) throws Exception {        boolean oldPretty = context.getPretty();        if (!disableFormatting) {             context.setPretty(true);        } else {             context.setPretty(false);        }        List bodyElements = getChildren();        if (bodyElements == null || bodyElements.isEmpty()) {            // This is a problem.            // throw new Exception("No body elements!");            // If there are no body elements just return - it's ok that            // the body is empty        }        // Output <SOAP-ENV:Body>        context.startElement(new QName(soapConstants.getEnvelopeURI(),                                       Constants.ELEM_BODY),                             getAttributesEx());                if (bodyElements != null) {            Iterator e = bodyElements.iterator();            while (e.hasNext()) {                MessageElement body = (MessageElement)e.next();                body.output(context);                // Output this body element.            }        }                // Output multi-refs if appropriate        context.outputMultiRefs();                // Output </SOAP-ENV:Body>        context.endElement();        context.setPretty(oldPretty);    }    Vector getBodyElements() throws AxisFault {        initializeChildren();        return new Vector(getChildren());    }    SOAPBodyElement getFirstBody() throws AxisFault    {        if (!hasChildNodes())            return null;        return (SOAPBodyElement)getChildren().get(0);    }    void addBodyElement(SOAPBodyElement element)     {        if (log.isDebugEnabled())            log.debug(Messages.getMessage("addBody00"));        try {            addChildElement(element);        } catch (SOAPException ex) {            // class cast should never fail when parent is a SOAPBody            log.fatal(Messages.getMessage("exception00"), ex);        }    }    void removeBodyElement(SOAPBodyElement element)     {        if (log.isDebugEnabled())            log.debug(Messages.getMessage("removeBody00"));        removeChild( (MessageElement)element );    }    void clearBody()     {        removeContents();    }    SOAPBodyElement getBodyByName(String namespace, String localPart)        throws AxisFault    {        QName name = new QName(namespace, localPart);        return (SOAPBodyElement)getChildElement(name);    }    // JAXM methods    public javax.xml.soap.SOAPBodyElement addBodyElement(Name name)        throws SOAPException {        SOAPBodyElement bodyElement = new SOAPBodyElement(name);        addChildElement(bodyElement);        return bodyElement;    }    public javax.xml.soap.SOAPFault addFault(Name name, String s, Locale locale) throws SOAPException {        AxisFault af = new AxisFault(new QName(name.getURI(), name.getLocalName()), s, "", new Element[0]);        SOAPFault fault = new SOAPFault(af);        addChildElement(fault);        return fault;    }    public javax.xml.soap.SOAPFault addFault(Name name, String s) throws SOAPException {        AxisFault af = new AxisFault(new QName(name.getURI(), name.getLocalName()), s, "", new Element[0]);        SOAPFault fault = new SOAPFault(af);        addChildElement(fault);        return fault;    }    public javax.xml.soap.SOAPBodyElement addDocument(Document document) throws SOAPException {        SOAPBodyElement bodyElement = new SOAPBodyElement(document.getDocumentElement());        addChildElement(bodyElement);        return bodyElement;    }    public javax.xml.soap.SOAPFault addFault() throws SOAPException {                AxisFault af = new AxisFault(new QName(Constants.NS_URI_AXIS, Constants.FAULT_SERVER_GENERAL), "", "", new Element[0]);        SOAPFault fault = new SOAPFault(af);        addChildElement(fault);        return fault;    }    public javax.xml.soap.SOAPFault getFault() {        List bodyElements = getChildren();        if (bodyElements != null) {            Iterator e = bodyElements.iterator();            while (e.hasNext()) {                Object element = e.next();                if(element instanceof javax.xml.soap.SOAPFault) {                    return (javax.xml.soap.SOAPFault) element;                }            }        }        return null;    }        public boolean hasFault() {        return (getFault() != null);    }    // overwrite the one in MessageElement and set envelope    public void addChild(MessageElement element) throws SOAPException {// Commented out for SAAJ compatibility - gdaniels, 05/19/2003//      if (!(element instanceof javax.xml.soap.SOAPBodyElement)) {//        throw new SOAPException(Messages.getMessage("badSOAPBodyElement00"));//      }        element.setEnvelope(getEnvelope());        super.addChild(element);    }    // overwrite the one in MessageElement and sets dirty flag    public SOAPElement addChildElement(SOAPElement element)        throws SOAPException {// Commented out for SAAJ compatibility - gdaniels, 05/19/2003//      if (!(element instanceof javax.xml.soap.SOAPBodyElement)) {//        throw new SOAPException(Messages.getMessage("badSOAPBodyElement00"));//      }        SOAPElement child = super.addChildElement(element);        setDirty();        return child;    }    public SOAPElement addChildElement(Name name) throws SOAPException {        SOAPBodyElement child = new SOAPBodyElement(name);        addChildElement(child);        return child;    }    public SOAPElement addChildElement(String localName) throws SOAPException {        // Inherit parent's namespace        SOAPBodyElement child = new SOAPBodyElement(getNamespaceURI(),                                                    localName);        addChildElement(child);        return child;    }    public SOAPElement addChildElement(String localName,                                       String prefix) throws SOAPException {        SOAPBodyElement child =             new SOAPBodyElement(getNamespaceURI(prefix), localName);        child.setPrefix(prefix);        addChildElement(child);        return child;    }    public SOAPElement addChildElement(String localName,                                       String prefix,                                       String uri) throws SOAPException {        SOAPBodyElement child = new SOAPBodyElement(uri, localName);        child.setPrefix(prefix);        child.addNamespaceDeclaration(prefix, uri);        addChildElement(child);        return child;    }    public void setSAAJEncodingCompliance(boolean comply) {        this.doSAAJEncodingCompliance = true;    }}

⌨️ 快捷键说明

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