StaxEventItemWriter of Spring Batch
Hi,
My spring batch admin application generates XML as output via itemwriter. The problem is that if any tag in the generated in XML is empty, it gets discarded in the xml implicitly. Any help on the same.
My expectation is if any tag is empty it should appear as <tagname></tagname> in the XML.
Brief code snippet :
StaxEventItemWriter<TransactionRecord> staxItemWriter = new StaxEventItemWriter<TransactionRecord>();
Map<String, String> aliases = new HashMap<String, String>();
aliases.put("TransactionRecord","com.thomascook.bb mm.bean.TransactionRecord");
aliases.put("segmentId","java.lang.String");
aliases.put("recordUse","java.lang.String");
Marshaller marshaller = new XStreamMarshaller();
((XStreamMarshaller) marshaller).setAliases(aliases);
staxItemWriter.setResource(resource);
staxItemWriter.setMarshaller(marshaller);
Please let me know if more information is required.
spring batch and staxeventwriter
Quote:
Originally Posted by
mminella
Empty or null? I believe (but have not tested) that a null attribute will be dropped and an empty attribute (empty string for example) will generate an empty tag with the XStreamMarshaller. I'd have to write a test to confirm though...
Thanks for the input. But i want that both of the cases [empty and null values] to be included in the XML. I am passing a java object to be marshalled. Do i need to override any method of XStreamMarshaller in order to meet this requirement. For eg :
<Transaction>
<A>1</A>
<B>xyz</B>
<C></C>
</Transaction>
<Transaction>
<A></A>
<B></B>
<C>123</C>
</Transaction>
Irrespective of the datatypes of child nodes, either it is empty string/null or any other dataypes with no value, I want that tag/node(with null or empty value) also to appear which currently is not happening. I hope I am able to express the problem.