问题标签 [xerces2-j]

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.

0 投票
1 回答
108 浏览

java - IBM SBT SDK 1.1.0 (Java) 和 Apache xerces

我正在将与 IBM SBT SDK (Java) 的 IC 集成添加到仍然使用 xerces 2.4.0(截至 2009 年 3 月)的现有项目中。

使用 IBM SBT SDK 1.0.x 在这里没有造成任何问题,但是 1.1.0 的 XML 序列化实现完全依赖于 org.w3c.xml.ls.DOMImplementationLS 以及大约在 2004 年将 xerces 移动到“xercesImpl”之后引入的此类东西.

然而,该项目包含许多使用基于 xerces 和 xml-apis 的 XML 的代码,并且过快地迁移到这些库的“更新”版本看起来很危险。因此,我想“不超过绝对需要”。

感谢 maven,如果没有在 pom.xml 中直接引用,没有人可以直接看到加载了任何工件的哪个版本。因此我的问题是:

IBM SBT SDK 1.1.0“真正”需要哪个版本的 xercesImpl?2.4.0 是不够的,因为 SBT SDK 中使用的一些方法还没有在那里实现......

0 投票
0 回答
738 浏览

java - 在 GlassFish 4.0 中对 xerces 使用认可的标准覆盖机制

如何使用认可的标准机制在 GlassFish 4.0 WAR 应用程序中使用 xerces?根据文档*,您应该将其放入domain-dir/lib/endorsed. 但是,当我将 xercesImpl、xml-apis 和 xml-resolver 放在那里时,这些类在 WAR 中的类中不可用。这很可能是由于文档和默认配置之间的不一致:domain.xml未列出domain-dir/lib/endorsed

当我包含它或将文件放入glassfish-install-dir/lib/endorsed时,启动失败并出现以下异常:

我该如何解决?按照此答案lib/endorsed中的建议将 Woodstox StAX 解析器下载到其中不起作用。

-- * 这是 GlassFish 3 的文档,但在GlassFish 4
的文档中完全相同,我只找到了 PDF

0 投票
2 回答
499 浏览

xml - xslt 文档函数无法解析引用的 xml 文件中的 xinclude 标记

我正在寻找一种解决方案来解决由 document() 函数 (XSLT) 引用的文档中的 xincludes。

在我的评估中,我尝试了 xsltproc(不起作用),现在我坚持使用 saxon 6.5.5 和 apache xerces 2.11.0。

这是我当前的命令行。

也许我必须添加一些参数或者我必须使用一些额外的库。感谢您的回复。BR

马库斯

0 投票
1 回答
540 浏览

java - java.lang.AssertionError 使用没有命名空间的 XML Schema 1.1 的 xercesImpl

我使用 Xerces2 Java Parser 来验证基于 XML Schema 1.1 的 XML 文件。我已经在 maven 存储库中导入了 Apache Xerces2 Java 2.11.0 (XML Schema 1.1) (Beta) 二进制包附带的所有 jar。在玩了一些配置之后,它工作正常。

我的目标是针对 XML Schema 1.1 验证不包含命名空间的 XML 文件。

架构:

XML 文件:

Java 代码:

问题是当 JUnit 测试运行时,QName 类断言命名空间并且它失败了。具体测试的目标不是命名空间的有效性,因为它是有意识的缺席的,而是 XML 验证。因此我们可以忽略命名空间断言。

抛出的异常是(省略了一些行):

0 投票
0 回答
2188 浏览

java - 实体“entityname”被引用,但未声明

我发现了一个关于此的问题,但它似乎是一个老问题,答案不再适用Java XML 处理实体问题?

所以我的问题是我实际上使用的是 XML 文件,而且它确实有Entity References. 我希望这些实体引用保留下来而DocumentBuilder不是解析它。但是它尝试解析它,然后我得到The entity "entityname" was referenced, but not declared.异常。

这是我的XmlParser类构造函数:

我也尝试过不使用DocumentBuilderFactory.newInstance()任何参数并得到同样的错误。

我该如何解决这个问题?

示例 XML:

例外:

0 投票
1 回答
200 浏览

java - Xerces-J 对未解决的 xsi:type 的宽松验证失败是否正确?

