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

📄 elementwriter.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.aegis.stax;import java.io.OutputStream;import javax.xml.namespace.QName;import javax.xml.stream.XMLOutputFactory;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamWriter;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.aegis.AbstractMessageWriter;import org.codehaus.xfire.aegis.MessageWriter;import org.codehaus.xfire.util.NamespaceHelper;/** * LiteralWriter *  * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> */public class ElementWriter    extends AbstractMessageWriter    implements MessageWriter{    private XMLStreamWriter writer;        private String namespace;        private String name;    private String prefix;    /**     * Create a LiteralWriter but without writing an element name.     *      * @param writer     */    public ElementWriter(XMLStreamWriter writer)    {        this.writer = writer;    }        public ElementWriter(XMLStreamWriter writer, String name, String namespace)    {        this(writer, name, namespace, null);    }    public ElementWriter(XMLStreamWriter streamWriter, QName name)    {        this(streamWriter, name.getLocalPart(), name.getNamespaceURI());    }    public ElementWriter(XMLStreamWriter writer, String name, String namespace, String prefix)    {        this.writer = writer;        this.namespace = namespace;        this.name = name;        this.prefix = prefix;                try        {            writeStartElement();        }        catch (XMLStreamException e)        {            throw new XFireRuntimeException("Error writing document.", e);        }    }        /**     * @param os     * @throws XMLStreamException      */    public ElementWriter(OutputStream os, String name, String namespace)         throws XMLStreamException    {        XMLOutputFactory ofactory = XMLOutputFactory.newInstance();        this.writer = ofactory.createXMLStreamWriter(os);                this.namespace = namespace;        this.name = name;                try        {            writeStartElement();        }        catch ( XMLStreamException e )        {            throw new XFireRuntimeException("Error writing document.", e);        }    }    private void writeStartElement()         throws XMLStreamException    {        if (namespace != null)        {            boolean declare = false;            String decPrefix = writer.getNamespaceContext().getPrefix(namespace);                            // If the user didn't specify a prefix, create one            if (prefix == null && decPrefix == null)            {                declare = true;                prefix = NamespaceHelper.getUniquePrefix(writer);            }            else if (prefix == null)            {                prefix = decPrefix;            }            else if (!prefix.equals(decPrefix))            {                declare = true;            }                        writer.writeStartElement(prefix, name, namespace);                        if (declare)            {                writer.setPrefix(prefix, namespace);                writer.writeNamespace(prefix, namespace);            }        }        else        {            writer.writeStartElement(name);        }    }    /**     * @see org.codehaus.xfire.aegis.MessageWriter#writeValue(java.lang.Object)     */    public void writeValue(Object value)    {        try        {            if ( value != null )                writer.writeCharacters( value.toString() );        }        catch ( XMLStreamException e )        {            throw new XFireRuntimeException("Error writing document.", e);        }    }        /**     * @see org.codehaus.xfire.aegis.MessageWriter#getWriter(java.lang.String)     */    public MessageWriter getElementWriter(String name)    {        return new ElementWriter(writer, name, namespace);    }    public MessageWriter getElementWriter(String name, String ns)    {        return new ElementWriter(writer, name, ns);    }    public MessageWriter getElementWriter(QName qname)    {        return new ElementWriter(writer,                                  qname.getLocalPart(),                                  qname.getNamespaceURI(),                                  qname.getPrefix());    }    public String getNamespace()    {        return namespace;    }    public void close()    {        try        {            writer.writeEndElement();        }        catch ( XMLStreamException e )        {            throw new XFireRuntimeException("Error writing document.", e);        }    }    public void flush() throws XMLStreamException    {        writer.flush();    }    public XMLStreamWriter getXMLStreamWriter()    {        return writer;    }    public MessageWriter getAttributeWriter(String name)    {        return new AttributeWriter(writer, name, namespace);    }    public MessageWriter getAttributeWriter(String name, String namespace)    {        return new AttributeWriter(writer, name, namespace);    }    public MessageWriter getAttributeWriter(QName qname)    {        return new AttributeWriter(writer, qname.getLocalPart(), qname.getNamespaceURI());    }    public String getPrefixForNamespace( String namespace )    {        try        {            String prefix = writer.getPrefix(namespace);            if (prefix == null )            {                prefix = NamespaceHelper.getUniquePrefix(writer);                writer.setPrefix(prefix, namespace);                writer.writeNamespace(prefix, namespace);            }            return prefix;        }        catch( XMLStreamException e )        {            throw new XFireRuntimeException("Error writing document.", e);        }    }    public String getPrefixForNamespace(String namespace, String hint)    {        try        {            String prefix = writer.getPrefix(namespace);            if(prefix == null)            {                String ns = writer.getNamespaceContext().getNamespaceURI(hint);                if(ns == null)                {                    prefix = hint;                }                else                if(ns.equals(namespace))                {                    return prefix;                }                else                {                    prefix = NamespaceHelper.getUniquePrefix(writer);                }                writer.setPrefix(prefix, namespace);                writer.writeNamespace(prefix, namespace);            }            return prefix;        }        catch(XMLStreamException e)        {            throw new XFireRuntimeException("Error writing document.", e);        }    }}

⌨️ 快捷键说明

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