Java 向Jackson XML序列化添加独立指令
我试图让Jackson像JAXB一样生成XML头,但我不知道如何添加“standalone='yes'?” 例如:Java 向Jackson XML序列化添加独立指令,java,xml,jackson,jaxb,Java,Xml,Jackson,Jaxb,我试图让Jackson像JAXB一样生成XML头,但我不知道如何添加“standalone='yes'?” 例如: public class XmlTest { @XmlRootElement public static class Book { } @Test public void testBookXml() throws JsonProcessingException { XmlMapper mapper = new XmlMa
public class XmlTest {
@XmlRootElement
public static class Book {
}
@Test
public void testBookXml() throws JsonProcessingException {
XmlMapper mapper = new XmlMapper();
mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
System.out.println("Jackson\n" + mapper.writeValueAsString(new Book()) + "\n");
StringWriter sw = new StringWriter();
JAXB.marshal(new Book(), sw);
System.out.println("JAXB\n" + sw.toString());
}
}
输出如下:
Jackson
<?xml version='1.0' encoding='UTF-8'?><Book/>
JAXB
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<book/>
Jackson
JAXB
我不在乎
vs
。除了字符串操作,还有什么方法可以让Jackson头像JAXB头一样吗?我遇到了同样的问题,我通过重新加载类BufferingXmlWriter
(从源代码复制并修改方法)解决了这个问题,在使用Jackson生成XML之前必须重新加载
BufferingXmlWriter
com.ctc.wstx.sw.BufferingXmlWriter复制源代码
writexml声明(字符串版本、字符串编码、字符串独立)
public void writexml声明(字符串版本、字符串编码、字符串独立)
抛出IOException
{
//最终字符chQuote=(mUseDoubleQuotesInXmlDecl?“:”\”;
最终字符chQuote=“”;
fastWriteRaw(“您解决了这个问题吗?我最后只是对结果进行了字符串替换。无法使用JAXB.sad了解如何执行此操作,但请使用tnx进行回复
Class.forName("com.ctc.wstx.sw.BufferingXmlWriter");
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>