2010-08-13 40 views
4

當使用Ant的xjc2任務上一些有效的XML文檔綁定,我得到以下失敗消息:JAXB Ant任務錯誤:xjc2 [錯誤]空未知地點

[xjc2] [ERROR] null 
[xjc2] unknown location 

的文件是非常相似的其它文件已成功綁定,所有導入的模式都存在。生成詳細模式運行xjc:

Parent is not Defined Class...I cannot get the fields from this class 

任何人都知道這意味着什麼?

回答

4

模式正確性檢查

在我們使用XJC的,我們已經看到了類似的問題(見下面的鏈接),這是通過禁用模式正確性檢查解決:

嘗試使用以下System屬性來禁用模式正確性檢查。

-Dcom.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.noCorrectnessCheck=true 

對於螞蟻,嘗試:

<xjc target="src"> 
    <schema dir="src" includes="**/*.xsd" excludes="**/debug.xsd"/> 
    <arg value="-nv" /> 
</xjc> 

從以下頁面的-nv參數涉及架構正確性檢查:

進入代碼

您可以嘗試使用XJC交互編程(見下文)和插件在自己的EntityResolver,看看那裏的進口/包括失敗:

import com.sun.codemodel.*; 
import com.sun.tools.xjc.*; 
import com.sun.tools.xjc.api.*; 

SchemaCompiler sc = XJC.createSchemaCompiler(); 
sc.setEntityResolver(new YourEntityResolver()); 
sc.setErrorListener(new YourErrorListener()); 
sc.parseSchema(SYSTEM_ID, element); 
S2JJAXBModel model = sc.bind(); 
+0

我想提供這種說法的xjc2任務爲。我把它作爲一個孩子添加到節點(我的其他參數旁邊)。我收到以下錯誤: 「無法識別的參數-Dcom.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.noCorrectnessCheck = true」 – 2010-08-16 12:15:49

+0

也嘗試沒有「= true」位。同樣的結果。 – 2010-08-16 12:16:33

+0

我已經更新了我的答案。 ant任務中的-nv參數似乎與模式正確性檢查相關。 – 2010-08-16 13:38:21