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

📄 castorserializer.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
/* * The Apache Software License, Version 1.1 * * * Copyright (c) 2002 The Apache Software Foundation.  All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. 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. * * 3. The end-user documentation included with the redistribution, *    if any, must include the following acknowledgment: *       "This product includes software developed by the *        Apache Software Foundation (http://www.apache.org/)." *    Alternately, this acknowledgment may appear in the software itself, *    if and wherever such third-party acknowledgments normally appear. * * 4. The names "Axis" and "Apache Software Foundation" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", *    nor may "Apache" appear in their name, without prior written *    permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY 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 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation.  For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */package org.apache.axis.encoding.ser.castor;import org.apache.axis.Constants;import org.apache.axis.components.logger.LogFactory;import org.apache.axis.encoding.SerializationContext;import org.apache.axis.encoding.Serializer;import org.apache.axis.utils.Messages;import org.apache.axis.wsdl.fromJava.Types;import org.apache.commons.logging.Log;import org.exolab.castor.xml.MarshalException;import org.exolab.castor.xml.Marshaller;import org.exolab.castor.xml.ValidationException;import org.w3c.dom.Element;import org.xml.sax.Attributes;import javax.xml.namespace.QName;import java.io.IOException;/** * Castor serializer * * @author Olivier Brand (olivier.brand@vodafone.com) * @author Steve Loughran * @version 1.0 */public class CastorSerializer implements Serializer {    protected static Log log =            LogFactory.getLog(CastorSerializer.class.getName());    /**     * Serialize a Castor object.     *     * @param name     * @param attributes     * @param value      this must be a castor object for marshalling     * @param context     * @throws IOException for XML schema noncompliance, bad object type, and any IO     *                     trouble.     */    public void serialize(QName name,                          Attributes attributes,                          Object value,                          SerializationContext context)            throws IOException {        try {            AxisContentHandler hand = new AxisContentHandler(context);            Marshaller marshaller = new Marshaller(hand);            // Don't include the DOCTYPE, otherwise an exception occurs due to            //2 DOCTYPE defined in the document. The XML fragment is included in            //an XML document containing already a DOCTYPE            marshaller.setMarshalAsDocument(false);            String localPart = name.getLocalPart();            int arrayDims = localPart.indexOf('[');            if (arrayDims != -1) {                localPart = localPart.substring(0, arrayDims);            }            marshaller.setRootElement(localPart);            // Marshall the Castor object into the stream (sink)            marshaller.marshal(value);        } catch (MarshalException me) {            log.error(Messages.getMessage("castorMarshalException00"), me);            throw new IOException(Messages.getMessage(                    "castorMarshalException00")                    + me.getLocalizedMessage());        } catch (ValidationException ve) {            log.error(Messages.getMessage("castorValidationException00"), ve);            throw new IOException(Messages.getMessage(                    "castorValidationException00")                    + ve.getLocation() + ": " + ve.getLocalizedMessage());        }    }    public String getMechanismType() {        return Constants.AXIS_SAX;    }    /**     * Return XML schema for the specified type, suitable for insertion into     * the &lt;types&gt; element of a WSDL document, or underneath an     * &lt;element&gt; or &lt;attribute&gt; declaration.     *     * @param javaType the Java Class we're writing out schema for     * @param types    the Java2WSDL Types object which holds the context     *                 for the WSDL being generated.     * @return a type element containing a schema simpleType/complexType     * @see org.apache.axis.wsdl.fromJava.Types     */    public Element writeSchema(Class javaType, Types types) throws Exception {        return null;    }}

⌨️ 快捷键说明

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