在Jersey上序列化我的资源时,我想在某些情况下使用命名空间。
有没有办法在球衣上自定义名称空间前缀?
默认值:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <order xmlns:ns2="http://www.w3.org/2005/Atom"> <price>123</price> <ns2:link rel="duh" href="/abc/123"/> <ns2:link rel="abc" href="/def/234"/> </order>
我想要类似的东西:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <order xmlns:atom="http://www.w3.org/2005/Atom"> <price>123</price> <atom:link rel="duh" href="/abc/123"/> <atom:link rel="abc" href="/def/234"/> </order>
谢谢, 卢卡斯
答案 0 :(得分:3)
如果您使用MOXy JAXB实现,则可以使用@XmlSchema包级别注释来控制前缀:
@javax.xml.bind.annotation.XmlSchema(
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "atom", namespaceURI = "http://www.w3.org/2005/Atom")
})
package org.example.domain;
要使用MOXy JAXB,您需要在模型类中使用名为jaxb.properties的文件,并带有以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
有关在泽西使用MOXy的示例,请参阅: