javajaxws和enuciate如何更改enuciate的默认XSD命名约定
我正在使用Enounceate为我正在开发的Wicket web应用程序生成一个SOAP端点,我有几个问题还没有找到解决方案
1如何更改xsd文件的名称?我浏览了FAQ,它告诉我做类似的事情:
<xml> <schema namespace="http://api.example.com/data" file="data.xsd"/> </xml>
然而,我还没有完全弄清楚如何为我的数据对象设置targetNamespace。我已经通过@WebService(targetNamespace=“blah”)为我的服务完成了这项工作,但是我如何注释我的数据对象,让它们明确它们应该属于哪个名称空间呢
2 Enreactate可以很好地生成XSD,但我并不特别喜欢它使用的元素名。我有一个ServiceRequest和ServiceResponse对象。ServiceRequest对象有一个用户对象列表。ServiceResponse有一个组对象列表。Enounciate建议ServiceRequest中的每个“用户”对象都应该使用标记“<;users>;”。我觉得使用单数形式“<;user>;”更有意义因为标签实际上只包含一个用户。有可能改变这种行为吗?如果有,如何改变
提前谢谢
# 1 楼答案
所以,需要明确的是,除了关于命名模式文件的问题之外,你的问题实际上更多的是关于JAXB,而不是关于阐明。JAXB是一个规范,它定义了Java对象如何与XML进行(反)序列化,并阐明如何符合该规范
无论如何,将名称空间应用于Java对象的最简单方法是使用包信息。java类包中的java文件。用@XmlSchema注释包,并将名称空间设置为所需的值
可以使用@XmlElement注释自定义访问器与XML之间的序列化方式,例如:
以下是JAXB Java文档
https://jaxb.dev.java.net/nonav/2.1.9/docs/api/
或者在谷歌上搜索一个好的JAXB教程