首页 > 解决方案 > 我可以使用异步 Aalto-XML 作为 JAXB 实现吗?

问题描述

是否可以使用 aalto-xml 作为 JAXB 实现?

我试图将 AsyncXMLStreamReader 传递给 JAXB 上下文:

val asyncInputFactory: AsyncXMLInputFactory = InputFactoryImpl()
asyncInputFactory.configureForSpeed()
val asyncStream = asyncInputFactory.createAsyncFor(xml.toByteArray())
return context.createUnmarshaller().unmarshal(asyncStream)

但它以错误“阅读器必须在 START_ELEMENT 事件,而不是 257 事件”结束

有没有办法将 aalto 与 JAXB 一起使用,而不是编写低级 xml 解析代码?

问候,

标签: xmlkotlinjaxbspring-webflux

解决方案


您收到的错误与异步扩展有关:

AsyncXMLStreamReader.EVENT_INCOMPLETE(值 257;刚好超出 Stax API 保留的范围)用于表示“尚不可用”(没有更多数据)

有关更多信息,请参阅https://github.com/FasterXML/aalto-xml

我不知道默认情况下支持异步扩展的任何 JAXB 实现。


推荐阅读