我在解组时遇到了大问题。 我使用 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
感谢您的帮助
无论是由使用的工具指定还是从 XSD 中声明的命名空间派生,从 XSD 生成 java 类都应在包含
ObjectFactory
类的基础包中生成类。
例如,将
targetNamespace
声明为 targetNamespace="http://po.example.org"
,它将生成类似 的 java 类
然后,在我的代码中(这里是kotlin语法,但Java应该是相同的),我将通过引用基础包
jaxbContext
来实例化org.example.po
,其中包含ObjectFactory
类
val jaxbContext = JAXBContext.newInstance("org.example.po")
然后,您可以将此示例改编为您的代码,以找到最佳的包来实例化您的
JAXBContext
问候,
劳伦特