【问题标题】:JaxB unmarshalling - create Reference to ObjectJaxB 解组 - 创建对对象的引用
【发布时间】:2012-10-09 09:00:18
【问题描述】:

各位程序员好!

我在将 xml 解组到一个对象时遇到了一个大问题。我需要创建对对象的引用。我怎样才能实现它?我尝试使用 XSL 转换,但由于出现循环,这不是正确的方法。我 100% 确定有一个简单的出路。这是我的 XML:

<report>
    <subject>
        <subjectId>1</subjectId>
        <name>John</name>
        <surname>Doe</surname>
    </subject>
    <subject>
        <subjectId>2</subjectId>
        <name>Frank</name>
        <surname>Timothy</surname>
    </subject>
    <individual>
        <individualId>10</individualId>
        <name>Isaac</name>
        <surname>Newton</surname>
        <co-worker>
            <subject>
                <subjectId>1</subjectId>
                <inXml>true</inXml>
            </subject>
            <subject>
                <subjectId>2</subjectId>
                <inXml>true</inXml>
            </subject>
        </co-worker>
    </individual>

    <owner>
        <subject>
            <subjectId>2</subjectId>
            <inXml>true</inXml>
        </subject>
        <share>100</share>
    </owner>
</report>

我需要使用 inXml=true 创建“主题”或“个人”的引用。这个标志告诉我我们是否在 XML 中获得了具有该 ID 的实体。 非常感谢您的帮助:)

【问题讨论】:

    标签: java xml jakarta-ee jaxb unmarshalling


    【解决方案1】:

    您可以使用@XmlID/@XmlIDREF 在您的 XML 文档中映射基于键的关系。

    示例

    【讨论】:

    • 这无济于事,因为我不知道这个“参考”会出现在哪里。如果“主题”第一次出现在 XML 中,则放入所有数据,如果出现 2+,则在 XML + ID 中有一个标志
    • @MironBe - 您可能正在寻找以下内容:blog.bdoughan.com/2011/09/…
    • 我相信这就是我所需要的。但我怎样才能找到某个主题并获得它的 ID?我附上的 XML 非常简单,只是为了说明问题 - 在现实生活中,我收到了超过 300kb 的数据,其中包含许多嵌套节点(从根开始最多 5 个级别)......当我研究你提供的文章时- 我遇到了这个问题 - 我是否需要将所有数据从 复制到已经“内存中”的新的、适应的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多