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

📄 soapenvelope.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
字号:
/* Copyright (c) 2003,2004, Stefan Haustein, Oberhausen, Rhld., Germany * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The  above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */package org.ksoap2;import java.io.*;import org.xmlpull.v1.*;import org.kxml2.kdom.*;/**  * A SOAP envelope, holding head and body objects. While this  * basic envelope supports literal encoding as content format  * via KDom, The SoapSerializationEnvelope provides support * for the SOAP Serialization format specification and  * simple object serialization. */public class SoapEnvelope {    /** SOAP Version 1.0 constant */    public static final int VER10 = 100;    /** SOAP Version 1.1 constant */    public static final int VER11 = 110;    /** SOAP Version 1.2 constant */    public static final int VER12 = 120;    public static final String ENV2001 =        "http://www.w3.org/2001/12/soap-envelope";    public static final String ENC2001 =        "http://www.w3.org/2001/12/soap-encoding";    /** Namespace constant: http://schemas.xmlsoap.org/soap/envelope/ */    public static final String ENV =        "http://schemas.xmlsoap.org/soap/envelope/";    /** Namespace constant: http://schemas.xmlsoap.org/soap/encoding/ */    public static final String ENC =        "http://schemas.xmlsoap.org/soap/encoding/";    /** Namespace constant: http://www.w3.org/2001/XMLSchema */    public static final String XSD = "http://www.w3.org/2001/XMLSchema";    /** Namespace constant: http://www.w3.org/2001/XMLSchema */    public static final String XSI =        "http://www.w3.org/2001/XMLSchema-instance";    /** Namespace constant: http://www.w3.org/1999/XMLSchema */    public static final String XSD1999 = "http://www.w3.org/1999/XMLSchema";    /** Namespace constant: http://www.w3.org/1999/XMLSchema */    public static final String XSI1999 =        "http://www.w3.org/1999/XMLSchema-instance";        /**      * Returns true for the string values "1" and "true", ignoring      * upper/lower case and whitespace, false otherwise. */     public static boolean stringToBoolean(String s) {        if (s == null)            return false;        s = s.trim().toLowerCase();        return (s.equals("1") || s.equals("true"));    }    /**     * The body object received with this envelope. Will be an     * KDom Node for literal encoding. For SOAP Serialization,     * please refer to SoapSerializationEnvelope. */    public Object bodyIn;    /**      * The body object to be sent with this envelope. Must be a KDom Node     * modelling the remote call including all parameters     * for literal encoding. For SOAP Serialization, please      * refer to SoapSerializationEnvelope  */    public Object bodyOut;    /**      * Incoming header elements */        public Element [] headerIn;    /**      * Outgoing header elements */    public Element [] headerOut;    public String encodingStyle;    /**      * The SOAP version, set by the constructor */    public int version;        /** Envelope namespace, set by the constructor */    public String env;    /** Encoding namespace, set by the constructor */    public String enc;    /** Xml Schema instance namespace, set by the constructor */        public String xsi;       /** Xml Schema data namespace, set by the constructor */    public String xsd;    /**      * Initializes a SOAP Envelope. The version parameter must     * be set to one of VER10, VER11 or VER12 */     public SoapEnvelope (int version) {                this.version = version;        //  prefixMap = SoapEnvelope.prefixMap[version];        if (version == SoapEnvelope.VER10) {            xsi = SoapEnvelope.XSI1999;            xsd = SoapEnvelope.XSD1999;        }        else {            xsi = SoapEnvelope.XSI;            xsd = SoapEnvelope.XSD;        }        if (version < SoapEnvelope.VER12) {            enc = SoapEnvelope.ENC;            env = SoapEnvelope.ENV;        }        else {            enc = SoapEnvelope.ENC2001;            env = SoapEnvelope.ENV2001;        }    }    /** Parses the SOAP envelope from the given parser */    public void parse(XmlPullParser parser)        throws IOException, XmlPullParserException {        parser.nextTag();           /*     System.out.println ("name-r: '"+parser.getName()+"'");        System.out.println ("name-x: 'Envelope'");        System.out.println ("namesp-r: '"+parser.getNamespace()+"'");        System.out.println ("namesp-x: '"+env+"'"); */                parser.require(XmlPullParser.START_TAG, env, "Envelope");        encodingStyle = parser.getAttributeValue(env, "encodingStyle");        parser.nextTag();        if (parser.getEventType() == XmlPullParser.START_TAG            && parser.getNamespace().equals(env)            && parser.getName().equals("Header")) {            parseHeader(parser);            parser.require(XmlPullParser.END_TAG, env, "Header");            parser.nextTag();        }        parser.require(XmlPullParser.START_TAG, env, "Body");        encodingStyle = parser.getAttributeValue(env, "encodingStyle");        parseBody (parser);        parser.require(XmlPullParser.END_TAG, env, "Body");        parser.nextTag();        parser.require(XmlPullParser.END_TAG, env, "Envelope");    }    public void parseHeader(XmlPullParser parser)        throws IOException, XmlPullParserException {        // consume start header        parser.nextTag();        // look at all header entries        Node headers = new Node ();        headers.parse (parser);            int count = 0;        for (int i = 0; i < headers.getChildCount(); i++) {            Element child = headers.getElement(i);            if (child != null) count++;        }                headerIn = new Element [count];        count = 0;        for (int i = 0; i < headers.getChildCount(); i++) {            Element child = headers.getElement(i);            if (child != null)                 headerIn [count++] = child;        }    }    public void parseBody(XmlPullParser parser)        throws IOException, XmlPullParserException {        parser.nextTag();        // insert fault generation code here        if (parser.getEventType() == XmlPullParser.START_TAG            && parser.getNamespace().equals(env)            && parser.getName().equals("Fault")) {            SoapFault fault = new SoapFault();            fault.parse(parser);            bodyIn = fault;        }        else {            Node node = (bodyIn instanceof Node) ? (Node) bodyIn : new Node ();            node.parse(parser);            bodyIn = node;        }    }    /**      * Writes the complete envelope including header and body      * elements to the given XML writer. */    public void write(XmlSerializer writer) throws IOException {        writer.setPrefix("i", xsi);          writer.setPrefix("d", xsd);          writer.setPrefix("c", enc);              writer.setPrefix("v", env);              writer.startTag(env, "Envelope");        //  writer.attribute (Soap.ENV, "encodingStyle", encodingStyle);                 writer.startTag(env, "Header");        writeHeader(writer);        writer.endTag(env, "Header");        writer.startTag(env, "Body");        writeBody(writer);        writer.endTag(env, "Body");        writer.endTag(env, "Envelope");    }    /**      * Writes the header elements contained in headerOut */    public void writeHeader(XmlSerializer writer) throws IOException {        if (headerOut != null) {            for (int i = 0; i < headerOut.length; i++) {                headerOut[i].write (writer);            }           }    }    /**      * Writes the SOAP body stored in the object variable bodyIn,     * Overwrite this method for customized writing of     * the soap message body. */    public void writeBody(XmlSerializer writer) throws IOException {        /*   if (body instanceof XmlIO) {               if (encodingStyle != null)                   writer.attribute(classMap.env, "encodingStyle", encodingStyle);                       ((XmlIO) body).write(writer);           }           else { */		if (encodingStyle != null)            writer.attribute(env, "encodingStyle", encodingStyle);                ((Node) bodyOut).write(writer);        //        }    }}

⌨️ 快捷键说明

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