2013-10-24 109 views
2

我有一個複雜的模式導入兩個其他模式。我想從同一個複雜模式生成JAXB類。我在IDE和命令行中都嘗試過。但我無法生成這些類。爲複雜模式創建JAXB類

parsing a schema... 

src-resolve:無法將名稱'act:Activity'解析爲(n)'類型定義'組件。 第22行文件:/ C:/Program%20Files/IBM/SDP/runtimes/base_v7/bin/Request.xsd

我通過命令行得到上述錯誤。

任何想法如何從這個模式生成類。 XJC是否支持導入?

任何指針都會有幫助。

回答

0

JAXB的XJC實用程序絕對支持導入和包含。首先要檢查的是導入/包含的文件包含可解析的有效系統ID。如果他們不這樣做,您可以利用模式目錄,以便XJC可以找到輔助XML模式。

架構目錄 - TR9401格式

-- Match address.xsd by URL -- 
SYSTEM "http://www.example.com/address/address.xsd" "imports/address.xsd" 

-- Match phone-number.xsd by namespace URI -- 
PUBLIC "http://www.example.com/phone-number" "imports/phone-number.xsd" 

架構目錄下載 - OASIS XML目錄格式

<!DOCTYPE catalog 
    PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" 
      "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 

    <system 
     systemId="http://www.example.com/address/address.xsd" 
     uri="imports/address.xsd"/> 
    <public 
     publicId="http://www.example.com/phone-number" 
     uri="imports/phone-number.xsd"/> 

</catalog> 

XJC呼叫

架構目錄使用引用國旗。

xjc -d out -catalog catalog.cat customer.xsd 

更多信息