两个完全不同的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>
答
是映射到route
元素的类可以有@XmlElement(name="language")
映射的属性,所以可以映射到info
元素的类。这是因为映射的范围是类。
你能发布一个示例XML文档吗? – 2012-07-11 10:16:38
我认为,为了清楚起见,您应该考虑将不同的''元素放在不同的名称空间中,而不管是否可能使其工作。实际上,对我来说,在''语言中调用''是没有意义的。它不仅仅是一种语言,而是一种信息或类似的东西,因为它似乎只是一个字符串和字符串所在语言的包装。 –
Thor84no
2012-07-11 13:27:37