如何使用JAXB进行编组时添加DOCTYPE和xml处理指令?
2022-09-04 01:41:02
我正在编组(序列化)JAXB Bean以输出流。如何将 DOCTYPE 声明和 xml 处理指令添加到输出中?
我目前正在进行这样的编组:
JAXBContext jaxbContext = JAXBContext.newInstance("com.example.package");
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = schemaFactory.newSchema(schemaSource);
marshaller.setSchema(schema);
marshaller.marshal(object, output);
我希望输出看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Something SYSTEM "some.dtd">
<?xml-stylesheet type="text/xsl" href="some.xsl"?>
JAXB bean是生成的代码,所以我不想改变它们。
有一些技巧和未记录的技巧(请参阅使 JAXB 生成 XML 处理指令)来添加 xml 处理指令和 doctype。但是,执行此操作的首选或正确方法是什么?