- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有多个 XSD 文件,我想对它们运行 XJC 以创建 java 类对象,我将其用于进一步处理。问题:当我运行 XJC 命令时,我的一组 XSD 中的 2 个 XSD 出现问题。 XSD 是:
contactLM.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:w="http://w.com/xsd"
xmlns="http://w.com/location.contactlm"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
targetNamespace="http://w.com/location.contactlm"
elementFormDefault="qualified" jaxb:version="2.1">
<xsd:annotation>
<xsd:appinfo>
<jaxb:schemaBindings>
<jaxb:package name="location.contactlm"/>
</jaxb:schemaBindings>
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Contact" type="Contact" nillable="true"/>
<xsd:complexType name="Contact">
<xsd:sequence>
<xsd:element name="RefID" type="xsd:string" nillable="true"
minOccurs="0" gw:type="java.lang.String"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
contactM.xsd
<?xml version="1.0"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:w="http://w.com/xsd"
xmlns="http://w.com/location.contactm"
targetNamespace="http://w.com/location.contactm"
elementFormDefault="qualified"
xmlns:ns0="http://w.com/location.contactam"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.1">
<xsd:annotation>
<xsd:appinfo>
<jaxb:schemaBindings>
<jaxb:package name="location.contactm"/>
</jaxb:schemaBindings>
</xsd:appinfo>
</xsd:annotation>
<xsd:import namespace="http://w.com/location.contactam"
schemaLocation="ContactAM.xsd"/>
<xsd:element name="Contact" type="Contact" nillable="true"/>
<xsd:complexType name="Contact">
<xsd:sequence>
<xsd:element name="RefID" minOccurs="0" nillable="true"
type="xsd:string" gw:type="java.lang.String"/>
<xsd:element name="WorkPhone" minOccurs="0" nillable="true"
type="xsd:string" gw:type="java.lang.String"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
我知道这些 XSD 文件中引用了相同的“联系人”,这是一个问题。所以,我必须编写我的 XJB 文件。我编写了以下 xjb 文件:
<jaxb:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:gw="http://w.com/xsd"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="http://w.com/location.contactlm"
targetNamespace="http://w.com/location.contactlm"
jaxb:version="2.1">
<jaxb:bindings schemaLocation="ContactM.xsd">
<jaxb:bindings node=".//xs:element[@name='Contact']">
<jaxb:class name="ContactM"/>
</jaxb:bindings>
<jaxb:schemaBindings>
<jaxb:package name="location.contactm" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="ContactLM.xsd">
<jaxb:bindings node=".//xs:element[@name='Contact']">
<jaxb:class name="ContactCLM"/>
</jaxb:bindings>
<jaxb:schemaBindings>
<jaxb:package name="location.contactlm" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
但是当我这样做时,我收到以下错误:
xjc -d src -b C:\us\binding.xjb C:\us\trunk\shared\
parsing a schema...
346368376 / 346685920 (-1 / -1) (com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/CollectionTyp
eAttribute$JaxbAccessorF_collectionType)
[ERROR] Multiple <schemaBindings> are defined for the target namespace "http://w.com/location.contactm"
line 10 of file:/C:/us/trunk/contact/ContactM.xsd
[ERROR] Another <schemaBindings> is defined here
line 14 of file:/C:/us/trunk/contact/binding.xjb
[ERROR] Multiple <schemaBindings> are defined for the target namespace "http://w.com//trunk/contactlm"
line 5 of file:/C:/us/trunk/contact/ContactLM.xsd
[ERROR] Another <schemaBindings> is defined here
line 23 of file:/C:/us/trunk/contact/binding.xjb
[ERROR] compiler was unable to honor this schemaBinding customization. It is attached to a wrong place, or its inconsistent with other bindings.
line 14 of file:/C:/us/trunk/contact/binding.xjb
[ERROR] (the above customization is attached to the following location in the schema)
line 10 of file:/C:/us/trunk/contact/ContactM.xsd
[ERROR] compiler was unable to honor this schemaBinding customization. It is attached to a wrong place, or its inconsistent with other bindings.
line 23 of file:/C:/us/trunk/contact/binding.xjb
[ERROR] (the above customization is attached to the following location in the schema)
line 2 of file:/C:/us/trunk/contact/ContactLM.xsd
Failed to parse a schema.
我想我可能在 XJB 文件中做错了什么,但我无法解决该问题。请有人帮忙。
最佳答案
您主要需要做的是从 xsd 文件中删除方案绑定(bind)。我已经复制并测试了您的文件并且它有效。不过,我将对 ContactAM
的引用更改为 ContactLM
,假设这是一个拼写错误。
这是我的文件:
<?xml version="1.0"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:gw="http://w.com/xsd"
xmlns="http://w.com/location.contactm"
targetNamespace="http://w.com/location.contactm"
elementFormDefault="qualified"
xmlns:ns0="http://w.com/location.contactam"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.1">
<xsd:annotation>
<xsd:appinfo>
<!-- <jaxb:schemaBindings> -->
<!-- <jaxb:package name="location.contactm"/> -->
<!-- </jaxb:schemaBindings> -->
</xsd:appinfo>
</xsd:annotation>
<xsd:import namespace="http://w.com/location.contactlm"
schemaLocation="ContactLM.xsd"/>
<xsd:element name="Contact" type="Contact" nillable="true"/>
<xsd:complexType name="Contact">
<xsd:sequence>
<xsd:element name="RefID" minOccurs="0" nillable="true"
type="xsd:string" gw:type="java.lang.String"/>
<xsd:element name="WorkPhone" minOccurs="0" nillable="true"
type="xsd:string" gw:type="java.lang.String"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:gw="http://w.com/xsd"
xmlns="http://w.com/location.contactlm"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
targetNamespace="http://w.com/location.contactlm"
elementFormDefault="qualified" jaxb:version="2.1">
<xsd:annotation>
<xsd:appinfo>
<!-- <jaxb:schemaBindings> -->
<!-- <jaxb:package name="location.contactm"/> -->
<!-- </jaxb:schemaBindings> -->
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Contact" type="Contact" nillable="true"/>
<xsd:complexType name="Contact">
<xsd:sequence>
<xsd:element name="RefID" type="xsd:string" nillable="true"
minOccurs="0" gw:type="java.lang.String"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
最后是绑定(bind)文件:
<jaxb:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:gw="http://w.com/xsd"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="http://w.com/location.contactlm"
targetNamespace="http://w.com/location.contactlm"
jaxb:version="2.1">
<jaxb:bindings schemaLocation="ContactM.xsd">
<jaxb:bindings node=".//xs:element[@name='Contact']">
<jaxb:class name="ContactM"/>
</jaxb:bindings>
<jaxb:schemaBindings>
<jaxb:package name="location.contactm" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="ContactLM.xsd">
<jaxb:bindings node=".//xs:element[@name='Contact']">
<jaxb:class name="ContactCLM"/>
</jaxb:bindings>
<jaxb:schemaBindings>
<jaxb:package name="location.contactlm" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
为了完整起见,这是我的命令及其输出
D:\stackoverflow\sample>xjc ContactM.xsd -b bind.xjb
parsing a schema...
compiling a schema...
location\contactm\Contact.java
location\contactm\ContactM.java
location\contactm\ObjectFactory.java
location\contactm\package-info.java
location\contactlm\Contact.java
location\contactlm\ContactCLM.java
location\contactlm\ObjectFactory.java
location\contactlm\package-info.java
希望这有帮助。
关于java - XJB [错误] 为目标命名空间定义了多个 <schemaBindings>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18223119/
我创建了一个基于命令行可移植脚本的工业化不可知构建系统,可用于快速构建多个依赖项目,而不必依赖特定的 IDE 或构建工厂。它是不可知的,因为它不是基于单个构建引擎。我使用 cmake 创建了第一个版本
我最初使用 Java 目标开发了一个语法(用于 TestRig 支持),然后将其移植到 Python(从 git hub 语法存储库扩展了 Python3 语法,因此需要将操作移植到 Python
我有一个以 iPhone 和 watchOS 为目标的 Xcode 项目。 iPhone 目标使用加速度计,模拟器不支持。我可以只启动 iPhone 应用程序而不启动 watch 目标吗?我从: Ca
您好,我想创建一个批处理文件,用于在 .eml 文件(目标 A)中查找某些关键字,然后删除它们所在的行。之后,我需要批处理文件将"new"文件放入(目标 B)中的单独 .eml 文件中。文件也可以是
当尝试通过 IntelliJ 运行示例 CorDapp (GitHub CorDapp) 时,我收到以下错误: Cannot inline bytecode built with JVM target
我在尝试向我的 kotlin spring 项目添加一些依赖项时遇到问题。我使用 spring boot 初始化程序来运行一个基本项目。 我的问题:如果我取消对 jackson 或 Koin 依赖项的
这是有问题的网站: http://www.onepixelroom.com/londonrefurb 当我点击关于部分后面的多个圆圈时,我希望它更改上面文本中的引号。 到目前为止,我得到它来显示 文本
单击后,我将删除两个元素 $(this) 和 $("#foo")。 目前我的代码如下所示: $(this).remove(); $("#foo").remove(); 如何在不重复自己的情况下优化它?
我有一个小脚本,可将 Markdown 文件编译为 html,并将其与一些样式表和 javascript 一起插入到模板的主体中。我有一个 GNU makefile 来完成这个: output.htm
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
一些背景知识: 在android中我们开发了同样的应用,基本上我们先开发了Android应用,现在我们创建了它的IOS版本,所以这个应用有多个客户端。在 android 中,我们实际上是使用 Andr
我想知道是否可以使用 knockout 来更改html中的目标() 我的所有其他信息都在 JavaScript 中,所以这对我来说是一个大问题。这是我的 JavaScript: var library
这个问题在这里已经有了答案: Selecting and manipulating CSS pseudo-elements such as ::before and ::after using j
我在我的有向图中添加了一堆节点和顶点,使用设置 typedef boost::adjacency_list graph; 创建 Node有一个节点名称字符串,Edge它的分数有一个整数。我试图遍历所有
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
如何存储我在 NSUserDefaults 中创建的 Goal 类型的对象数组? ( swift ) 代码如下: func saveGoalList ( newGoalList : [Goal] ){
Array.prototype.indexOf 和 Date.now 已在 ES5 中引入。如果我编译存储在文件 test.ts 中的以下代码,为什么 Typescript 不能转译? Date.no
我正在阅读有关属性的内容,并了解到可以使用您的代码将它们应用于不同的目标实体 -(请参阅 Attribute Targets)。 因此,查看我项目中的 AssemblyInfo.cs 文件,我可以看到
给定一个 Makefile: all: build/a build/b build/c # need to change this to all: build/* build/a:
我有一个带有多框架目标的项目- netstandard2.0;net471 . 我想为 netframework 构建解决方案和 netstandard分别。 目前我使用这个 MSBuild 命令:
我是一名优秀的程序员,十分优秀!