当前位置: 首页 > 面试题库 >

如何为docbook创建JAXB绑定

关飞翔
2023-03-14
问题内容

当我对运行xjc时docbook.xsd,出现很多错误:

parsing a schema...
[ERROR] Property "Revision" is already defined. Use <jaxb:property> to resolve this conflict.
  line 5965 of file:/C:/log/11/04/20/docbook-4.5/dbpoolx.xsd

[ERROR] The following location is relevant to the above error
  line 521 of file:/C:/log/11/04/20/docbook-4.5/dbpoolx.xsd

[ERROR] Element "seealsoie" shows up in more than one properties.
  line 1737 of file:/C:/log/11/04/20/docbook-4.5/dbhierx.xsd

[ERROR] The following location is relevant to the above error
  line 1733 of file:/C:/log/11/04/20/docbook-4.5/dbhierx.xsd

[ERROR] Element "imageobjectco" shows up in more than one properties.
  line 3526 of file:/C:/log/11/04/20/docbook-4.5/dbpoolx.xsd

[ERROR] The following location is relevant to the above error
  line 3525 of file:/C:/log/11/04/20/docbook-4.5/dbpoolx.xsd

....等等。

我已经尝试使用docbook版本4.5和版本5.0,但是结果相同。

任何指针都会被忽略。谢谢。


问题答案:

您可以将以下绑定文件与DocBook版本5 XML Schema一起使用:

绑定文件

<jxb:bindings 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    jxb:extensionBindingPrefixes="xjc"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xml="http://www.w3.org/XML/1998/namespace"
    xmlns:docbook="http://docbook.org/ns/docbook"
    version="2.1">


    <jxb:globalBindings>
        <xjc:simple />
    </jxb:globalBindings>

    <jxb:bindings schemaLocation="docbook.xsd">
            <jxb:bindings node="//xs:attributeGroup[@name='db.common.attributes']/xs:attribute[@name='version']">
                <jxb:property name="commonVersion"/>
            </jxb:bindings>
            <jxb:bindings node="//xs:attributeGroup[@name='db.common.attributes']/xs:attribute[@name='revision']">
                <jxb:property name="commonRevision"/>
            </jxb:bindings>
            <jxb:bindings node="//xs:attributeGroup[@name='db.common.attributes']/xs:attribute[@ref='xml:lang']">
                <jxb:property name="xmlLang"/>
            </jxb:bindings>
            <jxb:bindings node="//xs:attributeGroup[@name='db.common.linking.attributes']/xs:attribute[@ref='xlink:role']">
                <jxb:property name="xlinkRole"/>
            </jxb:bindings>
            <jxb:bindings node="//xs:attributeGroup[@name='db.common.linking.attributes']/xs:attribute[@ref='xlink:type']">
                <jxb:property name="xlinkType"/>
            </jxb:bindings>
            <jxb:bindings node="//xs:attributeGroup[@name='db.common.linking.attributes']/xs:attribute[@ref='xlink:title']">
                <jxb:property name="xlinkTitle"/>
            </jxb:bindings>
            <jxb:bindings node="//xs:element[@name='table']/xs:complexType/xs:attribute[@name='title']">
                <jxb:property name="titleAttribute"/>
            </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>

包含绑定的命令行为:

xjc -extension -d out -b binding.xml docbook.xsd


 类似资料:
  • 这是一个最基本的 Docbook 文档 <?xml version='1.0' encoding="UTF-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5/zh_cn" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> “分子元素”一节中详细介绍

  • 在 Linux 系统中,DocBook 环境主要由以下几个软件包提供 libxml2 XML 解析器 docbook-xml DocBook 的 DTD 定义 libxslt XSL 转换程序 docbook-xsl 用来处理 DocBook-XML 的样式表 xsltproc 这个转换程序就在这个软件包中   还有两个 JAVA 的转换程序 saxon、 xalan,不推荐 例如,在 Archl

  • 我正在使用来自第三方系统的一组DTD。我们的目标是将XML请求(符合这些DTD的请求映射到java中,然后将XML响应发送回系统)。 DTD是一成不变的(我无法控制更改它们)。 因此,为了进行映射,我使用XMLSpy将dtd转换为XML Schemas (xsd ),然后使用XJC编译器创建Jaxb绑定类。我用的是Java 7。 问题是,DTD 实际上没有命名空间。我有20个不同的DTD。10 表

  • 问题内容: 我有一个Json响应,如下所示: 我不知道参数的名称和数量。因此,我需要并且想要将所有这些参数绑定到由<“ paramX”,“ valueX”>元组组成的java.util.Map字段。为此,我尝试了以下代码,但“ parametersMap”字段返回null。 如何使用JAXB批注实现这种绑定? 提前致谢。 问题答案: 基本上,您需要一个xml适配器。您可以摆弄KeyValue类上的

  • DocBook是一种XML词汇表,让您创建体现逻辑结构的文档。使用免费工具连同DocBook XSL样式表,您可以发布您的内容作为HTML网页和PDF格式的文件,而且还支持许多其他格式。

  • 问题内容: 如何从jar库创建OSGi捆绑包? 问题答案: 如果您使用的是eclipse:有一个向导。 它允许您选择许多jar库,并创建一个包含这些jar的插件项目(即OSGi捆绑包)。 你可以在这里找到它: