我有几个 XSD 文件,我已使用 XJC 处理这些文件以生成 Java 类。
我想读取任意一个 XML 文件,并根据 XML 文件的内容,将其转换为生成的 Java 类之一。
是否可以在不检查 XML 本身的内容并让 JAXB 框架完成所有工作的情况下执行此操作?
例如,假设我有以下 XSD 文件:
狗.xsd 猫.xsd
我使用 XJC 编译它们以生成 Dog.java 和 Cat.java。
我现在读取一些任意 XML,并创建 Dog 或 Cat 的实例,具体取决于它匹配的模式。
谢谢。
最佳答案
XJC 根据模式中的类型而不是模式本身生成类。并将生成的类放入基于该目标 namespace 的包中。如果将多个模式加载到 JAXBContext 中,它将自动解码为正确的类型。这几乎就是 JAXB 的全部要点。如果您的两个模式在同一命名空间中具有相同名称的类型,XJC 将失败。
关于java - JAXB:当有多个 XSD 时,如何知道要解码到哪个 Java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721381/