2013-11-01 44 views
1

首先說我已閱讀http://blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html多個包的JAXB命名空間前綴配置?所有我想的

我有多個包在我的應用程序,像

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

  1. 我是否需要把包的信息。 java在每個包中?例如, package-info.java在pkg1,pkg2等?
  2. 或者一個全局的package-info.java可以容納所有的信息。像我 想要將package-info.java文件放在my.xml包中,並且 使它工作。
  3. 如果這個答案是「是」,就會出現下一個問題如果我把一個全局的 package-info.java那麼我應該如何指定XmlSchema?什麼 應該是命名空間字段?

  4. 是否可以在一個包中包含多個XmlRootElement? 就像我在my.xml.pkg1中有兩個包含XMLRootElement的java類,每個Root元素有不同的命名空間?在那種情況下,我們如何指定模式?

回答

1

下面是我的問題的答案:

1 - 我需要把package-info.java在每個包如package-info.java中的pkg1,則pkg2?等等?

package-info.java是用於應用程序包級元數據的java機制。因此,將註釋放在一個包中不會影響其他包,這意味着您需要爲每個包執行一些操作。

2 - 或者一個全局的package-info.java可以容納所有的信息。就像我想把package-info.java文件放在my.xml包中一樣,並且使其可以工作 。

沒有,請參閱回答質疑1

3 - 下一個問題出現,如果這個人的回答是「YES」,如果我把一個全球性的package-info.java那麼我應該如何指定的XmlSchema ? 什麼應該是命名空間字段?

見回答問題1

4 - 是否有可能有多個XmlRootElement將在一個包?就像我在my.xml.pkg1 中有兩個包含XMLRootElement的java類,每個Root元素有不同的命名空間?在這種情況下,我們如何 指定模式?

是的,每個包裝可能有多個@XmlRootElement。每個類只能有一個,名稱和名稱空間的組合在用於引導JAXBContext的類的範圍內必須是唯一的。

如果您有與不同名稱空間相對應的元素,那麼就XML Schema而言,您將擁有導入其他模式的模式,因爲單個XML模式對應於單個名稱空間。

+0

感謝您的好評,請您分享一下我的第4個問題的例子嗎? – web2dev

+0

@Nusrat你是否得到第四個問題的例子? – LMK

+0

據我記得,我必須提供獨特的名稱和名稱空間,如Blaise在這些類中所說的,如 '@XmlRootElement(name =「x」,namespace =「xy」)' – web2dev