Jaxb bean转化为xml格式时,去除xsi:type="" xmlns:xsi=""
时间: 2023-07-24 20:15:45 浏览: 361
SpringMVC源码总结(三)mvc:annotation-driven和mvc:message-converters简单介绍
在JAXB中,如果不想在XML中包含xsi:type和xmlns:xsi属性,可以通过在生成的JAXBContext中设置Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION属性来实现。具体地说,可以按照以下步骤操作:
1. 创建JAXBContext对象时,使用JAXBContext.newInstance(Class... contextPath, Map<String,?> properties)方法,并将Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION属性设置为true。
例如:
```
JAXBContext context = JAXBContext.newInstance(Person.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, true);
```
2. 将JAXB对象转换为XML时,将Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION属性设置为true。
例如:
```
Person person = new Person();
// 设置person的属性
marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, true);
marshaller.marshal(person, outputStream);
```
这样,在将JAXB对象转换为XML时,就不会包含xsi:type和xmlns:xsi属性了。
阅读全文