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

📄 staxutilstest.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.util;import java.io.ByteArrayOutputStream;import java.io.StringReader;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.stream.FactoryConfigurationError;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLOutputFactory;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamReader;import javax.xml.stream.XMLStreamWriter;import org.codehaus.xfire.MessageContext;import org.codehaus.xfire.XFire;import org.codehaus.xfire.test.AbstractXFireTest;import org.codehaus.xfire.util.stax.DepthXMLStreamReader;import org.jdom.Document;import com.bea.xml.stream.MXParserFactory;import com.bea.xml.stream.XMLOutputFactoryBase;import com.ctc.wstx.stax.WstxInputFactory;import com.ctc.wstx.stax.WstxOutputFactory;/** * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> * @since Oct 26, 2004 */public class STAXUtilsTest    extends AbstractXFireTest{    private XMLInputFactory ifactory;    private XMLOutputFactory ofactory;        public void testFactoryCreation()    {        MessageContext ctx = new MessageContext();        ctx.setProperty(XFire.STAX_INPUT_FACTORY, WstxInputFactory.class.getName());                XMLStreamReader reader = STAXUtils.createXMLStreamReader(getResourceAsStream("amazon.xml"), null, ctx);                ctx.setProperty(XFire.STAX_OUTPUT_FACTORY, WstxOutputFactory.class.getName());                XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(new ByteArrayOutputStream(), null, ctx);    }        public void testWSTX() throws Exception    {        ifactory = new WstxInputFactory();        ofactory = new WstxOutputFactory();        doCopy();        doSkipTest();        doNameSpaceDoc();        doAmazonDoc();        doEbayDoc();        doAmazonDoc2();        doDOMWrite();        doDOMWrite2();        doDOMRead();    }        public void testRI() throws Exception    {        ifactory = new MXParserFactory();        ofactory = new XMLOutputFactoryBase();                doCopy();        doSkipTest();        doNameSpaceDoc();        doAmazonDoc();        doEbayDoc();        doAmazonDoc2();        doDOMWrite();        doDOMWrite2();        doDOMRead();    }        public void doCopy() throws Exception    {        String in = new String("<hello xmlns=\"\">world</hello>");                ByteArrayOutputStream out = new ByteArrayOutputStream();        XMLStreamReader reader = ifactory.createXMLStreamReader(new StringReader(in));        XMLStreamWriter writer = ofactory.createXMLStreamWriter(out);        STAXUtils.copy(reader, writer);        writer.close();        out.close();        System.out.println(out.toString());        assertEquals(in, out.toString());    }        public void doSkipTest() throws Exception    {        XMLStreamReader reader = STAXUtils.createXMLStreamReader(getClass().getResourceAsStream("/org/codehaus/xfire/util/nowhitespace.xml"),null,null);        //XMLStreamReader reader = ifactory.createXMLStreamReader(getClass().getResourceAsStream("/org/codehaus/xfire/util/nowhitespace.xml"));                DepthXMLStreamReader dr = new DepthXMLStreamReader(reader);        STAXUtils.toNextElement(dr);        assertEquals("Envelope", dr.getLocalName());        dr.next();        STAXUtils.toNextElement(dr);        assertEquals("Header", dr.getLocalName());    }        public void doAmazonDoc() throws Exception    {        String outS = doCopy("amazon.xml");                Document doc = readDocument(outS, ifactory);                addNamespace("a", "http://xml.amazon.com/AWSECommerceService/2004-08-01");        assertValid("/a:ItemLookup", doc);        assertValid("/a:ItemLookup/a:Request/a:IdType", doc);    }    public void doEbayDoc() throws Exception    {        String outS = doCopy("ebay.xml");                Document doc = readDocument(outS, ifactory);                addNamespace("e", "urn:ebay:api:eBayAPI");        addNamespace("ebase", "urn:ebay:apis:eBLBaseComponents");        assertValid("//ebase:Version", doc);        assertValid("//ebase:ErrorLanguage", doc);        assertValid("//e:UserID", doc);    }        public void doAmazonDoc2() throws Exception    {        String outS = doCopy("amazon2.xml");                Document doc = readDocument(outS, ifactory);                addNamespace("a", "http://webservices.amazon.com/AWSECommerceService/2004-10-19");        assertValid("//a:ItemLookupResponse", doc);        assertValid("//a:ItemLookupResponse/a:Items", doc);    }        public void doNameSpaceDoc() throws Exception {        String outS = doCopy("namespacedoc.xml");                Document doc = readDocument(outS, ifactory);                addNamespace("a", "http://www.paraware.com/2005/PriceAndAvailabilityCheckResponse");        addNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");        assertValid("//a:Header", doc);        assertValid("//a:Header/a:Reference/a:RefNum", doc);        assertValid("//a:Body/a:PartNumbers/a:UPC/@xsi:nil", doc);    }        /**     * @return     * @throws FactoryConfigurationError     * @throws XMLStreamException     */    private String doCopy(String resource) throws FactoryConfigurationError, XMLStreamException    {        XMLStreamReader reader = ifactory.createXMLStreamReader(getClass().getResourceAsStream(resource));                ByteArrayOutputStream out = new ByteArrayOutputStream();        XMLStreamWriter writer = ofactory.createXMLStreamWriter(out);                writer.writeStartDocument();        STAXUtils.copy(reader, writer);        writer.writeEndDocument();                writer.close();        String outS = out.toString();                return outS;    }        public void doDOMWrite() throws Exception    {        org.w3c.dom.Document doc = DOMUtils.readXml(getResourceAsStream("amazon.xml"));        ByteArrayOutputStream bos = new ByteArrayOutputStream();        XMLStreamWriter writer = ofactory.createXMLStreamWriter(bos);                STAXUtils.writeElement(doc.getDocumentElement(), writer, false);                writer.close();                Document testDoc = readDocument(bos.toString(), ifactory);        addNamespace("a", "http://xml.amazon.com/AWSECommerceService/2004-08-01");        assertValid("//a:ItemLookup", testDoc);        assertValid("//a:ItemLookup/a:Request", testDoc);    }        public void doDOMWrite2() throws Exception    {        org.w3c.dom.Document doc = DOMUtils.readXml(getResourceAsStream("nowhitespace.xml"));        ByteArrayOutputStream bos = new ByteArrayOutputStream();        XMLStreamWriter writer = ofactory.createXMLStreamWriter(bos);                STAXUtils.writeElement(doc.getDocumentElement(), writer, false);                writer.close();                Document testDoc = readDocument(bos.toString(), ifactory);    }        public void doDOMRead() throws Exception    {        XMLStreamReader reader = ifactory.createXMLStreamReader(getResourceAsStream("amazon2.xml"));                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        dbf.setValidating(false);        dbf.setIgnoringComments(false);        dbf.setIgnoringElementContentWhitespace(true);        dbf.setNamespaceAware(true);                org.w3c.dom.Document doc = STAXUtils.read(dbf.newDocumentBuilder(), reader, false);//        Diff diff = new Diff(DOMUtils.readXml(getResourceAsStream("amazon2.xml")), doc);//        assertTrue("XML isn't similar: " + diff.toString(), diff.similar());//        assertTrue(diff.identical());    }}

⌨️ 快捷键说明

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