Dec 6th, 2012, 06:09 AM
StaxEventItemWriter of Spring Batch
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>();
Marshaller marshaller = new XStreamMarshaller();
Please let me know if more information is required.
Dec 7th, 2012, 10:47 AM
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...
Dec 9th, 2012, 11:17 PM
spring batch and staxeventwriter
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 :
Originally Posted by mminella
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.
Last edited by ankitgupta; Dec 9th, 2012 at 11:20 PM.
Reason: Typing mistake
Dec 10th, 2012, 10:34 AM
After doing some quick looking at the XStream documentation, null attributes are left out. There is a NullConverter you can configure to add but I'm not sure that is going to give you the output you want. I'd expect that you'll need to write a custom converter to handle this: http://xstream.codehaus.org/converter-tutorial.html.
I haven't asked this up to now, but probably should. If you're using XML to serialize objects, why do you need the empty tags to exist? When the XML is read back in, any attributes that were not serialized in the first place will be empty again anyways...
Tags for this Thread