6

我有这个包裹信息

/**
 * Created by mflamant on 13/02/2017.
 */
@javax.xml.bind.annotation.XmlSchema(namespace = "namespace1", xmlns = {@XmlNs(prefix = "ns4", namespaceURI = "namespace1")}, elementFormDefault = XmlNsForm.QUALIFIED)

package com.cisco.adt.portal.data.model.API.Equipment;

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

但我想有 2 个命名空间,但我试图这样做:

/**
 * Created by mflamant on 13/02/2017.
 */
@javax.xml.bind.annotation.XmlSchema(namespace = "namespace1", xmlns = {@XmlNs(prefix = "ns4", namespaceURI = "namespace1")}, elementFormDefault = XmlNsForm.QUALIFIED)
@javax.xml.bind.annotation.XmlSchema(namespace = "namespace2", xmlns = {@XmlNs(prefix = "ns4", namespaceURI = "namespace2")}, elementFormDefault = XmlNsForm.QUALIFIED)

package com.cisco.adt.portal.data.model.API.Equipment;

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

但我有一个错误:“重复注释”,这是否可能有 2 个命名空间?

谢谢你。

4

2 回答 2

8

您可以有两个名称空间,但不能使用相同的前缀。

我建议不要在你的类中使用注释,而是package-info.java在你的模型所在的包中添加文件。

例如,一旦我建立了一个站点地图,我需要添加更多的命名空间,因为谷歌搜索控制台的严格检查规则。

package-info.java文件中,我使用以下语法添加了更多命名空间。

@XmlSchema(
    xmlns = { 
        @XmlNs(prefix = "video", namespaceURI = "http://www.google.com/schemas/sitemap-video/1.1"),
        @XmlNs(prefix = "", namespaceURI = "http://www.sitemaps.org/schemas/sitemap/0.9")
    }
)

/*
 * xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
 * xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
 */

package com.example.myapplication.model.sitemap.pojo;

import javax.xml.bind.annotation.XmlNs;
import javax.xml.bind.annotation.XmlSchema;
于 2017-02-13T12:41:28.237 回答
1

您应该根据文档使用一组注释:

https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlSchema.html

例如:

@javax.xml.bind.annotation.XmlSchema (
      xmlns = {
        @javax.xml.bind.annotation.XmlNs(prefix = "po",
                   namespaceURI="http://www.example.com/myPO1"),

        @javax.xml.bind.annotation.XmlNs(prefix="xs",
                   namespaceURI="http://www.w3.org/2001/XMLSchema")
      }
    )

java 文档在 xmlns 块的末尾确实有一个错误的括号,我在上面的示例中已经更正了。

于 2017-02-13T12:45:56.080 回答