2

我想在“编组”时为我的 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> 

我怎样才能做到这一点 。感谢您的帮助

4

1 回答 1

0

将注释更改@XmlSchema为仅指定命名空间前缀。然后在@XmlElement要成为命名空间限定的属性的注释上指定命名空间参数。

于 2013-05-07T10:20:09.533 回答