当前位置: 首页 > 知识库问答 >
问题:

JAXB解组,保证元素的顺序

闻人嘉木
2023-03-14

我正在用JAXB在列表中解组元素序列,见下文。

XML文件

  <stroke>
    <textPoint x="81.0" y="457.0" p="0.0" e="90.0" a="0.0" />
    <textPoint x="80.0" y="457.0" p="0.0" e="89.0" a="135.0" />
    <textPoint x="81.0" y="455.0" p="0.0" e="86.0" a="135.0" />
    ....
    <textPoint x="228.0" y="475.0" p="0.0" e="57.0" a="122.0" />
    <textPoint x="213.0" y="456.0" p="0.0" e="57.0" a="121.0" />
    <textPoint x="233.0" y="476.0" p="0.0" e="57.0" a="122.0" />
  </stroke>

Java-代码

private List<TextPoint> textPointList;

@XmlElement(name = "textPoint")
public List<TextPoint> getTextPointList() {
    return textPointList;
}

public void setTextPointList(List<TextPoint> textPointList) {
    this.textPointList = textPointList;
}

但是,我有点担心textPoint元素的固有顺序,因为它们在XML文件中的顺序很好,但是没有元素(例如ID),我可以通过proporter对它们进行排序。尽管如此,它似乎可以按照与XML文件相同的顺序对它们进行解组,因此不必担心这一点吗?

共有1个答案

笪德华
2023-03-14

将根据元素在散集XML中出现的顺序填充List。当编组XML中元素的顺序时,将基于List中相应对象的顺序。

 类似资料:
  • 背景: 我使用JAXB将XML解组为Java对象。最初,我只是使用JAXB来执行解组。然后对代码进行静态分析,并提出了XML外部实体注入的高关键性问题。经过一点研究,我发现了一个建议(https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#JAXB_Unmarshaller)使用配置为防止解析

  • 使用JAXB解封整个XML时,可以设置XML模式以在解析期间启用验证: 另一方面,当您从XML逐个解封的列表时(例如,为了减少内存使用),该方法失败(因为架构只接受根),但有一个例外: 即使在XSD中定义良好,它也会失败。是否有任何选项可以启用嵌套对象验证?请注意,定义新模式是一个糟糕的选项,因为对于由其他人维护的应用程序来说,XSD是外部的。

  • 为什么在使用JAXB时需要使用? 我的工作场景是这样的: 我正在做一个从.NET到Java的转换项目。在.NET中,类的编写与POJO类似。我只是在代码中添加了注释(如、等)。并解决了与注释相关的错误。 现在我犯了这样的错误: XML文件如下: POJO类:

  • 我尝试解组一个XML文件到一个对象。 我得到了这个错误: 我的解组过程如下所示: 我的XML实体看起来像: 我的XMLFile看起来像: 那么,我的解组过程出了什么问题?XML实体是用xjc创建的。 我也尝试了简单的xml文件/对象。这对我来说很好。

  • 你好,我正在使用JAXB将XML解锁到JAVA,我的xml文档中有一个元素“值”,可以是int类型,也可以是双精度型,并且我的java类中此元素的相应属性是数字类型的“值”。 JAXB不支持“数字”类型的umarshaling,我想,有人知道如何处理这个问题吗?一个例子将会得到真正的赞赏。提前谢谢。

  • 问题内容: 我发现很多文章描述了如何将XML元素序列编组到HashMap,只要它们在“父”元素内。但是,我不希望它直接与root元素下的孩子一起工作! 选项1-运作: 选项2 -难道 不 工作: 检查: 检查: CheckMapType: ChecksAdapter: 这是(一些虚拟测试行)我如何生成类/调用解组的方法: 关于如何使选项2起作用的任何想法吗?当使用列表而不是Map时它可以工作,但是