【问题标题】:Mapping namespaces using JAXB in Java在 Java 中使用 JAXB 映射命名空间
【发布时间】:2013-12-06 06:58:02
【问题描述】:

目前我正在通过为具有以下注释的包创建一个 package-info.java 文件来映射命名空间。

@XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED,
namespace = "http://example.com",
xmlns = {
    @XmlNs(prefix = "i",
    namespaceURI = "http://www.w3.org/2001/XMLSchema-instance")
})

正如您所见,我的一个命名空间没有前缀,而另一个没有前缀,这目前有效,但我想要另一种映射命名空间的方式,而无需创建单独的文件,任何人都知道我如何放置命名空间在我的班级内与注释一起映射?

在我的 XML 中,命名空间声明位于我的根元素中,如下所示:

<RootElement xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://example.com">...

对于根元素,我的类声明和注释如下所示。

@XmlRootElement(name="RootElement)
public static class RootElement{
   ........
} 

谢谢。

【问题讨论】:

    标签: java xml serialization jaxb deserialization


    【解决方案1】:

    希望以下内容有所帮助:

    @XmlSchema

    包裹信息

    @XmlSchema(
            elementFormDefault = XmlNsForm.QUALIFIED,
            namespace = "http://example.com")
    package forum20127191;
    
    import javax.xml.bind.annotation.*;
    

    根元素

    package forum20127191;
    
    import javax.xml.bind.annotation.*;
    
    @XmlRootElement(name="RootElement")
    public class RootElement {
    
        private String foo;
    
        public String getFoo() {
            return foo;
        }
    
        public void setFoo(String foo) {
            this.foo = foo;
        }
    
    }
    

    没有@XmlSchema

    如果您不希望在包级别 @XmlSchema 注释上指定命名空间限定,那么您需要将每个映射限定为元素的命名空间限定。您的 RootElement 类需要更改为外观。

    package forum20127191;
    
    import javax.xml.bind.annotation.*;
    
    @XmlRootElement(name="RootElement", namespace="http://example.com")
    public class RootElement {
    
        private String foo;
    
        @XmlElement(namespace="http://example.com")
        public String getFoo() {
            return foo;
        }
    
        public void setFoo(String foo) {
            this.foo = foo;
        }
    
    }
    

    更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 2013-09-06
      • 2014-11-07
      • 2019-11-07
      • 2020-10-11
      相关资源
      最近更新 更多