1

我有使用 XJC 处理的 XSD 文件以生成 Java 类。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/Integratipn_Zip" xmlns:tns="http://www.example.org/Integratipn_Zip" elementFormDefault="qualified">

<element name="saveArchiveRequest">
    <complexType>
        <attribute name="identifiant" type="string"></attribute>
        <attribute name="idArchive" type="string"></attribute>
        <attribute name="emplacement" type="anyURI"></attribute>
    </complexType>
</element>

<element name="getArchiveRequest">
    <complexType>
        <attribute name="identifiant" type="string"></attribute>
        <attribute name="idArchive" type="string"></attribute>
    </complexType>
</element>
</schema>

我想阅读 XML 消息,并将其转换为生成的 Java 类之一。但不使用这种方法:

if (xmlMessage.contains("saveArchiveRequest")){
            JAXBContext jaxbContext = JAXBContext.newInstance(SaveArchiveRequest.class);
            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
            SaveArchiveRequest object = (SaveArchiveRequest) jaxbUnmarshaller.unmarshal(reader);
            return object;
        } else if (xml.contains("getArchiveRequest")) {
            JAXBContext jaxbContext = JAXBContext.newInstance(GetArchiveRequest.class);
            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
            GetArchiveRequest object = (GetArchiveRequest) jaxbUnmarshaller.unmarshal(reader);
            return object;
        }

我知道存在方法可以在不检查 XML 消息的内容的情况下执行此操作,并让 JAXB 框架直接从 xml 消息映射到正确的对象,或者类似的东西,可能使用外部映射文件。

有人能帮助我吗 ?

谢谢。

4

1 回答 1

0

如果您JAXBContext在从 XML 模式生成的包名称上创建您的包名,那么您可以拥有一个JAXBContext能够解组与 XML 模式中的全局 XML 对应的任何 XML 文档的单个文件。

于 2013-04-07T19:54:43.790 回答