问题标签 [xjb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从 XML 模式文件和 XJB 绑定生成具有常量的 JAXB 类
目前,在使用生成的 JAXB 类时,我必须在 java 代码中手动硬编码模式版本(或解析它)。这在更改 XML 模式版本时很容易导致错误,并且感觉不对。我想要的是在架构中指定架构版本,并让 xjc 在相应的根元素类中生成一个常量。
我还没有找到可以用来满足这些要求的 JAXB 插件或绑定机制。
例子.xsd
生成的 RootType.class:
maven - Maven-Jaxb2 插件类型引用正在抛出已经定义的错误
我是 Jaxb 插件来生成模型的新手。我有 2 个 xsd 文件,其中一个 xsd 引用其他 xsd 中的类型
常见的.xsd
瞳孔.xsd ,这引用了 common.xsd中定义的人
catalog.cat,尝试使用插件的剧集功能
REWRITE_SYSTEM " http://www.example.com/domain/schemas/common/common.xsd " "."
pom.xml,这是我的 Maven 构建配置
当我跑步时mvn clean install
,我得到以下
错误
[错误] 解析架构时出错。位置 [ http://www.example.com/domain/schemas/common/common.xsd {XXX,XX}]。org.xml.sax.SAXParseException;系统ID: http ://www.example.com/domain/schemas/common/common.xsd ;行号:XXX;列号:XXX;'person' 已经定义
我尝试使用此处提到的各种选项来解决此错误,但这对我有帮助。我认为我在绑定配置或 pom 配置中做错了什么
有人能指出这里有什么问题吗
jaxb - XJC 绑定文件:基于命名空间而不是 schemaLocation 覆盖包
我想通过绑定.xjb
文件覆盖我的架构的包。
它是通过以下方式完成的:
JXC 编译器需要上述代码的上下文,通过schemaLocation
.
我将文件存储在单独.xsd
的.xjb
目录中,这看起来很难看(就像所有 Java EE 一样):
bindings
可以在没有相对路径的情况下定义上下文schemaLocation
?
我害怕 XML 目录,我们处于 WEB 2.0(或者可能是 4.0?)的世界。
我见过SCD ("schema component designator")。它看起来很有希望,但我找不到这种语法的参考......
uri - 当模式导入中的反斜杠和指定的绑定时,XJC 失败
我想用 xjc(版本 2.3.0-b170531.0717)从 XSD 生成 Java 类
不幸的是,XSD 导入了另一个在带有 Windows 路径分隔符(反斜杠\
)的相对路径中给出的 XSD,根据 RFC-2396 中的xsi:schemaLocation 反斜杠不允许将其声明为排除字符?
运行时xjc
,架构编译得很好。但是我想用命令行参数指定一些绑定,-b bindings.xjb
然后反斜杠成为一个问题,导致模式解析失败。
我该如何解决这个问题?我曾尝试使用目录来解析路径,但在使用目录之前它似乎失败了。
最小的工作示例
a.xsd
b.xsd
c.xjb
控制台输出
编辑:随着xjc -verbose
我得到以下 StackTrace,说明 Java 的URI
类符合标准并因此拒绝反斜杠是一个问题。
java - Marshall xsd:任何内容作为带有 JAXB 的字符串
我正在寻找以下问题的解决方案。
我有如下所示的 xml 内容:
节点“文本”可以包含任何 xhtml 元素。当将此 xml 编组为 java 类时,我需要此文本内容,因为它是一个字符串。
该元素的 XSD 如下所示:
JAXB 类生成生成以下内容:
目前 Text 元素的所有子元素都编组为List<Object>
,需要再次解组才能将 xhtml 内容作为字符串。在我看来,这是浪费处理时间。
我想要的是,xhtml 文本内容只是作为一个字符串。像这样:
我已经为其他一些情况设置了一些 xjb 绑定和 XmlAdapter 并期望这也可以作为解决方案,但到目前为止我没有成功实现我想要的。
XML 文件无法更改,因为它已经是生产数据。XSD 和绑定在我的控制之下,并且可以更改。
有人有想法吗?
java - 用于两个类似命名元素的 JAXB XJB
我有关注xsd
正如你所看到的,我有两个 <xs:element name="object" ... /> 在那里不会在 java 中很好地翻译有两个具有相同名称的类。我正在尝试使用 xjb 来翻译它们
但是我最终得到
我想知道我在这里做错了什么,有人可以帮我解决吗?如何重命名 XJB 文件中的内部类?
java - JAXB - 当属性已经定义并使用绑定时,它不适用于 *complexContent*
使用 JAXB 生成 Java 类。我正在使用以下 XSD 方案。
..以及以下绑定定义
complextType MetaTypeSimpleContent与simpleContent的绑定工作正常。但是 complexType MetaTypeComplexContent与complexContent的绑定没有。为什么?我收到以下错误:
java - org.xml.sax.SAXParseException: 'GovernmentIDType' 已定义
我试图从第三方提供的 XSD 生成 Java 类。但是我得到的错误是
[错误] 文件:/Users/sanket/eblock/code/eblock-graphql/eblock-integration/autotec-auction-access-sqs/src/main/resources/xsd/COMP9.xsd[243,16] org.xml。 sax.SAXParseException: 'GovernmentIDType' 已定义
对于其他元素,我也遇到了同样的错误。我尝试向 XSD 添加唯一的命名空间,但没有奏效。这个特定元素“GovernmentIDType”的定义在两个 XSD 中不同,但名称相似。
COMP9.xsd
人.xsd
pom.xml
我需要一些解决方案。
更新:我尝试按如下方式添加绑定文件,但仍然出现相同的错误:PER.xjb