2012-09-14 42 views
2

當我想用XJC編譯我的XSD(我不是作者)時遇到了麻煩。xjc類型定義名稱解析錯誤

具體來說,我得到的錯誤(其實有更多像這樣的):

[ERROR] src-resolve: Cannot resolve the name "ifopt:CountryRefStructure" to a(n) 'type definition' component. 
    line 131 of file:/E:/ansdef/schema/siri-1.3/siri/siri_situationIdentity-v1.1.xsd 

這是奇怪的,因爲上述文件(siri_situationIdentity-v1.1.xsd)指的是可疑的類型聲明另一個XSD。

我試過幾件事情

  • 開關的Java版本,以獲得不同的XJC
  • 直接嘗試了一些不同的XJC從java.net
  • 應用於一些修改文件,以便在當前應用JAXB解決方法有關包括/進口被刪除
  • 試圖使用依賴模式的整個目錄作爲xjc的目標
  • Altova XMLSpy Java代碼生成工作我們ll但沒有錯誤(但是沒有辦法去找我)

沒有人工作。

有沒有人知道錯誤信息是由什麼引起的?我沒有看到這一點。 您可以直接從這裏所有的XSD: Verband Deutscher Verkehrsunternehmen (VDV) - Ist-Daten-Schnittstellen

命令行我試過(其中包括)是:

xjc -readOnly -d generated -npa -target 2.1 -verbose VDV453_incl_454_V2.3e.xsd 

任何幫助或提示是極大的讚賞。

問候

回答

3

此處的解決方案是使用-nv開關禁用嚴格驗證。

1

該錯誤消息是由XJC未能成功地加載其他模式文檔引起的。你有幾個選擇。

  • xjc文檔建議它接受多個命令行參數,因此請嘗試指定您希望它讀取的所有模式文檔作爲命令行參數。
  • 你也可以嘗試找出它用於解析相對引用的基URI,或者(更直接地)...
  • 你可以(嘗試)弄清楚如何告訴XJC使用什麼基URI。
  • 由於XJC也支持XML目錄,因此您可能可以使用目錄來告訴它在哪裏查找您的頂級架構文檔所指的文件。
+0

如果我指定了所有模式和從屬模式所在的目錄,它會有所作爲嗎?我已經嘗試過沒有成功。 – Andreas

相關問題