Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring batch StateVentitemWriter XML头_Spring Batch - Fatal编程技术网

Spring batch StateVentitemWriter XML头

Spring batch StateVentitemWriter XML头,spring-batch,Spring Batch,我正在使用StatxeventitemWriter写入XML文件。我希望将xml标记上的standalone属性设置为true。是否有任何选项来设置它 您可以扩展StateEventItemWriter并重写该方法。以下是一个例子: @Bean public StaxEventItemWriter<Person> itemWriter() { StaxEventItemWriter<Person> itemWriter = new StaxEventItemWri

我正在使用StatxeventitemWriter写入XML文件。我希望将xml标记上的standalone属性设置为true。是否有任何选项来设置它


您可以扩展
StateEventItemWriter
并重写该方法。以下是一个例子:

@Bean
public StaxEventItemWriter<Person> itemWriter() {
    StaxEventItemWriter<Person> itemWriter = new StaxEventItemWriter<Person>() {
        @Override
        protected void startDocument(XMLEventWriter writer) throws XMLStreamException {
            writer.add(createXmlEventFactory().createStartDocument(DEFAULT_ENCODING, DEFAULT_XML_VERSION, true));
            writer.add(xmlEventFactory.createStartElement(getRootTagNamespacePrefix(), getRootTagNamespace(), getRootTagName()));
        }
    };
    // TODO set other properties on the writer
    return itemWriter;
}
@Bean
public StatexEventItemWriter itemWriter(){
statxeventitemwriter itemWriter=新的statxeventitemwriter(){
@凌驾
受保护的void startDocument(XMLEventWriter编写器)引发XMLStreamException{
add(createXmlEventFactory().createStartDocument(默认编码,默认XML版本,true));
add(xmlEventFactory.createStartElement(getRootTagNamespacePrefix(),getRootTagNamespace(),getRootTagNamespace());
}
};
//TODO设置写入程序的其他属性
返回项目编写器;
}

statxeventitemwriter已经为
版本
编码
属性提供了setter,因此我相信它还可以为
独立
提供setter。这将使定制XML声明比必须扩展编写器和重写
startDocument
更容易(如果我们忘记添加根元素,这种方法很容易出错,如答案所示)。我在此处创建了一个功能请求:。同时,你可以在答案中使用这个例子。这个听起来很完美,我切换回jaxb,同时,我会检查这个