【问题标题】:Creating JAXB classes for a complex schema为复杂模式创建 JAXB 类
【发布时间】:2013-10-24 10:29:03
【问题描述】:

我有一个导入其他两个模式的复杂模式。我想从同一个复杂模式生成 JAXB 类。我在 IDE 和命令行中都试过了。但我无法生成类。

 parsing a schema...

[错误] src-resolve:无法将名称“act:Activity”解析为(n)“类型定义”组件。 文件第 22 行:/C:/Program%20Files/IBM/SDP/runtimes/base_v7/bin/Request.xsd

我通过命令行得到上述错误。

知道如何从这个模式生成类。 XJC 支持导入吗?

任何指针都会有所帮助。

【问题讨论】:

    标签: import jaxb xsd xjc


    【解决方案1】:

    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"
    

    Schema 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
    

    更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2022-01-09
      • 1970-01-01
      相关资源
      最近更新 更多