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

📄 staxwriter2test.java

📁 xstream是一个把java object序列化成xml文件的开源库,轻便好用
💻 JAVA
字号:
package com.thoughtworks.xstream.io.xml;import com.thoughtworks.acceptance.QNameMappedConcreteClassesTest;import com.thoughtworks.acceptance.someobjects.X;import com.thoughtworks.acceptance.someobjects.Y;import com.thoughtworks.xstream.XStream;import javax.xml.namespace.QName;import javax.xml.stream.XMLOutputFactory;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamWriter;import java.io.StringWriter;import java.io.Writer;/* * @author James Strachan */public class StaxWriter2Test extends AbstractXMLWriterTest {    public static final String XML_HEADER = QNameMappedConcreteClassesTest.XML_HEADER;    private StringWriter buffer;    private XMLOutputFactory outputFactory;    private X testInput;    protected void setUp() throws Exception {        super.setUp();        outputFactory = XMLOutputFactory.newInstance();        buffer = new StringWriter();        writer = new StaxWriter(new QNameMap(), outputFactory.createXMLStreamWriter(buffer));        testInput = new X();        testInput.anInt = 9;        testInput.aStr = "zzz";        testInput.innerObj = new Y();        testInput.innerObj.yField = "ooo";    }    protected void assertXmlProducedIs(String expected) {        expected = "<?xml version='1.0' encoding='utf-8'?>" + expected; // include header        assertEquals(expected, buffer.toString());    }    public void testEscapesWhitespaceCharacters() {        // overriding test in superclass... this doesn't seem to work with StaxWriter.    }    public void testSupportsEmptyTags() {        // overriding test in superclass.... StaxWriter writes <blah></blah> instead of <blah/>        writer.startNode("empty");        writer.endNode();        assertXmlProducedIs("<empty></empty>");    }    public void testNamespacedXmlWithPrefix() throws Exception {        QNameMap qnameMap = new QNameMap();        QName qname = new QName("http://foo.com", "alias", "foo");        qnameMap.registerMapping(qname, X.class);        String expected = XML_HEADER + "<foo:alias xmlns:foo=\"http://foo.com\"><aStr>zzz</aStr><anInt>9</anInt><innerObj><yField>ooo</yField></innerObj></foo:alias>";        marshalWithBothRepairingModes(qnameMap, expected);    }    public void testNamespacedXmlWithoutPrefix() throws Exception {        QNameMap qnameMap = new QNameMap();        QName qname = new QName("http://foo.com", "bar");        qnameMap.registerMapping(qname, X.class);        String expected = XML_HEADER + "<bar xmlns=\"http://foo.com\"><aStr>zzz</aStr><anInt>9</anInt><innerObj><yField>ooo</yField></innerObj></bar>";        marshalWithBothRepairingModes(qnameMap, expected);    }    protected void marshalWithBothRepairingModes(QNameMap qnameMap, String expected) throws XMLStreamException {        String text = marshall(qnameMap, true);        assertEquals("Generated XML with repairing mode: true", expected, text);        text = marshall(qnameMap, false);        assertEquals("Generated XML with repairing mode: false", expected, text);    }    protected String marshall(QNameMap qnameMap, boolean repairNamespaceMode) throws XMLStreamException {        StaxDriver staxDriver = new StaxDriver(qnameMap, repairNamespaceMode);        XStream xstream = new XStream(staxDriver);        return xstream.toXML(testInput);    }    public void testSupportsAttributes() {        // overriding test in superclass.... StaxWriter writes <blah></blah> instead of <blah/>        writer.startNode("person");        writer.addAttribute("firstname", "Joe");        writer.addAttribute("lastname", "Walnes");        writer.endNode();        assertXmlProducedIs("<person firstname=\"Joe\" lastname=\"Walnes\"></person>");    }}

⌨️ 快捷键说明

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