我在Envelope使用这段代码(如下)验证此 SOAP 时遇到问题。

我得到的错误是:

org.xml.sax.SAXParseException;cvc-elt.4.2:无法将“ipo:UKAddress”解析为元素“shipTo”的类型定义。

SOAP XSD 定义Body为:

我的期望是“宽松”应该验证它是否有定义,但如果没有定义则忽略。但是,对于xsi:type="ipo:UKAddress". 我只验证 SOAP Envelope- 而不是Body.

它看起来像 xerces-j 中的一个错误。在同一段代码中,XMLSchemaValidator.java :2152 实际上会在引发错误之前检查 processContents:

然而,XMLSchemaValidator.java :2178 没有进行此类检查,并且无论如何都会抛出。

对我来说,它看起来像是 xerces-j 中的一个错误。此外,Java 8 中存在此问题。感谢任何帮助或确认这确实是一个错误。

0 投票
0 回答
430 浏览

java - 如何将 XInclude 感知 XMLReader 链接到 XMLFilter,以便在过滤器已更改的任何元素上执行 XInclude 包含?

Java XML 解析中 - 合并 xi:include的输出 发帖人想要使用 XInclude 但在include元素上使用了错误的命名空间。我认为将XMLFilter放在 XInclude 感知解析器之前,其中 XMLFilter 负责更正命名空间,可以解决这个问题(无需分别手动编辑文件,而无需单独的处理步骤首先创建具有更正命名空间的中间文件) .

所以我写了以下内容XMLFilter,扩展了XMLFilterImplSAX 提供的内容:

然后我分别创建了一个 XInclude 感知 SAXParserXMLReader以链接到该过滤器并将示例文档作为SAXSource来自该过滤器的 a 加载到默认值Transformer中以构建一个DOMResult

file3.xml我使用的示例文档xi:xinclude在正确的 XInclude 命名空间中有一个元素,在旧的不受支持的命名空间中有一个元素:

我的期望是过滤器首先修复命名空间,然后 XMLReader 对两个元素执行 XInclude。但是,使用 Java 1.8 运行代码时,输​​出如下:

因此过滤器已将命名空间固定在第二个include元素上,但 XMLReader 仅在第一个include元素上应用了 XInclude 包含。

我哪里出错了?如何链接过滤器和 XInclude 感知 XMLReader 来修复命名空间并对命名空间更正的元素执行 XInclude 包含?

为了完整起见,这里是reuse.xml

以及便于测试的 Java 程序的完整代码:

我还尝试将来自 Apache 的最新 Xerces Java 放在类路径中,以查看它是否解决了问题,但输出保持不变。

0 投票
1 回答
92 浏览

html - XercesLib 无法解析无效的 XML

我正在使用 XercesLib c++ 库来解析 html 文件。在我的情况下,html 文件可能在标签内容中有尖括号。

现在 XercesLib 无法解析 mo 标签的内容,如果任何标签有非转义字符,它会给我空输出。

我无法告诉源提供转义的输入文件,因为某些 JavaScript 库(MathJAx)可以毫无问题地解析相同的文件。

如何在 XercesLib 中解决这个问题?

0 投票
1 回答
1561 浏览

java - 使用 Xerces 2 防止 XXE(外部 XML 实体)注入

我正在尝试实现一个 XML 验证,它应该可以防止 XXE 注入。OWASP 页面上显示的代码与本机 JDK8 完美配合。

问题是我在内部使用 Xerces2 (xercesImpl-2.11.0.SP4) 并且无法识别所需的 XMLConstants 的 Wildfly10 上使用此代码。

在具有给定 Maven 依赖项的单元测试中,问题很容易重现

虽然可以使用参数停用 Wildfly10 上的 Xerces2

-jaxpmodule“javax.xml.jaxp-provider”

这不是我想做的。

有人知道如何正确配置 Xerxces2 以防止 XXE 注入...

0 投票
0 回答
239 浏览

java - Tomcat:如何将 context.xml 中的 XML 属性设置为 null?

我想动态配置sessionCookieDomain为环境变量。在我的context.xml,我有:

鉴于这environment.sessionCookieDomain是一个配置属性。

我只想在某些条件下设置它,否则,将其保留为默认值(即null)。那可能吗?