documenttype.java
来自「Xfire文件 用于开发web service 的一个开源工具 很好用的」· Java 代码 · 共 82 行
JAVA
82 行
package org.codehaus.xfire.aegis.type.xml;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamReader;import org.codehaus.xfire.MessageContext;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.aegis.MessageReader;import org.codehaus.xfire.aegis.MessageWriter;import org.codehaus.xfire.aegis.stax.ElementReader;import org.codehaus.xfire.aegis.stax.ElementWriter;import org.codehaus.xfire.aegis.type.Type;import org.codehaus.xfire.fault.XFireFault;import org.codehaus.xfire.util.STAXUtils;import org.codehaus.xfire.util.stax.FragmentStreamReader;import org.w3c.dom.Document;/** * Reads and writes <code>org.w3c.dom.Document</code> types. * * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> */public class DocumentType extends Type{ private DocumentBuilder builder; public DocumentType() { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { builder = factory.newDocumentBuilder(); } catch (ParserConfigurationException e) { throw new XFireRuntimeException("Couldn't load document builder.", e); } setWriteOuter(false); } public DocumentType(DocumentBuilder builder) { this.builder = builder; setWriteOuter(false); } public Object readObject(MessageReader mreader, MessageContext context) throws XFireFault { try { XMLStreamReader reader = ((ElementReader) mreader).getXMLStreamReader(); return STAXUtils.read(builder, new FragmentStreamReader(reader), true); } catch (XMLStreamException e) { throw new XFireFault("Could not parse xml.", e, XFireFault.SENDER); } } public void writeObject(Object object, MessageWriter writer, MessageContext context) throws XFireFault { Document doc = (Document) object; try { STAXUtils.writeElement(doc.getDocumentElement(), ((ElementWriter) writer).getXMLStreamWriter(), false); } catch (XMLStreamException e) { throw new XFireFault("Could not write xml.", e, XFireFault.SENDER); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?