用于XML绑定的Java体系结构是将XML用作域对象的Java标准。它提供了一种将Java类映射到XML表示的简单机制。
我有这个对象,作为复杂对象的节点: 公共类参数实现可序列化 { @XmlElement(名称 = "键") 受保护的字符串键; @XmlElement(名称 = "值")
我有一些生成的类,看起来像这样: @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "数据", propOrder = { “身体” }) @XmlRootElement(名称 = ...
与 JAXB 为给定 XSD 生成 JAXB 类类似,Jackson 是否提供任何实用程序来从 XSD 或 JSON 生成 Jackson 类。 JAXB 类生成器已为 XSD 生成了一组类...
JAXB API 的 Java 8 到 Java 11 迁移问题
我们正在将项目从 Java 8 迁移到 Java 11。其中一个 API 依赖于利用 JAXB 的库。据我们所知,JAXB 已从 JAVA 11 中删除,我们开始包含 ...
我有一个 xsd,其中有一个名为 toc 的元素在 xsd 中两次。它会导致 java 类生成错误。现在,我想编写 xml 绑定来解决这个问题。 我有一个 xsd,其中有一个名为 toc 的元素在 xsd 中两次。它会导致 java 类生成错误。现在,我想编写 xml 绑定来解决这个问题。 <jaxb:bindings schemaLocation="../DMS_Dokument.Versenden_response.xsd"> <jaxb:bindings node="xsd:element[@name='toc']"> <jaxb:factoryMethod name="TOC"/> </jaxb:bindings> </jaxb:bindings> 我得到的错误是 原因:无法解析schema。应该提供错误消息 为了避免 JAXB 从 XSD 生成重复的类,您可以使用本地或外部绑定为生成的类定义不同的名称。 <jaxb:bindings node="XPATH"> <jaxb:class name="YourDistinctName"/> </jaxb:bindings> Java 类名重复的一个原因是在全局绑定中使用 toplevel 作用域。 注意: localScoping 属性的值可以是 nested 或 toplevel。此属性描述嵌套 XML 模式组件与嵌套模式派生的 JAXB 类或顶级模式派生的 JAXB 类的 JAXB 绑定。为了避免嵌套组件之间的命名冲突,该属性的默认值是嵌套的。当模式组件嵌套太深或应用程序不希望使用嵌套类或使用 JPA 时(JPA 第 2.1 节,实体必须是顶级类),开发人员可以将 localScoping 自定义为 toplevel。 例如,下载此演示 (zip) 并考虑其 XML 架构 trilogy.xsd,该架构对 Trilogy 书籍进行建模。它在根 trilogy 元素上定义一个 TOC,并为每个 book 定义另一个 TOC。该架构将每个 TOC 定义为匿名类型,并且每个 TOC 都有不同的用途。第一个目录描述了三本书的标题,但第二个目录是每本书的章节列表。两者具有相同的元素名称 <toc>...</toc>,如该 XML 实例 trilogy.xml 所示,但需要不同的 Java 类定义。 当模式被定制为使用 <jaxb:globalBindings localScoping=”toplevel”/> 时,JAXB 会尝试根据一个元素名称生成两种类型,这会导致名称冲突。 为了解决 Java 类名重复问题,演示使用 HiSrc BasicJAXB 项目中的工具来扫描 XSD 并输出这些建议的绑定:trilogy.xjb。例如,这是书 TOC 的装订: <jaxb:bindings node="//xs:element[@name='trilogy']/xs:complexType/xs:sequence/xs:element[@name='book']/xs:complexType/xs:sequence/xs:element[@name='toc']/xs:complexType"> <jaxb:class name="TrilogyBookTocType"/> </jaxb:bindings> 绑定使用 XPATH 选择目标节点,并将 Java 类名称声明为 TrilogyBookTocType。 演示提供了一个 bash 脚本来运行该工具,但它可以像这样手动运行... java -cp \ $HOME/.m2/repository/org/patrodyne/jvnet/hisrc-basicjaxb-tools/2.1.1/hisrc-basicjaxb-tools-2.1.1.jar \ org.jvnet.basicjaxb.util.CreateToplevelXJBindings \ --nested src/main/resources/trilogy.xsd 该工具将其输出发送到 stdout,您可以在其中将其复制/粘贴到绑定文件或架构中。 执行 该演示是一个独立的 Maven 项目。您可以使用以下命令运行测试: mvn -Ptest clean test mvn -Pexec compile exec:java 方法 hisrc-higherjaxb-maven-plugin 配置为使用提供的 trilogy.xsd 模式和绑定文件 trilogy.xjb 生成 JAXB 类。该模式提供了命名空间 "http://org.example/trilogy",JAXB 使用它来使用自己的命名约定创建 Java package 名称。 作为一个选项,可以使用这些 XJC hisrc-basicjaxb-plugins 生成 Java 内置 Object 方法的更高级实现。特别是,示例项目使用 toString 插件来显示未编组的 Trilogy 对象的人类可读表示。 hisrc-basicjaxb-插件 <args> <arg>-no-header</arg> <arg>-XhashCode</arg> <arg>-Xequals</arg> <arg>-XtoString</arg> </args> 注意: 使用 XJC hisrc-basicjaxb-plugins 时,运行时类路径需要 hisrc-basicjaxb-runtime 依赖。 测试 JUnit 测试类 TrilogyTest.java 扫描示例文件并调用方法 checkSample(File sample) 将每个文件提供给测试人员。对于此项目,创建了一个 JAXBContext,并且 samples 路径中的每个文件都被 unmarshaled 为 Trilogy 对象。成功后,每个对象都会被编组以用于日志记录和您的审查。 示范 具有 main(...) 方法的 Java 标准引擎应用程序位于 org.example.trilogy.Main。该应用程序使用以下命令执行: mvn -Pexec compile exec:java -Dexec.args="src/test/samples/trilogy.xml" 免责声明:我是这些HiSrc项目的维护者。
hisrc-higherjaxb-maven-plugin 生成 xsd 文件的源代码,但不会使用 XmlElementDecl 注释 ObjectFactory 中的所有元素
这是(onvif.xsd)我尝试使用 hisrc-higherjaxb 生成源代码的模式文件。 这是我的 pom.xml 配置的一部分, org.patrodyne.jvnet&...
编译 WSDL 文件时出现错误/警告 - 但生成的 Java 源代码正常 -Java17 spring boot 3.0
我的要求 spring boot 3.0 Java 17。我的代码使用 jaxb2 插件适用于 java 1.8 spring boot 2.7.11。我已将插件更新为 jaxb30-maven-plugin。自动生成的java代码就可以了。构建是
maven-cxf-codegen-plugin 使用 Jaxb 绑定为所有生成的类添加继承
我正在使用 Apache CXF 的 cxf-codegen-plugin 将 wsdl 转换为 java 对象。我指定了一个绑定文件来添加额外的 jaxb 处理。我希望所有这些文件都从接口继承(或
如何将 xmlns:tns="http://schemas.xmlsoap.org/soap/encoding/" 添加到肥皂请求
我编写了一个调用soap服务的客户端,但它发送的请求不是我所期望的。 这是我的代码: 公共MessageResponse traGiayToHoSo(MessageRequest请求){ 留言乱七八糟...
当我们尝试执行 jaxb-object-to-xml-transformer 时,我们在 Mule ESB 中遇到 java.util.ConcurrentModificationException
在 Mule 3.9.0 中,当我们尝试使用 jaxb 将对象转换为 XML 时,我们收到以下错误 消息:null(java.util.ConcurrentModificationException) 元素...
是否可以从 Fhir XML 模式 (.xsd) 或 Fhir JSON 模式生成带有 Jackson 注释的 POJO 类?
在JDK中我们可以使用xjc *.xsd命令来生成POJO。生成的类将具有 XML 注释,例如 jakarta.xml.bind.annotation.XmlType。 但我对 Jackson 的 POJO 感兴趣
似乎我过去已经做过一次,但我找不到任何关于我为使其工作所做的事情的参考。 我有一个 Web 应用程序,我想在其中指定不同的...
我有一个已解组的 xml 字符串,但它只返回第一部分。我相信我的 while 循环不正确。 while(xsr.hasNext()){ if(xsr.isStartElement() && "list".equa...
JAXB 解组单元测试在 Eclipse 中成功,但在 gradle 测试中失败并显示“JAXB 无法处理接口”
这是一个单元测试,当我在 Eclipse 中运行它时,它可以成功运行,但当我使用 gradle 命令行“gradle test”运行它时,它会失败。 包 com.mycompany.user; 导入静态 org.junit.Assert。
我有一个 springboot 模块,我在其中使用 @XmlRootElement(name='request') 重命名它为 api 休息调用创建的 xml 请求,但代码正在生成带有类名 ins 的请求...
Spring Boot 项目不断抱怨 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 即使我已经添加了依赖项
将 Spring Boot 从 2.1.9 JDK 8 升级到 2.7.16 JDK 17 我知道 JAXB 需要作为依赖项包含在内,并且我已将以下行添加到 build.gradle 实施组:'javax.xml.
Jackson 在序列化为 JSON 时无法考虑 @XmlElement
我有一个合约类,其中包含带有 @XmlElement 标记的元素。对于前 @XmlElement(名称 = "余额") 受保护金额余额金钱; 使用 JAXBContext 我能够生成 xm...
过去存在 org.jvnet.jaxb2maven 插件的 property-listener-injector 插件。 人们仍然可以在 Maven 中央仓库中找到该插件:org.jvnet.jaxb2-commons:property-listener-
我想要实现的目标 将 Spring 应用程序(不是 Spring boot)从 Java 8 移至 17,将 Tomcat 8 移至 10。 问题 遵循这个问题后,我替换了 javax 库(主要用于 xml bin...