亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jibx2wsdl.java

?? 對xml很好的java處理引擎,編譯中綁定xml
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*Copyright (c) 2007, Dennis M. Sosnoski.All rights reserved.Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this   list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice,   this list of conditions and the following disclaimer in the documentation   and/or other materials provided with the distribution. * Neither the name of JiBX nor the names of its contributors may be used   to endorse or promote products derived from this software without specific   prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FORANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/package org.jibx.ws.wsdl;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import org.jibx.binding.generator.BindingGenerator;import org.jibx.binding.generator.BindingHolder;import org.jibx.binding.generator.ClassCustom;import org.jibx.binding.generator.CustomBase;import org.jibx.binding.generator.GlobalCustom;import org.jibx.binding.generator.SchemaGenerator;import org.jibx.binding.generator.SchemaHolder;import org.jibx.binding.generator.SchemaMappingDetail;import org.jibx.binding.model.BindingElement;import org.jibx.binding.model.CollectionElement;import org.jibx.binding.model.DocumentFormatter;import org.jibx.binding.model.IClass;import org.jibx.binding.model.IClassLocator;import org.jibx.binding.model.MappingElement;import org.jibx.binding.model.ValidationContext;import org.jibx.binding.model.ValidationProblem;import org.jibx.runtime.BindingDirectory;import org.jibx.runtime.IBindingFactory;import org.jibx.runtime.IMarshallable;import org.jibx.runtime.IMarshallingContext;import org.jibx.runtime.JiBXException;import org.jibx.runtime.QName;import org.jibx.schema.IComponent;import org.jibx.schema.elements.AnnotationElement;import org.jibx.schema.elements.ComplexTypeElement;import org.jibx.schema.elements.DocumentationElement;import org.jibx.schema.elements.ElementElement;import org.jibx.schema.elements.SchemaElement;import org.jibx.schema.elements.SequenceElement;import org.jibx.schema.types.Count;import org.jibx.util.InsertionOrderedSet;import org.jibx.util.Types;import org.w3c.dom.Node;/** * Start-from-code WSDL generator using JiBX data binding. This starts from one * or more service classes, each with one or more methods to be exposed as * service operations, and generates complete bindings and WSDL for the * services. * * @author Dennis M. Sosnoski */public class Jibx2Wsdl{    /** Customizations information. */    private final GlobalCustom m_global;        /** WSDL customizations. */    private final WsdlCustom m_wsdlCustom;        /** Binding generator. */    private final BindingGenerator m_bindingGenerator;        /** Schema generator. */    private final SchemaGenerator m_schemaGenerator;        /** Map from schema namespace URIs to schema holders. */    private final Map m_uriSchemaMap;        /** Map from fully qualified class name to schema type name. */    private Map m_classTypeMap;        /** Locator for class information (<code>null</code> if none). */    private final IClassLocator m_locator;        /** Document used for annotations (<code>null</code> if none). */    private final DocumentFormatter m_formatter;        /**     * Constructor.     *      * @param loc class locator     * @param global customizations information     * @param wsdl WSDL customizations information     */    private Jibx2Wsdl(IClassLocator loc, GlobalCustom global, WsdlCustom wsdl) {        m_locator = loc;        m_global = global;        m_bindingGenerator = new BindingGenerator(global);        m_schemaGenerator = new SchemaGenerator(loc, global);        m_uriSchemaMap = new HashMap();        m_formatter = new DocumentFormatter();        m_wsdlCustom = wsdl;    }    /**     * Get the qualified name used for an abstract mapping. This throws an     * exception if the qualified name is not found.     *     * @param type     * @param mapping     * @return qualified name     */    private QName getMappingQName(String type, MappingElement mapping) {        SchemaMappingDetail detail =            m_schemaGenerator.getMappingDetail(mapping);        if (detail == null) {            throw new IllegalStateException("No mapping found for type " + type);        } else if (detail.isType()) {            return detail.getTypeName();        } else {            throw new IllegalStateException("Need abstract mapping for type " + type);        }    }    /**     * Build an element representing a parameter or return value.     *     * @param parm     * @param typemap map from parameterized type to abstract mapping name     * @return constructed element     */    private ElementElement buildValueElement(ValueCustom parm, Map typemap) {                // create the basic element definition        ElementElement elem = new ElementElement();        if (!parm.isRequired()) {            elem.setMinOccurs(Count.COUNT_ZERO);        }        String type = parm.getType();        if (type.endsWith("[]")) {            elem.setMaxOccurs(Count.COUNT_UNBOUNDED);        }                // check type or reference for element        boolean isref = false;        String ptype = parm.getBoundType();        QName tname = (QName)typemap.get(ptype);        if (tname == null) {            tname = Types.schemaType(ptype);            if (tname == null) {                String usetype = ptype.endsWith(">") ? type : ptype;                BindingGenerator.MappingDetail detail =                    m_bindingGenerator.getMappingDetail(usetype);                if (detail == null) {                    throw new IllegalStateException("No mapping found for type " + usetype);                } else if (detail.isExtended()) {                    elem.setRef(detail.getElementQName());                    isref = true;                } else {                    MappingElement mapping = detail.getAbstractMapping();                    tname = mapping.getTypeQName();                    if (tname == null) {                        tname = getMappingQName(usetype, mapping);                    }                }            }        }        if (!isref) {                        // set element type and name            elem.setType(tname);            String ename = parm.getElementName();            if (ename == null) {                ename = tname.getName();            }            elem.setName(ename);        }                // add documentation if available        List nodes = parm.getDocumentation();         if (nodes != null) {            AnnotationElement anno = new AnnotationElement();            DocumentationElement doc = new DocumentationElement();            for (Iterator iter = nodes.iterator(); iter.hasNext();) {                Node node = (Node)iter.next();                doc.addContent(node);            }            anno.getItemsList().add(doc);            elem.setAnnotation(anno);        }        return elem;    }    /**     * Add reference defined by element to schema. This finds the namespace of     * the type or element reference used by the provided element, and adds that     * namespace to the schema references.     *     * @param elem     * @param holder     */    private void addSchemaReference(ElementElement elem, SchemaHolder holder) {        QName qname = elem.getType();        if (qname == null) {            qname = elem.getRef();        }        if (qname != null) {            String rns = qname.getUri();            if (!holder.getNamespace().equals(rns) &&                !IComponent.SCHEMA_NAMESPACE.equals(rns)) {                holder.addReference((SchemaHolder)m_uriSchemaMap.get(rns));            }        }    }        /**     * Build WSDL for service.     *      * @param service     * @param typemap map from parameterized type to abstract mapping name     * @return constructed WSDL definitions     */    private Definitions buildWSDL(ServiceCustom service, Map typemap) {                // initialize root object of definition        String wns = service.getWsdlNamespace();        String sns = service.getNamespace();        String spfx = wns.equals(sns) ? "tns" : "sns";        Definitions def = new Definitions(service.getPortTypeName(),            service.getBindingName(), service.getServiceName(),            service.getPortName(), "tns", wns, spfx, sns);        def.setServiceLocation(service.getServiceAddress());                // add service documentation if available        IClass info = m_locator.getClassInfo(service.getClassName());        if (info != null) {            List nodes = m_formatter.docToNodes(info.getJavaDoc());            def.setPortTypeDocumentation(nodes);        }                // find or create the schema element and namespace        SchemaHolder holder = (SchemaHolder)m_uriSchemaMap.get(sns);        if (holder == null) {            holder = new SchemaHolder(sns);        }        SchemaElement schema = holder.getSchema();        def.getSchemas().add(schema);                // process messages and operations used by service        ArrayList ops = service.getOperations();        Map fltmap = new HashMap();        for (int i = 0; i < ops.size(); i++) {                        // get information for operation            OperationCustom odef = (OperationCustom)ops.get(i);            String oname = odef.getOperationName();            Operation op = new Operation(oname);            op.setDocumentation(odef.getDocumentation());            op.setSoapAction(odef.getSoapAction());                        // generate input message information            QName qname = new QName(sns, odef.getRequestWrapperName());            MessagePart part = new MessagePart("part", qname);            Message msg = new Message(odef.getRequestMessageName(), part);            op.addInputMessage(msg);            def.addMessage(msg);                        // add corresponding schema definition to schema            SequenceElement seq = new SequenceElement();            ArrayList parms = odef.getParameters();            for (int j = 0; j < parms.size(); j++) {                ValueCustom parm = (ValueCustom)parms.get(j);                ElementElement pelem = buildValueElement(parm, typemap);                seq.getParticleList().add(pelem);                addSchemaReference(pelem, holder);            }            ComplexTypeElement tdef = new ComplexTypeElement();            tdef.setContentDefinition(seq);            ElementElement elem = new ElementElement();            elem.setName(odef.getRequestWrapperName());            elem.setInlineType(tdef);            schema.getTopLevelChildren().add(elem);                        // generate output message information            qname = new QName(sns, odef.getResponseWrapperName());            part = new MessagePart("part", qname);            msg = new Message(odef.getResponseMessageName(), part);            op.addOutputMessage(msg);            def.addMessage(msg);                        // add corresponding schema definition to schema            seq = new SequenceElement();            ValueCustom ret = odef.getReturn();            if (!"void".equals(ret.getType())) {                ElementElement relem = buildValueElement(ret, typemap);                seq.getParticleList().add(relem);                addSchemaReference(relem, holder);            }            tdef = new ComplexTypeElement();            tdef.setContentDefinition(seq);            elem = new ElementElement();            elem.setName(odef.getResponseWrapperName());            elem.setInlineType(tdef);            schema.getTopLevelChildren().add(elem);                        // process fault message(s) for operation            ArrayList thrws = odef.getThrows();            for (int j = 0; j < thrws.size(); j++) {                ThrowsCustom thrw = (ThrowsCustom)thrws.get(j);                String type = thrw.getType();                msg = (Message)fltmap.get(type);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲污的网站| 欧美va在线播放| 久久99国产精品麻豆| 国产精品狼人久久影院观看方式| 色婷婷综合激情| 国产在线看一区| 亚洲国产视频a| 国产欧美日产一区| 日韩女优毛片在线| 在线观看欧美精品| 成人涩涩免费视频| 久久精品国产亚洲一区二区三区 | 久久精品水蜜桃av综合天堂| 欧美性受xxxx黑人xyx性爽| 成人一区二区三区在线观看| 看片的网站亚洲| 午夜精品福利在线| 亚洲欧美一区二区三区国产精品| 久久久五月婷婷| 日韩一级大片在线| 欧美色区777第一页| 色综合久久久久| fc2成人免费人成在线观看播放| 精品在线免费视频| 欧美aaaaa成人免费观看视频| 亚洲综合自拍偷拍| 亚洲人吸女人奶水| 亚洲欧美国产毛片在线| 国产精品免费久久| 国产精品伦一区二区三级视频| 久久精品视频一区二区| 久久精品男人天堂av| 精品久久久久久无| 精品粉嫩超白一线天av| 日韩精品专区在线影院重磅| 51精品国自产在线| 欧美一级一区二区| 欧美日本一区二区三区| 555夜色666亚洲国产免| 欧美一区二区三区爱爱| 欧美一卡二卡三卡| 精品少妇一区二区三区在线播放 | 制服.丝袜.亚洲.另类.中文| 欧美老女人第四色| 日韩一区二区电影网| 日韩欧美电影在线| 精品国产一区二区在线观看| 亚洲精品一区二区三区香蕉| 日韩欧美精品在线| 久久综合九色综合欧美就去吻| 亚洲三级久久久| 亚洲激情自拍视频| 午夜久久久久久| 日本欧美韩国一区三区| 国产一区二区三区在线观看精品| 国产精品456露脸| 成人黄色一级视频| 在线观看区一区二| 欧美电影免费提供在线观看| 久久久精品蜜桃| 中文字幕亚洲一区二区av在线| 国产精品第四页| 亚洲成人tv网| 免费观看日韩av| 国产传媒一区在线| 一本到高清视频免费精品| 欧美日韩视频不卡| 精品国产免费久久| 国产精品国产三级国产| 亚洲国产精品精华液网站| 乱一区二区av| 成人综合婷婷国产精品久久蜜臀 | 欧美日韩三级视频| 欧美va在线播放| 一区在线中文字幕| 亚洲成人激情av| 国产毛片精品一区| 色婷婷激情综合| 欧美va天堂va视频va在线| 国产精品网站一区| 亚洲国产日韩一区二区| 久久99精品久久久久久国产越南| 不卡在线观看av| 欧美一区二区三区在线| 亚洲欧洲精品一区二区三区| 日韩av成人高清| 99久久久免费精品国产一区二区 | 久久先锋影音av鲁色资源| 亚洲日本在线a| 蜜桃精品在线观看| 一本一道综合狠狠老| 欧美成人女星排行榜| 一区二区三区在线看| 国产麻豆成人传媒免费观看| 欧美三级电影一区| 国产精品网站导航| 麻豆久久久久久| 在线精品亚洲一区二区不卡| 久久欧美中文字幕| 午夜久久久久久电影| 94-欧美-setu| 久久久91精品国产一区二区三区| 亚洲午夜电影在线观看| 岛国精品在线播放| 精品久久久三级丝袜| 亚洲一区二区精品视频| hitomi一区二区三区精品| 欧美精品一区二区三区一线天视频| 一区二区三区色| 成人激情校园春色| 久久久高清一区二区三区| 免费一区二区视频| 欧美三级电影网| 依依成人综合视频| 99精品欧美一区| 欧美国产精品一区二区| 另类小说图片综合网| 8v天堂国产在线一区二区| 亚洲小说欧美激情另类| 91丨九色丨尤物| 中文字幕视频一区二区三区久| 国产伦理精品不卡| 精品久久久久久无| 久久99精品一区二区三区| 911国产精品| 午夜精品久久久久久久99水蜜桃 | 精品久久久影院| 蜜桃视频一区二区三区| 欧美日本在线看| 亚洲国产精品一区二区www在线| 色婷婷狠狠综合| 一区二区免费在线播放| 色综合久久六月婷婷中文字幕| 欧美经典一区二区| 国产成人亚洲综合a∨猫咪| 久久久91精品国产一区二区三区| 国内精品伊人久久久久av一坑 | 国产亚洲一本大道中文在线| 国产麻豆一精品一av一免费| 久久久久久久电影| 成人午夜av影视| 亚洲欧美激情一区二区| 91成人免费电影| 亚洲电影欧美电影有声小说| 欧美浪妇xxxx高跟鞋交| 蜜臀精品一区二区三区在线观看| 欧美一区二区视频观看视频| 久久成人久久爱| 久久久久久久久久久99999| 成人午夜伦理影院| 综合av第一页| 欧美色网一区二区| 日本欧美加勒比视频| 欧美精品一区二区三区在线| 丁香桃色午夜亚洲一区二区三区| 国产精品蜜臀av| 欧美午夜免费电影| 老鸭窝一区二区久久精品| 久久久亚洲国产美女国产盗摄| 成人午夜伦理影院| 亚洲国产精品影院| 日韩精品专区在线影院重磅| 国产91精品一区二区麻豆网站| 亚洲三级理论片| 欧美一区二区日韩一区二区| 韩国在线一区二区| 国产精品激情偷乱一区二区∴| 色悠久久久久综合欧美99| 日本美女视频一区二区| 中文字幕免费在线观看视频一区| 91高清视频在线| 精品一区二区三区日韩| 中文字幕亚洲视频| 欧美一级黄色大片| 成人在线一区二区三区| 亚洲国产精品一区二区www在线| 欧美成人精精品一区二区频| av一区二区三区四区| 日本欧美一区二区| 1区2区3区欧美| 91精品国产麻豆| 99精品视频在线播放观看| 日本午夜精品视频在线观看| 国产精品久久一级| 日韩一级二级三级| 91国模大尺度私拍在线视频| 国内精品嫩模私拍在线| 亚洲免费视频中文字幕| 精品国产sm最大网站| 在线观看日韩毛片| 国产精品一区二区不卡| 亚洲国产日日夜夜| 国产精品久久免费看| 日韩一区二区三区电影在线观看 | 国产成+人+日韩+欧美+亚洲| 日韩激情一二三区| 亚洲美女视频在线观看| 国产日韩欧美在线一区| 欧美一级夜夜爽| 欧美日韩一区二区不卡|