我需要在我的项目中使用 FpML 并努力通过 JAXB 生成 Java 类:
[ERROR] Element "{http://www.fpml.org/FpML-5/confirmation}tradeId" shows up in more than one properties.
line 1142 of file:/D:/FpML/schema/fpml/5-5/confirmation/fpml-doc-5-5.xsd
fpml-doc-5.5.xsd 被导入到主模式中。
我尝试使用内联自定义绑定(我放弃了使用外部文件),如下所示:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:fpml-annotation="http://www.fpml.org/annotation" targetNamespace="http://www.fpml.org/FpML-5/confirmation" ecore:documentRoot="FpML" ecore:nsPrefix="conf" ecore:package="org.fpml.confirmation" version="$Revision: 10163 $" elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:version="1.0">
....
<xsd:element name="issuer" type="IssuerId"></xsd:element>
<xsd:element name="tradeId" type="TradeId">
<xsd:annotation>
<xsd:appinfo>
<jaxb:property name="tradeIdentifierId"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
同样的错误仍然发生。
直接编辑架构以重命名 tradeId 可以解决问题,但我不能这样做。不过,我仍然可以定义自己的内联绑定。
你能解释一下吗?