2010-11-02 233 views
1

的XML相同的XML元素看起来像不同的模式类型取决于属性

<root> 
<service name="product" /> 
<service name="sim" /> 
<service name="blub" /> 
</root> 

架构应该像

<xs:element name="root"> 
<xs:complexeType> 
<xs:element type='serviceProduct' name='service' /> 
<xs:element type='serviceSim' name='service' /> 
<xs:element type='serviceBlub' name='service' /> 
</xs:complexeType> 
</xs:element> 

是否有可能与JAXB绑定做到这一点?我不能改变xml,但我不想改变产品,sim,blub的java类,但它们都是相同的xml元素。

使用类绑定变元可以更改类名称,但是如何才能对同一元素执行此操作,但具有不同的属性?

感谢, 拉尔夫

回答

0

另一个解决方案是在这里... Java/JAXB: Unmarshall XML attributes to specific Java object attributes

但我宁愿在架构的解决方案。它可以按照“绑定选择示例”中的描述进行工作,该示例演示了如何将选择模型组绑定到Java接口... http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html#wp155808

此解决方案的问题在于@bindingStyle属性不再允许JAXB 2.0。

任何想法?

相关问题