java 设置xmlns xsi_如何从JAXB编组的XML文件中删除xmlns:xsi和xsi:type

我有一组JAXB生成的类,有些类有setter方法,它接受“Object”作为参数 . 例如:

@XmlAccessorType(XmlAccessType.FIELD)

@XmlType(name="Car", propOrder = {

"defaultCar"

}

public class Car {

@XmlElement(name = "DefaultCar")

protected Object defaultcar;

public void setDefaultCar(Object value) {

this.defaultCar = value;

}

在我的代码中创建了这些类的实例后,我调用setter方法传递所需的值 . 虽然方法的参数是Object,但值最有可能是字符串(我无法控制它的定义方式) . 但是,为了保持一致,我将字符串转换为Object,以便它与方法的参数类型匹配 . 代码看起来像这样:

Object value = "Old Banger";

Method method = aCar.getClass().getMethod("setDefaultCar", Object.class);

method.invoke(aCar, value);

当我编写Java对象时,我在生成的XML中得到以下内容,就在字符串的值前面:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string"

我在某处读到了方法参数类型与传递给它的内容之间不匹配的数据类型 . 在我的例子中,方法参数是“对象”,但我传入一个字符串给它(虽然我把它转换为对象) . 我也看过这篇文章,它看起来与我的问题类似:

但是,它无助于我解决我的问题 . 有没有办法删除这些对xmlns的引用:xsi和xsi:type?

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值