jaxb 相关问题

用于XML绑定的Java体系结构是将XML用作域对象的Java标准。它提供了一种将Java类映射到XML表示的简单机制。

JAXB XJC 编译器忽略 XML 架构文档上的 mix=true

XJC 似乎完全忽略了我的 XML 架构元素上的 mix="true",从而不允许我提取文本内容。我需要能够从下面的示例 XML 中提取“标题文本”。机智...

回答 3 投票 0

处理从 XSD 文件生成的两种不同 Java 类型中相同数据的最佳方法

我几乎一直在寻找解决这个问题的最佳方法。 我的情况是,我有一个提供程序,它为我提供 XSD 文件来生成我将用来调用其 SOAP api 的类型。那些 XSD 文件有时...

回答 1 投票 0

JAXB 性能在负载下显着下降

我们有一堆微服务,它们使用 JAXB 在 XML 有效负载和 Java 对象之间进行编组/取消编组。 在我们的部分负载测试中,我们注意到性能显着下降,之后

回答 1 投票 0

为什么我不能通过 urn:jaxb.jvnet.org:plugin:namespace-prefix Maven 插件对一个 package-info.java 使用多个命名空间:前缀

当我使用这些绑定时: 当我使用这些绑定时: <bindings schemaLocation="OrderStateService-v1.0.xsd"> <bindings> <namespace:prefix name="" namespaceURI="http://types.theberlinbakery.com/v1_2" /> <namespace:prefix name="soapenv" namespaceURI="http://schemas.xmlsoap.org/soap/envelope/" /> <namespace:prefix name="v1p0" namespaceURI="http://types.theberlinbakery.com/v1_0" /> <namespace:prefix name="v1p1" namespaceURI="http://types.theberlinbakery.com/v1_1" /> </bindings> </bindings> 在 Maven 中使用 namespace-prefix 插件时。 我注意到我只在我的 package-info.java 中应用了此列表中的第一个: @jakarta.xml.bind.annotation.XmlSchema(namespace = "http://types.theberlinbakery.com/v1_2", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { @jakarta.xml.bind.annotation.XmlNs(namespaceURI = "http://types.theberlinbakery.com/v1_2", prefix = "") }) package com.intershop.iom.typesv1_2; 我期望所有这些都被应用到哪里: @jakarta.xml.bind.annotation.XmlSchema(namespace = "http://types.theberlinbakery.com/v1_2", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { @jakarta.xml.bind.annotation.XmlNs(namespaceURI = "http://types.theberlinbakery.com/v1_2", prefix = "") @jakarta.xml.bind.annotation.XmlNs(namespaceURI = "http://schemas.xmlsoap.org/soap/envelope/", prefix = "soapenv") @jakarta.xml.bind.annotation.XmlNs(namespaceURI = "http://types.theberlinbakery.com/v1_0", prefix = "v1p0") @jakarta.xml.bind.annotation.XmlNs(namespaceURI = "http://types.theberlinbakery.com/v1_1", prefix = "v1p1") }) package com.intershop.iom.typesv1_2; 所有内容均在 github 存储库上的分支 that-which-does-not-work 中进行了演示:proof-jaxb-namespace-prefix-plugin 怎么会? 这是因为该插件仅支持绑定中的第一个 namespace:prefix。 在我的特定情况下,我可以通过查找每个架构文件的所有 targetNamespaces 并仅在绑定中提及这一点来完成,如下所示: <!-- OrderService --> <bindings schemaLocation="OrderService-v1.1.xsd"> <bindings> <namespace:prefix name="" namespaceURI="http://types.theberlinbakery.com/v1_2" /> </bindings> </bindings> <!-- Partner --> <bindings schemaLocation="Partner-v1.0.xsd"> <bindings> <namespace:prefix name="v1p0" namespaceURI="http://types.theberlinbakery.com/v1_0" /> </bindings> </bindings> 等等。 结果也是属性namespaceURI在绑定文件中完全无用。 所有内容均在 github 存储库的master分支proof-jaxb-namespace-prefix-plugin中进行了演示

