Jaxb 忽略MOXy@XmlPath
我有一个非常简单的类,它有两个字段,String sourceAddress和int portJaxb 忽略MOXy@XmlPath,jaxb,eclipselink,moxy,Jaxb,Eclipselink,Moxy,我有一个非常简单的类,它有两个字段,String sourceAddress和int port 我希望它们映射到源/地址和源/端口节点,而不是 jaxb默认源地址和源端口 所以我使用MOXy@XmlPath注释 问题是注释被忽略了,我得到了“jaxb default”xml文件: <szk> <sourceAddress>test</sourceAddress> <sourcePort>10000</sourcePort>
我希望它们映射到源/地址和源/端口节点,而不是 jaxb默认源地址和源端口
所以我使用MOXy@XmlPath注释
问题是注释被忽略了,我得到了“jaxb default”xml文件:
<szk>
<sourceAddress>test</sourceAddress>
<sourcePort>10000</sourcePort>
</sz>
测试
10000
提前谢谢你的帮助
阿戈斯蒂诺
导入javax.xml.bind.*;
导入javax.xml.bind.annotation.*;
导入org.eclipse.persistence.jaxb.JAXBContext;
导入org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
公共级SZK{
@XmlPath(“源/地址”)
私有字符串源地址;
@XmlPath(“源/端口”)
专用int源端口;
公共静态void main(字符串[]args)抛出JAXBEException{
SZK=新的SZK();
k、 sourceAddress=“测试”;
k、 sourcePort=10000;
javax.xml.bind.JAXBContext jc=JAXBContext.newInstance(SZK.class);
Marshaller m=jc.createMarshaller();
m、 setProperty(Marshaller.JAXB_格式化的_输出,true);
m、 元帅(k,系统输出);
}
}
此问题最可能的原因是缺少指定应用作jaxb提供程序的
jaxb.properties
文件。jaxb.properties
文件必须与域模型放在同一个包中,并包含以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
有关更多信息:
JAXB编组
在@XmlPath
中仍然不能像预期的那样工作。似乎使用和不使用@XmlPath
生成的XML是相同的。你能看一下这个例子并给出你的答案吗:嗨,谢谢你提出这个问题。事实上,我也在尝试做一些类似的事情,但由于某些原因,它没有按预期工作。我也尝试过这个答案中提到的事情。我尝试了这种方法和作者博客中的示例,但是JAXB编组
在@XmlPath
中仍然不能像预期的那样工作。似乎使用和不使用@XmlPath
生成的XML是相同的。请您研究一下这个例子并给出您的答案:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory