1

首先我想说我已经阅读了http://blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html

我的应用程序中有多个包,例如

my.xml.pkg1 ,
my.xml.pkg2,
my.xml.pkg3,
my.xml.pkg4

ETC

  1. 我需要将 package-info.java 放在每个包中吗?例如,pkg1 中的 package-info.java ,pkg2 等?
  2. 或者一个全局 package-info.java 可以保存所有信息。就像我想将 package-info.java 文件放在 my.xml 包中并使其工作。
  3. 如果这个答案是“是”,就会出现下一个问题。如果我放了一个全局 package-info.java 那么我应该如何指定 XmlSchema ?命名空间字段应该是什么?

  4. 一个包中是否可以有多个 XmlRootElement ?就像我在 my.xml.pkg1 中有 2 个包含 XMLRootElement 的 java 类,并且每个 Root 元素都有不同的命名空间?在这种情况下,我们如何指定架构?

4

1 回答 1

1

以下是我对您的问题的回答:

1 - 我需要将 package-info.java 放在每个包中吗?例如,pkg1 中的 package-info.java ,pkg2 等?

package-info.java是一种用于应用包级元数据的 java 机制。因此,放在一个包中的注释不会影响另一个包,这意味着您需要为每个包做一些事情。

2 - 或者一个全局 package-info.java 可以保存所有信息。就像我想将 package-info.java 文件放在 my.xml 包中并使其工作。

否,请参阅问题 1 的答案。

3 - 如果这个答案是“是”,就会出现下一个问题如果我放了一个全局 package-info.java 那么我应该如何指定 XmlSchema?命名空间字段应该是什么?

见问题 1 的答案。

4 - 一个包中是否可以有多个 XmlRootElement ?就像我在 my.xml.pkg1 中有 2 个包含 XMLRootElement 的 java 类,并且每个 Root 元素都有不同的命名空间?在这种情况下,我们如何指定架构?

是的,@XmlRootElement每个包裹可以有多个。每个类只能有一个,并且名称和命名空间的组合在用于引导JAXBContext.

如果您有对应于不同名称空间的元素,那么就 XML 模式而言,您将拥有导入其他模式的模式,因为单个 XML 模式对应于单个名称空间。

于 2013-11-01T14:48:34.273 回答