如何将xml架构中的不同命名空间映射到不同的类

时间:2012-02-24 18:59:39

标签: java web-services jaxb axis2 spring-ws

我有一个要求,我需要将xml架构中的不同命名空间映射到不同的包。包名称应与命名空间不同。因此,如果在我的xml架构http://sampl.com/firtNamespacehttp://sampl.com/secondnamesapce中定义了2个命名空间,我希望它们映射到包,例如com.myexample.fn1com.myexample.simpleapp

我已经读过,这可以通过jaxb绑定文件来实现,但我无法得到任何具体的例子。

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用@XmlSchema文件中的pakcage-info.java注释来定义每个包的xml命名空间。

答案 1 :(得分:0)

这可以使用外部JAXB绑定文件来完成。以下是oracle JAXB文档的URL:JaXb docs

答案 2 :(得分:0)

我使用Maven 2 JAXB 2.x插件,你可以找到here。该插件基于XSD文件创建JAXB类。如果您的WSDL由两个具有不同命名空间的不同模式组成(您可以提取两个XSD文件),则将根据命名空间在两个不同的包中生成它们。使用该插件,您还可以强制在同一目录中生成两个模式类,指示目标程序包,但这不是您所关注的并且不使用该选项。