我想知道如何在jaxb中仅键入一次名称空间,因为在每个字段中我都需要放置名称空间。
下面的代码显示了它。

@XmlRootElement(name = "nfeProc", namespace = "http://www.portalfiscal.inf.br/nfe")
@XmlAccessorType(XmlAccessType.FIELD)
class NFeProc {

    @XmlElement(name = "NFe", namespace = "http://www.portalfiscal.inf.br/nfe")
    private NFe nfe;

    @XmlAttribute(name = "versao")
    private String versao;

    public NFe getNfe() {
        return nfe;
    }

    public void setNfe(NFe nfe) {
        this.nfe = nfe;
    }

    public String getVersao() {
        return versao;
    }

    public void setVersao(String versao) {
        this.versao = versao;
    }

}

我只想放一次。
谢谢

最佳答案

您可以使用@XmlSchema注释在程序包级别进行设置。通过将元素形式默认设置为合格,所有没有通过注释指定名称空间的元素都将属于给定名称空间。

包信息.java

@XmlSchema(
    namespace = "http://www.portalfiscal.inf.br/nfe",
    elementFormDefault = XmlNsForm.QUALIFIED)
package example;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;


了解更多信息


http://blog.bdoughan.com/2010/08/jaxb-namespaces.html

07-24 21:30