问题标签 [xmlmapper]

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.

0 投票
1 回答
1939 浏览

xml - Jackson/Woodstox XML 编码字符解释

我收到了一个 XML 文件,其中包含使用 Jackson 和 Woodstox 读取、编辑和编写它的指令(根据文档中的建议)。在大多数情况下,这并不太难。他们都非常擅长它的作用。但是,在这一点上,我遇到了一个问题:

我的 XML 对象本身确实包含 XML 对象。例如:

当我将 XML 文件读入我的带有 Jackson 注释的 Java 对象时,Woodstox 将和的所有这些实例分别转换为&lt;和。当我将对象作为 XML 文件写回时,变为但保持不变&gt;<><&lt;>>

我试图读取文件的方法的最简单版本如下:

对于我上面给出的示例,我的带有 Jackson 注释的 Java 对象看起来像这样:

最后,我的依赖项如下所示:

这似乎是由于 Jackson 使用了 Woodstox 的 BufferingXmlWriter。这位特定的作者将截取这些字符并对其进行编码,并且似乎没有任何方法可以规避该决定:

所以最后总结一下问题,给了我一个XML文件。该 XML 文件包含属性和元素,这些属性和元素本身包含已编码 (和) 的符号 (<和),以免破坏 XML。当 Woodstox 读取文件时,它不是将 XML 中包含的实际字符串交给我的 Java 对象,而是对字符进行解码。写入后,only被重新编码为. 这似乎正在发生,因为 Jackson 正在使用 Woodstox 的 BufferingXmlWriter,它似乎无法配置以避免对这些字符进行编码。>&lt;&gt;<&lt;

结果,我的问题如下:

我可以将 Jackson 对象配置为使用 Woodstox XML 阅读器,该阅读器允许我在我的 XML 文件中读取和写入字符而无需进一步编码,还是我需要完全满足我的需要寻找不同的解决方案?

0 投票
1 回答
2783 浏览

android - 如何修复 XmlMapper 异常 - java.lang.VerifyError: com.fasterxml.jackson?

jackson-dataformat-xml-2.8.5.jar尝试执行此操作时遇到问题:

引发以下异常

根据我的研究,这与 Jackson 1.3 中引入的二进制不兼容有关。正如 Tatu Saloranta 在他的旧博客中所述,遗憾的是,该博客已不再在线。

我一直非常重视兼容性,至少对于任何“非 beta”版本(1.0 及更高版本)而言。因此,我们的想法是任何 1.x 版本都将比以前的版本简单的即插即用。这确实适用于补丁版本;但事实证明,并非所有次要版本都以这种方式工作。例如,版本 1.2 和 1.3 有一些意想不到的不兼容性。

问题是这样的:虽然大多数情况下二进制兼容性是比源代码兼容性更难的目标——也就是说,如果你破坏源代码兼容性,你几乎肯定会破坏二进制兼容性——但严格来说并非如此。具体来说,很可能进行某些源兼容但不兼容二进制的更改。

具体的例子是将不返回任何内容的方法(“void 方法”)更改为返回不破坏编译的方法。但它确实破坏了二进制兼容性。啊。

这正是当我决定让 ObjectMapper 遵循“流利”模式以允许链接配置方法调用时发生的事情。如果不是这种“隐藏”的 API 更改,那就太好了……

不太确定如何纠正这个问题,因为我对 android 开发还很陌生。

正如您在我的依赖项列表中看到的那样,我已经确保全面使用相同版本的 Jackson app/build.gradle,是否还有其他我可能遗漏的东西?

根据官方FasterXML Jackson github 页面,应该支持我正在使用的扩展...

XML:支持XML;提供流和数据绑定实现。类似于 JAXB 的“代码优先”模式(不支持“XML Schema first”,但可以使用 JAXB bean)

https://github.com/FasterXML/jackson-dataformat-xml

