1

プロジェクトで 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 の名前を変更すると問題は解決しますが、それはできません。ただし、独自のインライン バインディングを定義することはできます。

光を当ててもらえますか?

4

1 に答える 1

0

JAXB バージョン 2 を使用します。FPML 5.5 の確認に問題なく jaxb-xjc 2.1.13 を使用しています。

于 2014-01-17T09:51:40.643 に答える