如何在java中的包注释中定义多个xml命名空间

时间:2013-08-30 08:31:57

标签: java jaxb annotations xsd

对于我的Web服务,我已经在包中的java类中定义了请求和响应XML结构,我使用了@XmlElement注释。

我还有一个package-info.java文件,为整个软件包定义@XmlSchema也定义了XML元素的前缀

@XmlSchema(namespace = XmlNamespace.MY_SERVICE,
  xmlns = { @XmlNs(namespaceURI = XmlNamespace.MY_SERVICE, prefix = "ser")},
  elementFormDefault = XmlNsForm.QUALIFIED)

问题是:我为请求使用了2个名称空间,因此我想要一些带有<ser:element1>前缀的XML元素和带有<req:element2>的其他元素。 生成的wsdl和request已经给了我2个不同的前缀,但是第二个前缀不是我想要的 - “req”。

我怎样才能做到这一点?我试过

@XmlSchema(namespace = XmlNamespace.MY_SERVICE,
  xmlns = { @XmlNs(namespaceURI = XmlNamespace.MY_SERVICE, prefix = "ser"),
        @XmlNs(namespaceURI = XmlNamespace.MY_SERVICE_XSD, prefix = "per2")},
  elementFormDefault = XmlNsForm.QUALIFIED)

但它不起作用。

0 个答案:

没有答案