回答 1 投票 0

JAXB:xsd + xjb 到 POJO,无需注释

我在尝试将 XSD + XJB 文件转换为代码中没有 JAXB 注释的 POJO 时遇到了困难。 项目结构: pom.xml src/main/resources/schema.xsd 文件 schema.xsd 可以找到他...

回答 2 投票 0

JAXB 问题 w。 Java 11:ClassNotFoundException:jlink 之后的 org.glassfish.jaxb.runtime.v2.ContextFactory

我有一个模块化的Java / JavaFX,都是Eclipse 中的版本19 项目。我使用 Maven 来构建项目。该项目使用 JAXB。如果我使用“clean javafx:run&qu...

回答 1 投票 0

如何在 Jakarta JAX-B 编组期间组合并包含自定义“NamespacePrefixMapper”和“HashMap”中的名称空间,

我正在尝试使用 Jakarta JAXB 编组器编组 Java 对象,除了在生成的 XML 中包含命名空间之外,一切都运行良好。 我有一些自定义命名空间...

回答 1 投票 0

Java 17 项目使用的 JAXB Jar 文件是什么

我正在将我的项目从 Java 8 升级到 Java 17。我的项目使用 JAXB 相关的 JAR 文件。然而,我在编译项目时遇到了很多错误,其中大多数都是相关的......

回答 5 投票 0

javax 到 jakarta 迁移:glassfish JAXB 4.x 读取 jakarta.xml.bind.annotations*,但不读取 javax.xml.bind.annotations。*

上下文 我使用以下库将 XML 解组为 Java: org.glassfish.jaxb jaxb 运行时 <

回答 1 投票 0

使用 JAXB 3.0 和 jaxb2-maven-plugin 将 XSD / XJB 转换为 Java 类不适用于注释(-Xannotate xjc 开关)

我正在尝试将我的 Java 类生成从以前的 javax.* 迁移到 jakarta.* 我正在使用 Maven 插件 org.codehaus.mojo jaxb2-maven-插件...

回答 1 投票 0

Jaxb 编组与 nillable = true 在集合上不起作用

