问题标签 [woodstox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - StAX/StAX2 属性在源 XML 中的位置
我需要为每个提取的文本信息获取源 XML 中的偏移量(开始和结束位置)。
我需要使用 XML PULL READING 模型,所以我一直在尝试使用 StAX 和 StAX2 (Woodstox) 一段时间。
原始 StAX 包含 API:
然而,这个类是相当晦涩的。所以这里是包含改进 API 的 StAX2 (Woodstox):
它通过 LocationInfo 很好地适用于元素和东西。
我的问题: 我怎样才能获得属性的偏移量,因为它们显然是元素的一部分?所以该位置的粒度是在元素级别上->我可以获得整个元素的偏移量,而不是每个属性的偏移量......
提前致谢!
entity - Woodstox 默认实体已替换
我在 web 服务 xml 响应中有以下标记:<text>"><&</text>
这在我的字符方法中报告为 "><&,但我需要按原样报告 ("><&)。
我已将 XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES 设置为 Boolean.FALSE,但它不起作用。
谁能帮我?
提前致谢。
琼。
java - 系统架构
我是 Java 新手,我有一个独特的要求。我正在从客户端获取 xml 数据,并且我已经和我一起定义了模式。现在,问题是客户端 xml 的元素比我拥有的模式多得多。如何处理?此外,有些元素的架构与架构中定义的架构不同,我想将其转换为架构所具有的形式。由于模式通常用于验证,这听起来有问题吗?有人可以用小例子给我概述如何处理这个问题吗?
java - Unnecessary Namespace in Jackson XML 2.6.1 + Woodstox 4.4.1
I'm trying to parse my object to XML using jackson-dataformat-xml and, when i set the root namespace and parse the file, all properties of my object in the XML gives a empty namespace xmlns="". On jackson's github docs, is advise to use woodstox instead stax XML implementation to solve this but, the behavior still exists.
This is my pojo:
And my parse code:
This is the XML generated:
Any idea where is the problem? My project is under a Spring boot version 1.3.0.M5. Thanks for all.
java - 使用缓冲读取器读取文件
背景
我正在编写一个 xml 转换器,它从文本文件中获取输入并将它们转换为 xml。在文本文件中,每条记录由一行表示,每个字段用它们之间的制表符表示。所以在文本文件中,两条记录看起来像:
问题
我正在将文本文件加载到 bufferedReader 中,并使用 StAX 实现 WoodStox 创建 XML。我可以看到我从我的 getColumnValue 方法中获得了正确的记录数据。但由于某种原因,WoodStox 一遍又一遍地写入第一条记录,而不是通过 while 循环获取每次传递的数据。由于我知道输入(来自 getColumnValue)是正确的,我只能得出结论,问题出在 Woodstock 但到目前为止我还无法理解为什么......
代码:
java - 在 Java 8 中,使用 Woodstox 运行时,名称空间前缀会发生变化
我有一个简单的 Java 程序,如下所示,它读取一个 xml 文件并将其打印在控制台中:
XML 文件:
当我使用woodstox-core-asl-4.4.1、stax2-api-3.1.4和axiom在 Java 7 中运行程序时,它工作正常。但是当我在 Java 8 中运行相同的东西时, S:role 和 S:mustunderstand 将更改为 env:role 和 env:mustunderstand (S 前缀更改为 env)
如果我从程序中删除woodstox-core-asl-4.4.1和stax2-api-3.1.4,它在 Java 8 中也可以正常工作。
我无法弄清楚这里的问题。这是否意味着woodstox 不支持Java 8 或者我错过了其他东西?
java - 使用 Woodstox / Stax2 编写 XML 时验证失败
我在使用带有 Woodstox 和 Stax2 的 XSD 模式进行 XML 验证时遇到问题。即使 XML 数据符合架构,验证也会失败。
令人惊讶的是,验证问题仅在编写XML(使用 XMLStreamWriter2)时出现,而不是在读取XML(使用 XMLStreamReader2)时出现。
我建立了一个小例子来重现和隔离错误。基本上,它只是将 XML 从文件读取到 XMLStreamReader2(使用 XSD 模式验证),然后将其复制到 XMLStreamWriter2(也使用相同的 XSD 验证)。
现在,由于writer的验证错误而失败。如果我在 writer 上停用验证,一切都会顺利进行,并且 writer 会提供完全符合 XML 的内容。
这是代码:
这是 XML:
这是架构:
这一切都导致(启用了编写器的验证):
如果没有对编写器进行验证,程序运行良好并返回作为输入提供的相同 XML(以一些缩进和换行差异为模)
所以我的问题是:我在这里对 Woodstox 做错了吗?为什么验证仅在 writer 上失败?
我可以使用其他 XSD 和 XML 对重现此问题,在这种情况下,您可能会遇到不同类型的错误,但总是在编写器方面。阅读器端的验证始终有效(只要 XML 明显符合 XSD)。
任何见解将不胜感激!
PS:供参考,这里是示例使用的依赖项和版本
- org.codehaus.woodstox stax2-api 4.0.0
- com.fasterxml.woodstox 伍德斯托克斯核心 5.0.2
- net.java.dev.msv msv-core 2013.6.1
- net.java.dev.msv xsdlib 2013.6.1<
java - 无法使用 aalto 异步解析多个 XML 文档
我正在尝试使用Aalto-xml解析从 tcp 套接字发出的 XML 消息
https://github.com/FasterXML/aalto-xml
这是我要解析的 xml:
第一个 xml 消息被成功解析,但在第二个它引发异常。这是我的解析方法
在我的班级中,我定义了一个班级成员:
解析方法:
例外:
任何帮助,将不胜感激!
java - 使用 Aalto-xml 强制为每个 XML 创建新缓冲区
我正在尝试在异步环境中设置 Aalto-xml (Woodstox),但在弄清楚如何正确执行时遇到了麻烦!
我的流程是:
预分配“AsyncStreamReader”
xmlInputFactory.createAsyncForByteArray();
从套接字接收 XML 流
使用数据馈送 streamReader
streamReader.getInputFeeder().feedInput(bytes, 0, bufSize);
循环解析不同的 XML 标签:
while (streamReader.hasNext()) {...}
Last
XMLEvent.END_ELEMENT
被解析 --> 调用:streamReader.getInputFeeder().endOfInput();
执行后
XMLEvent.END_DOCUMENT
:streamReader = xmlInputFactory.createAsyncForByteArray();
在
AsyncXMLStreamReader.EVENT_INCOMPLETE
--> 打破循环并等待更多数据提供给解析器。
尽管我知道这是错误的,但我还是这样做了,因为如果我不调用:'endOfInput()',那么当向阅读器提供新缓冲区时,它会抛出一个异常,就像我没有完成之前的 xml 一样。
让我失望的一点是,为了获得 END_DOCUMENT 你必须调用endOfInput()
它来关闭缓冲区,这样你就不能用来自套接字的更多输入来提供它......我在这里陷入了一个循环!
如何修复我的流量?
这是带有解析器代码的要点: https ://gist.github.com/shvalb/ca9cd526aea31ccf280adf289e0991d7
maven-3 - Woodstox 解析器在 Eclipse 中的测试运行中工作正常,但从命令行失败
我的一个 JUnit 测试(在幕后)使用了 Woodstox 解析器。
当我在 Eclipse 中运行测试时,测试按预期成功。
但是在命令行上运行相同的测试,使用
导致测试失败并显示以下异常消息:
我看了一下 to-be-parsed InputStream
。在这InputStream
两种情况下 s 是相同的。
此外,在InputStream
. 第 114 行在第 11 列结束。
如何调查导致不同行为的原因?