我有一个复杂的模式,可以导入另外两个模式。我想从同一个复杂模式生成JAXB类。我在IDE和命令行中都尝试过。但是我无法生成课程。
parsing a schema...
[错误] src-resolve:无法将名称'act:Activity'解析为(n)'type definition'组件。 文件第22行:/ C:/Program%20Files/IBM/SDP/runtimes/base_v7/bin/Request.xsd
我通过命令行得到了上述错误。
知道如何从这个模式生成类。 XJC是否支持导入?
任何指针都会有所帮助。
答案 0 :(得分:0)
JAXB的XJC实用程序肯定支持import和include。首先要检查的是导入/包含的文件包含可以解析的有效系统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"
架构Catlog - 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致电
使用-catalog
标志引用架构目录。
xjc -d out -catalog catalog.cat customer.xsd
了解更多信息