2012-02-03 29 views
0

我使用最後一個jibx jars v1.2.3和maven jibx插件來從FIXML模式生成代碼。我得到以下錯誤:JIBX「Error:Missing required <all>,<choice> ...」

Error: Missing required <all>, <choice>, or <sequence> child element for group 'BatchHeaderElements' at (line 69, col 4, in fixml-components-base-4-4-FIA-1-1.xsd) 

對於每一個組定義,如:

<xs:group name="BatchHeaderElements"> 
    <xs:sequence/> 
</xs:group> 

我該如何解決這個問題?

回答

1

JiBX告訴你,你需要指定你想要的序列中的元素。您目前有一個空序列聲明。
這將是一個組內的有效序列聲明:

<xs:group name="BatchHeaderElements"> 
    <xs:sequence> 
    <xs:element name="GroupName" type="xs:string"> 
    <xs:element name="GroupDescription" type="xs:string"> 
    </xs:sequence> 
</xs:group> 

希望這有助於。
唐科利
JiBX的Maven插件作者

+0

不過是這篇文章出版模式FIXML,我不能改變(http://fixprotocol.org/specifications/fix4.4fixml)。我注意到JAXB生成的代碼沒有問題。這是JIBX codegen中的一個已知問題嗎? – arrehman 2012-02-06 15:17:16

+0

ARR, 這是不好的XML。沒有任何順序是沒有意義的。 JiBX可以處理大多數有問題的模式定義,但在這種情況下,我們通常會修復模式定義,然後運行JiBX。 這可以通過讀取模式並運行XSLT(轉換)來解決問題,從而在發佈的模式上完成。在我們的標準化模式庫中有幾個這樣的例子。在我們的模式庫中,查看我們的倉庫中的opentravel.org模式和webservicex模式[https://github.com/jibx/schema-library]。 – 2012-02-07 17:22:20

相關問題