我有DTO: @Builder @NoArgs构造函数 @AllArgsConstructor 公共类我的数据{ 私有字符串负载; @数据 @Builder @NoArgs构造函数 @AllArgsConstructor @XmlRootE...

回答 1 投票 0

为 JAXBElement 设置值<String>

我有一个生成的类,如下所示。我需要从 POJO 调用 setAmount(),但我不知道要为 arg 传递什么值。它采用 JAXBElement 类型,但我还没有找到方法

回答 2 投票 0

此处不允许使用属性 jaxb:extensionBindingPrefixes

我检查了一个项目并尝试解决 IntelliJ IDEA 2023.2.1 中的一些问题。在其中一个 Maven 项目中,我有以下 xjb 文件: 我检查了一个项目并尝试解决 IntelliJ IDEA 2023.2.1 中的一些问题。在其中一个 Maven 项目中,我有以下 xjb 文件: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jaxb:bindings version="3.0" xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema" jaxb:extensionBindingPrefixes="xjc"> <jaxb:globalBindings> <xjc:simple /> <xjc:serializable uid="-1" /> <jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime" parseMethod="jakarta.xml.bind.DatatypeConverter.parseDateTime" printMethod="jakarta.xml.bind.DatatypeConverter.printDateTime" /> </jaxb:globalBindings> </jaxb:bindings> 但是我这里有一个错误: 此处不允许使用属性 jaxb:extensionBindingPrefixes 有人知道怎么解决吗?非常感谢。 绑定文件被XJC接受即为有效。 这里的要点是 IntelliJ 似乎没有完整的 XSD 用于绑定架构参考: 您可以在此处查看有关 XSD 中的 XJC 自定义的最新文档,但这同样适用于绑定文件:jaxb-ri 扩展 xjc 自定义

回答 1 投票 0

JAXB 生成的 Java 类不处理 SOAP 请求

这是我的 .xsd 文件中的请求,如下所示。正如您所看到的,一些首字母故意是大写和小写的。 这是我的 .xsd 文件中的请求,如下所示。正如您所看到的,一些首字母故意是大写和小写的。 <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/" targetNamespace="http://tempuri.org/" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"> <xs:element name="Deneme"> <xs:complexType> <xs:sequence> <xs:element name="count" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CustomerRequest"> <xs:complexType> <xs:sequence> <xs:element name="CustomerName" type="xs:string" /> <xs:element name="Age" type="xs:int" /> <xs:element name="YearlyIncome" type="xs:long" /> <xs:element name="cibilScore" type="xs:int" /> <xs:element name="employmentMode" type="xs:string" /> <xs:element ref="tns:Deneme"/> </xs:sequence> </xs:complexType> </xs:element> 使用 JAXB 生成类后: CustomerRequest.java @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "customerName", "age", "yearlyIncome", "cibilScore", "employmentMode", "deneme" }) @XmlRootElement(name = "CustomerRequest") public class CustomerRequest { @XmlElement(name = "CustomerName", required = true) protected String customerName; @XmlElement(name = "Age") protected int age; @XmlElement(name = "YearlyIncome") protected long yearlyIncome; protected int cibilScore; @XmlElement(required = true) protected String employmentMode; @XmlElement(name = "Deneme", required = true) protected Deneme deneme; // getter and setters } 如您所见,@XmlElement 与 xsd 文件相同。但是,propOrder 值以小写字母开头。它给我带来了以下问题:当我尝试使用 SoapUI 发送请求时,这种情况问题会阻止请求。 如果我发送这样的请求,它会起作用: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:CustomerRequest> <customerName>5</customerName> <age>5</age> <yearlyIncome>5</yearlyIncome> <cibilScore>5</cibilScore> <employmentMode>5</employmentMode> <deneme> <count>55</count> </deneme> </tem:CustomerRequest> </soapenv:Body> </soapenv:Envelope> 但是,下面它无法访问以大写开头的元素。 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:CustomerRequest> <CustomerName>5</CustomerName> <Age>5</Age> <YearlyIncome>5</YearlyIncome> <cibilScore>5</cibilScore> <employmentMode>5</employmentMode> <Deneme> <count>55</count> </Deneme> </tem:CustomerRequest> </soapenv:Body> </soapenv:Envelope> 我认为问题出在 SOAP UI,但可能有不同的原因,所以我想问你。 获取某人的企业 Instagram 用户名可能并不总是一件容易的事。即使有人停用其帐户并声称帐户的用户名也涉及限制和解决方法。这并不像提交表单并获取所需的用户名那么简单。不过,Instagram 上的 SYLVESTER G. BRYANT(也称为 Yt7crackersz)等专业人士可以帮助您完成此过程,而不会提出任何警告或造成延误。我亲自与他一起申请我自己想要的用户名。您可以通过 [电子邮件受保护] 与他联系。

回答 1 投票 0

Jaxb2 生成带有 @XMLRootElement 标签的类

我正在使用 Jaxb2 插件从 XSD 文件生成 JAVA 类文件 这是我的插件配置 org.codehaus.mojo 我正在使用 Jaxb2 插件从 XSD 文件生成 JAVA 类文件 这是我的插件配置 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>2.5.0</version> <executions> <execution> <id>parentA</id> <goals> <goal>xjc</goal> </goals> </execution> </executions> <configuration> <sources> <source>src/test/resources/xsd/parent.xsd</source> </sources> <packageName>com.sample.generated</packageName> <clearOutputDir>false</clearOutputDir> </configuration> </plugin> 这是我的示例 XSD 文件: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:include schemaLocation="../contracts/childc.xsd"/> <xs:include schemaLocation="../contracts/childa.xsd"/> <xs:include schemaLocation="../contracts/childb.xsd"/> <xs:element name="parent"> <xs:complexType> <xs:annotation> <xs:appinfo> <jaxb:class name="ParentA"/> </xs:appinfo> <xs:documentation>Parent profile</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="birthPlace" type="xs:string"/> <xs:element ref="childA"/> <xs:element ref="childB"/> <xs:element ref="childC"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 我正在指定需要在 XSD 文件中使用以下配置生成的类文件的名称。 <xs:appinfo> <jaxb:class name="ParentA"/> </xs:appinfo> 这是我正在尝试解压缩的示例 XML 文件 <parentA> <name>SAM</name> <birthPlace>Dallas</birthPlace> <childA>..</childA> <childB>..</childB> <childC>...</childC> </parentA> 这是对上面的 XML 进行编组的逻辑 JAXBContext jaxbContext = JAXBContext.newInstance(parentA.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); parentA parentData = (parentA) jaxbUnmarshaller.unmarshal(xml.getBinaryStream()); //Assert on parentData 当我运行 jaxB2:XJC 时,会生成一个名称为 “parentA” 的 Java 文件 但是生成的文件在类顶部没有注释 @XmlRootElement(name ="parentA")。 因此在编组过程中我看到一个错误。 问题: 我需要添加到 XSD 文件中哪些附加配置,以便生成的 XML 文件将具有 @RootElement 标记 删除 XSD 中的以下内容即可使其正常工作 <xs:appinfo> <jaxb:class name="ParentA"/> </xs:appinfo> 您将生成以下类(但不是所需的名称)。 @XmlRootElement(name = "parent") public class Parent 由于您使用 xsd:element 名称声明了 parent,因此您应该尝试解组以下 XML <parent> <name>SAM</name> <birthPlace>Dallas</birthPlace> <childA>..</childA> <childB>..</childB> <childC>...</childC> </parent> 针对 org.jvnet.jaxb:jaxb-maven-plugin 进行测试,没有 childX 元素(因为未提供的 XSD 中的引用),使用 XML parent 标记名称解组/编组成功。 编组输出:context.createMarshaller().marshal(dto, System.out); <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <parent><name>SAM</name><birthPlace>Dallas</birthPlace></parent> 如果您仍然想要 parentA 作为标签名称,您应该在 XSD 中将名称标签从 parent 更改为 parentA,其余部分仍然像上面一样工作,将 parent 替换为 parentA。

回答 1 投票 0

生成基本 int 的枚举

我正在尝试使用 Maven maven-jaxb2-plugin 从简单类型的基本 int 生成枚举。但没有生成任何枚举。 我可以看到生成器正在使用绑定文件,因为它...

回答 1 投票 0

如何在java 11中使用JAXB Maven插件创建POJO类

需要在java 11中使用JAXB maven插件创建Pojo类,我在java 8中使用这个插件并且工作正常: org.jvnet.jaxb2.maven2...

回答 1 投票 0

Kotlin - JAXB 解组导致错误

我在解组时遇到了大问题。 我使用 xsd 文件中的 xjc 数据类生成。 这似乎工作没有任何问题。 现在我在我的 Kotlin 项目中尝试了这个 val jaxbContext = JAXBContext.

回答 1 投票 0

无法使用 jaxb-runtime 4.0.3 和 maven-jaxb2-plugin 0.15.3 从 .wsdl 文件生成 java 存根

我使用的是Java 17。如果我使用jaxb-runtime 2.3.3和maven-jaxb2-plugin 0.14.0,它可以正常工作。我需要升级到 jaxb-runtime 4.0.3。在.xjb中我已经替换了所有javax.xml.bind.annotation.XmlRootEl...

回答 1 投票 0

wsimport - 'XXX' 已经定义,第一个定义出现在这里

我正在使用 WSDL 生成 Java 类,该 WSDL 导入并包含大量其他模式和 DTD,而这些模式和 DTD 又相互引用。 (这就是臭名昭著的“标准”XTA2 V3 WSDL...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.