两个完全不同的JAXB注释类,相同的@XmlElement名称。可能?

问题描述:

我们有一个现有的文档树。我们想要将这个树中的一些元素包装在一个元素中。两个完全不同的JAXB注释类,相同的@XmlElement名称。可能?

根据我们树中的哪个位置,元素将保存非常不同的内容。

所以我有一个DocumentPromptLanguage类和一个DocumentRouterLanguage类。他们有不同的父母和不同的孩子,但在XML中它们都被称为<language>

这可能没有适配器,或者必须通过元素名称消除XML的歧义?

样品:

<?xml version="1.0" encoding="utf-8"?> 
<doc> 
    <info> 
     <language> 
      <iso639>en</iso639> 
      <value>This is a sample document</value> 
     </language> 
     <language> 
      <iso639>es</iso639> 
      <value>Se trata de un documento de muestra</value> 
     </language> 
    </info> 
    <someElement> 
     <route> 
      <language> 
       <iso639>en</iso639> 
       <possibleValues>Yes|No|Maybe</possibleValues> 
       <prefix>For</prefix> 
      </language> 
      <language> 
       <iso639>es</iso639> 
       <possibleValues>sí|not|tal vez</possibleValues> 
       <prefix>para</prefix> 
      </language> 
      <when>Tuesday</when> 
      <afterTime>17.30</afterTime> 
      <goto></goto> 
     </route> 
    </someElement> 
</doc> 
+0

你能发布一个示例XML文档吗? – 2012-07-11 10:16:38

+0

我认为,为了清楚起见,您应该考虑将不同的''元素放在不同的名称空间中,而不管是否可能使其工作。实际上,对我来说,在''语言中调用''是没有意义的。它不仅仅是一种语言,而是一种信息或类似的东西,因为它似乎只是一个字符串和字符串所在语言的包装。 – Thor84no 2012-07-11 13:27:37

是映射到route元素的类可以有@XmlElement(name="language")映射的属性,所以可以映射到info元素的类。这是因为映射的范围是类。