JAXB格式化
JAXBContext jc
=
JAXBContext.newInstance(
"
com.acme.foo
"
);
Unmarshaller u = jc.createUnmarshaller();
Object element = u.unmarshal( new File( " foo.xml " ) );
Marshaller m = jc.createMarshaller();
OutputStream os = new FileOutputStream( " nosferatu.xml " );
m.marshal( element, os );
Unmarshaller u = jc.createUnmarshaller();
Object element = u.unmarshal( new File( " foo.xml " ) );
Marshaller m = jc.createMarshaller();
OutputStream os = new FileOutputStream( " nosferatu.xml " );
m.marshal( element, os );
以上是JDK1.6API给的代码,但生成的Xml文件是未被格式化的,要怎么样才能对生成的XML文件格式化呢,
jaxb.formatted.output:值必须是 java.lang.Boolean
此属性控制 Marshaller 是否使用换行和缩排对得到的 XML 数据进行格式化。此属性为 true 值表示可读性强的缩排 xml 数据,而属性值为 false 则表示未格式化的 xml 数据。如果未指定此属性,则 Marshaller 将该属性值默认为 false (未格式化)。
此属性控制 Marshaller 是否使用换行和缩排对得到的 XML 数据进行格式化。此属性为 true 值表示可读性强的缩排 xml 数据,而属性值为 false 则表示未格式化的 xml 数据。如果未指定此属性,则 Marshaller 将该属性值默认为 false (未格式化)。
这是API中的解释,只要把jaxb.formatted.output属性赋成True就可以了
m.setProperty(m.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
上上面这个句话就要可以了