提问人:Pferdesalbe 提问时间:9/29/2023 更新时间:11/13/2023 访问量:21
Kotlin - JAXB 解组导致错误
Kotlin - JAXB unmarshalling leads to error
问:
我在解组时遇到了大问题。 我从我的 xsd 文件生成了 xjc 数据类。 这似乎没有任何问题。
现在我在我的 Kotlin 项目中尝试了这个
val jaxbContext = JAXBContext.newInstance("org.inek.xml.schema.standortverzeichnis")//.newInstance(Standortverzeichnis::class.java)
val unmarshaller = jaxbContext.createUnmarshaller()
当我运行代码时,我收到以下错误消息:
Exception in thread "main" javax.xml.bind.JAXBException: "org.inek.xml.schema.standortverzeichnis" does not contain ObjectFactory.class or jaxb.index
我不知道代码有什么问题。 从 xjc 导出的目录与 main.kt 位于同一目录中。 该目录名为“org.inek.xml.schema.standortverzeichnis”。 该目录包含所有数据类,包括 ObjectFactroy 和 package-info.java
谢谢你的帮助
答:
0赞
Laurent Schoelens
11/13/2023
#1
无论是由所使用的工具指定还是派生自 XSD 中声明的命名空间,从 XSD 生成 Java 类都应在包含类的基包中生成类。ObjectFactory
例如,将声明为 ,它将生成如下所示的 java 类targetNamespace
targetNamespace="http://po.example.org"
然后,在我的代码中(这里是 kotlin 语法,但 Java 应该是相同的),我将通过引用 基础包 来实例化 ,其中包含其中的类jaxbContext
org.example.po
ObjectFactory
val jaxbContext = JAXBContext.newInstance("org.example.po")
然后,您可以根据您的代码调整此示例,以找到实例化您的最佳包JAXBContext
问候
劳伦
评论