首先,我想说我已阅读http://blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html
我的应用程序中有多个包,比如
my.xml.pkg1 ,
my.xml.pkg2,
my.xml.pkg3,
my.xml.pkg4
等
如果这个答案是“是”,那么下一个问题就出现了。如果我把全球化 package-info.java然后我应该如何指定XmlSchema?什么 应该是命名空间字段吗?
是否可以在一个包中包含多个XmlRootElement? 就像我在my.xml.pkg1中有2个包含XMLRootElement的java类,每个Root元素都有不同的名称空间?在这种情况下,我们如何指定模式?
答案 0 :(得分:1)
以下是我对你问题的回答:
1 - 我是否需要将package-info.java放在每个包中?例如,pkg1,pkg2等中的package-info.java?
package-info.java
是一种用于应用包级别元数据的java机制。因此,放在一个包中的注释不会影响另一个包,这意味着您需要为每个包执行操作。
2 - 或者全局package-info.java可以保存所有信息。就像我想把package-info.java文件放在my.xml包中并make 它有效。
不,请参阅问题1的答案。
3 - 如果这个答案是“是”,则会出现下一个问题如果我放了一个全局的package-info.java那么我应该如何指定XmlSchema? 命名空间字段应该是什么?
见问题1的答案。
4 - 是否可以在一个包中包含多个XmlRootElement?就像我在my.xml.pkg1中有2个包含XMLRootElement的java类 并且每个Root元素都有不同的命名空间?在这种情况下我们如何 指定架构?
是的,每个包可能有多个@XmlRootElement
。每个类只能有一个,并且名称和命名空间的组合在用于引导JAXBContext
的类的范围内必须是唯一的。
如果您有与不同名称空间相对应的元素,那么就XML Schema而言,您将拥有导入其他模式的模式,因为单个XML模式对应于单个名称空间。