该项目的 github 页面上也报告了此问题,但没有找到真正的解决方案。-- github.com/FasterXML/jackson-dataformat-xml/issues/116

更新:我使用jarjar了以下依赖项:

还将每个依赖项以及我的appcompatsupportapi 升级到最新版本。

错误继续 -

希望有人能对此有所了解,不知道是什么原因造成的......

0 投票
1 回答
10736 浏览

java - 当它是一个整数时,没有字符串参数构造函数/工厂方法从字符串值反序列化

我正在尝试将以下 xml 反序列化到对象中:

我的课程如下

我的映射器依赖项如下:

}

这是 xmlMapper 抛出异常的失败测试

在 [来源:out/test/resources/test.xml;line: 4, column: 16] (通过引用链: service.Foo["dean"]->service.Dean["bar"]->java.util.ArrayList[0])

从读取异常来看,映射器似乎将值 28 视为字符串而不是整数,但如果我将 Bar 类更改为以下内容并将元素 bar 的属性添加到原始 xml,则相同的测试通过。

我会说 Mapper 应该从构造函数参数类型推断类型并尝试使用字符串值实例化该对象,并在后台执行类似 Integer.valueOf("28") 的操作

0 投票
1 回答
1755 浏览

java - @JacksonXmlProperty(isAttribute = true) 使用 Jackson XmlMapper 附加唯一 ID

您好我正在尝试使用 jackson-dataformat-xml 2.7.3 XmlMapper 将我的 POJO 转换为 xml。我在 POJO 类中使用 jackson 注释,如下面的代码所示,但是我在列表的每个标签中都附加了一些唯一的 ID。如何删除这些唯一 ID。

// 下面是ElementTag 类

// 下面是ProfessionalLeadDetails 类

//在 main 方法中使用 XmlMapper 转换为 xml

但是我在 val 之前添加了一些独特的 ID,例如 zdef1999262822:如下所示: OUTPUT

期望的输出:

提前致谢!

0 投票
1 回答
712 浏览

java - myBatis xml mapper filer in use with Java interface - dynamic SQL query

I have problem. I didnt create MyBatis config. I heard it may work without it. I have Java interface called for example: InterfaceDAO.java and myBatis mapper InterfaceDAO.xml

InterfaceDAO.java :

InterfaceDAO.xml :

And so the first method example called: getInterfaceDAO is working propely. But The second called: getInterfaceDAOList is more complicated and didnt work the same way the first one. That is why I want this particular method to use the xml mapper to gain data I want. The income arguments can be null or there can be several values in list.

Have you met with such a problem, and do you knows some best ways to solve this? This is my first contact with this.

I am using MyBatis and Postgres DB.

0 投票
2 回答
11850 浏览

java - MyBatis 中的 XML ResultMap 与关联

我在谷歌或堆栈上看到这个问题非常奇怪。让我解释。

我的接口方法的注释中有结果映射。只有在这种特殊情况下,我才需要动态查询,这就是我决定在 xml 文件中为接口编写整个映射器的原因。下面我粘贴整个文件。选择查询应该没问题,但我遇到了一些困难<resultMap>

在不同的网站上,我一直在寻找对一对一、一对多、多对一关联的良好解释,并总体上构建此结果图。

我看到有某种可能性将它分成子查询、子结果图。但是我已经用 myBatis 注释完成了,我想使用它。你能指导我,resultMap应该如何构造?我认为不需要构造函数、鉴别器,但它仍在大喊……(这就是我添加<collection>标记的原因)——IntelliJ 强调了整<resultMap>句话:"The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)"

我知道这似乎很明显,但我完全不知道如何正确地做到这一点。请帮我。

xml映射器文件:

0 投票
1 回答
244 浏览

java - 解析xml时如何修复换行错误

我有包含数据的 XML 文件。我使用 FasterXML 来解析它:

当我的文件有格式时:

