不同的模式类型取决于属性
问题描述:
的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元素。
使用类绑定变元可以更改类名称,但是如何才能对同一元素执行此操作,但具有不同的属性?
感谢, 拉尔夫
答
另一个解决方案是在这里... 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。
任何想法?