我想在“编组”时为我的xml属性提供自定义名称空间。我知道有两种方法可以实现这一目标。一个是重写“NameSpacePrefixMapper”类的方法,如果我们倾向于使用包'javax.xml.bind'而另一种方法是在packege-info.java中定义
@javax.xml.bind.annotation.XmlSchema(
namespace = "http://base.google.com/ns/1.0",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "g",
namespaceURI="http://base.google.com/ns/1.0")
}
)
package com.test;
这对我来说很好,但它为所有属性提供了名称空间,如下面的
<g:feed xmlns:g="http://base.google.com/ns/1.0" xmlns="http://www.w3.org/2005/Atom">
<g:title>intersportOnlineshopping</g:title>
<g:link>http://www.intersport.de</g:link>
<g:summary>it is a merchantaised online shopping system<summary>
<g:entry>
<g:articleID>7611319580577</g:articleID>
<g:articleTitle>ETIREL Damen Bikinihose »Melly solid«</g:articleTitle>
<g:size>0</g:size>
</g:entry>
<g:feed>
我不想那样。我希望名称空间仅用于我想要的属性(如下所示)。
<feed xmlns:g="http://base.google.com/ns/1.0" xmlns="http://www.w3.org/2005/Atom">
<title>intersportOnlineshopping<title>
<link>http://www.intersport.de<link>
<summary>it is a merchantaised online shopping system</g:summary>
<entry>
<articleID>7611319580577<articleID>
<g:articleTitle>ETIREL Damen Bikinihose »Melly solid«</g:articleTitle>
<g:size>0</g:size>
</entry>
<feed>
我该怎么办?感谢您的帮助
答案 0 :(得分:0)
将@XmlSchema
注释更改为仅指定名称空间前缀。然后在要@XmlElement
注释的属性上,您需要命名空间参数。