2011-12-08 107 views
2

我有一个类,如下列:JAXB,设置命名空间的所有子元素

@XmlRootElement(name = "a") 
public class ClassA { 
    @XmlElement(name = "b", namespace = "http://mynamespace.com") 
    private ClassB; 
} 

这将导致以下XML:

<ns2:a> 
    <ns2:b> 
     <c/> 
    </ns2:b> 
</ns2:a> 

ClassB及其所有属性类都在一个不是由我写的单独的库中。我如何强制这些子类使用我给ClassB的命名空间?就像这样:

<ns2:a> 
    <ns2:b> 
     <ns2:c/> 
    </ns2:b> 
</ns2:a> 

回答

2

也许把XmlSchema标记信息包B级

+0

但是'ClassB'是在外部库?或者你是否建议创建一个具有相同名称的虚拟包,并将XmlSchema注释放在其上? – Dario

+0

我不能建议,因为我自己没有尝试过。但是,我认为这可以提供帮助。 – korifey

+1

+1 - 有关JAXB和名称空间的更多信息,请参阅:http://blog.bdoughan.com/2010/08/jaxb-namespaces.html –

相关问题