当我解析这个文件时,一切正常。如果我使用 void 标签 t,例如。当我的文件有格式时:

所有工作。但如果我有格式:

我得到一个错误。我希望这两种选择都能奏效。如何解决?

0 投票
1 回答
344 浏览

swift - 无法将 xml 转换为对象 - Swift4

我有以下 XML 字符串。我正在尝试使用 XMLMapper(第 3 方库)进行解析。

我需要创建数组

xml如下;

解析为对象的代码如下;

作为总结,我需要将小数放入 randomDecimals 数组。但我需要用XMLMapper.

我究竟做错了什么?

BR,

埃尔登

0 投票
1 回答
91 浏览

php - Doctrine 2.4 不能持久化/插入多对多关联实体

人们可以帮助我吗?我在 Doctrine 2.4 上持久化实体(Solicitud)时遇到了麻烦,当我将对象传递给实体管理器以进行持久化和刷新时,该实体的所有关联对象都已存储在其属性中。

完整描述的关系应该是......

  1. Usuario-> 关怀(一对多)
  2. Solicitud-> Servicios(多对多)
  3. 类别->服务(一对多)

我确实从我的 XML 映射中生成了实体和数据库结构......

在我的“solicitud”XML 中,我已经定义了如下所示的关系……当我执行命令时,中间表得到了有效的创建:

有两列,一切正常。

这是在定义多对多关系的字段上的“Solicitud”

这在 Servicio

有什么我想念的吗?也许另一句话要求坚持另一个涉及/相关的类?

我正在尝试通过实体管理器句子中的“solicitud”实体来坚持...我将它们作为 DAO 分隔在不同的层上,但这没有问题,当数据到达这一层时,我尝试了 var_dump ,并且一切正常。

在我的“SolicitudService”中,我编写了这个函数来收集持久化所需的所有相关对象,我使用 VO(虚拟对象)和内部函数来构建从对象到 Json 或从 Json 到 Objects 和 toEntity 模式的数据(从 VO 到 Object所需的类)。

我在这个函数中做什么:

  1. 首先我在我的SolicitudServicioVO上找到我有的对象下面三句话尝试后,然后我创建了新的对象Solicitud。
  2. 然后我将通过 DAO 实体创建的对象设置为“Solicitud”新对象(“//set Solicitud Properties”注释后的 5 行)。
  3. 之后,我通过 listadoServicio 迭代($solicitudServicioVO->listadoServicio)(来自前端的服务列表),并为每个服务创建 VO,它们能够在接下来的句子中将自己构建为一个实体“或所需类型的类”,在这种情况下,是我在本问题开头的关系定义中提到的那些。
  4. 我派坚持,就这句话

    /li>

这导致了具有...的DAO

这个函数的名称可能更具描述性,可能将其称为 createSolicitud 作为其创建新函数的目的,但没关系......它还必须添加一个与用户相关的 Solicitud ......所以我坚持,现在没关系.

所以,我是最具描述性的,我无法保留有关 SOlicitud 实体的这些数据......有人已经有类似的问题或任何额外的想法......也许在 XML 定义中?,它确实得到了通过实体作为注释,似乎没有任何问题。

请帮帮我,这种多对多的癌症已经花了将近一个星期没有解决jajaja

0 投票
2 回答
1335 浏览

java - 如何配置 XSD 以将 XML 映射到具有不同名称的 POJO

我们有一个要求,XML 标记与 java POJO 属性不相似。

我们需要一种解决方案来将 XML 标记映射到具有不同名称的 POJO。

这是相同的 XML,

这是 POJO 类,

这里我想映射到 POJO 中的 tag1Value。

我发现以下语法可用于将 XML 映射到 java 属性。

但我想知道如何在 XSD 中进行配置,以便在 XMLElement 中生成带有 name 属性的 POJO。

使用下面的 XSD 如何一起指定 java 属性名称和 XML nae,

帮助表示赞赏...