Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用jaxb解析包装属性_Java_Xml_Jaxb - Fatal编程技术网

Java 用jaxb解析包装属性

Java 用jaxb解析包装属性,java,xml,jaxb,Java,Xml,Jaxb,假设: <root> <wrapper> <wrapped id="..."/> <wrapped id="..."/> </wrapper> </root> 如何将其映射到此POJO: public class Root { public Set<UUID> myIds = new LinkedHashSet(); } 公共类根目录{ public

假设:

<root>
    <wrapper>
        <wrapped id="..."/>
        <wrapped id="..."/>
    </wrapper>
</root>

如何将其映射到此POJO:

public class Root {
    public Set<UUID> myIds = new LinkedHashSet();
}
公共类根目录{
public Set myid=new LinkedHashSet();
}
我想知道,既然
@xmlement(name=“wrapped”)@xmlementwrapper(name=“wrapper”)
的工作原理与我想要的有点类似,那么有什么东西可以获得该属性吗


注意:据我所知,我没有使用moxy,我不能使用XPath。我试图避免使用
@XmlJavaTypeAdapter
路由。

您需要稍微修改一下根类, 因此,它将包含一个
,而不是

我已经用这个XML输入文件检查了上述内容

<root>
    <wrapper>
        <wrapped id="550e8400-e29b-11d4-a716-446655440000"/>
        <wrapped id="550e8400-e29b-11d4-a716-446655440001"/>
    </wrapper>
</root>

您需要稍微修改一下根类, 因此,它将包含一个
,而不是

我已经用这个XML输入文件检查了上述内容

<root>
    <wrapper>
        <wrapped id="550e8400-e29b-11d4-a716-446655440000"/>
        <wrapped id="550e8400-e29b-11d4-a716-446655440001"/>
    </wrapper>
</root>

可能的重复是一个不同的模式。可能的重复是一个不同的模式。嘿,谢谢你花时间研究这个。获取
Set
而不是
Set
是我所寻找的,因此无需编写代码来在
UUID
包装的
对象之间进行转换。现在,我正在使用基本上您所拥有的+
@XmlJavaAdapter
UUID
Wrapped
对象之间进行转换,因此pojo仍然有
Set
嘿,感谢您花时间研究这个问题。获取
Set
而不是
Set
是我所寻找的,因此无需编写代码来在
UUID
包装的
对象之间进行转换。现在,我正在使用基本上您所拥有的+
@XmlJavaAdapter
UUID
Wrapped
对象之间进行转换,这样pojo仍然有
集合
<root>
    <wrapper>
        <wrapped id="550e8400-e29b-11d4-a716-446655440000"/>
        <wrapped id="550e8400-e29b-11d4-a716-446655440001"/>
    </wrapper>
</root>
public static void main(String[] args) throws Exception {
    JAXBContext context = JAXBContext.newInstance(Root.class);
    Unmarshaller unmarshaller = context.createUnmarshaller();
    File file = new File("root.xml");
    Root root = (Root) unmarshaller.unmarshal(file);
    Marshaller marshaller = context.createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    marshaller.marshal(root, System.out);
}