问题标签 [xerces]

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 投票
2 回答
885 浏览

java - 为什么我不能使用通过在 XPath 表达式中使用 exsl:node-set/set:distinct 检索到的节点的值?

在 xslt-stylesheet 中,我使用方法exsl:node-setset:distinct从包含结果树片段的变量中访问和过滤唯一节点。我可以将这些节点的值写入我的输出文件,例如:

正如预期的那样,键的值被写入输出。但是,如果我尝试使用 XPath 表达式中的值,它会失败:

现在,输出是空的,而我知道我的 input-xml 中有一个“somenode”应该由 XPath 表达式选择,并且它的值不为空。

现在我的问题是:为什么会发生这种情况?

我正在使用 Java 1.6、Xerces 2.7 和 Xalan 2.7。

更新:根据要求,示例的一些数据:xml doc 包含:

getNodes 模板:

0 投票
2 回答
3813 浏览

java - 来自java的libxml2

这个问题与Java 中用于小型、简单文档的最快 XML 解析器有些相关, 但有更多细节。

我正在开发一个需要解析许多(数百万个)小型(大约 300k)xml 文档的应用程序。当前的实现使用 xerces-j,在 1.5 GHz 机器上每个 xml 文档大约需要 2.5 ms。我想提高这个性能。我偶然发现了这篇文章

http://www.xml.com/pub/a/2007/05/16/xml-parser-benchmarks-part-2.html

声称 libxml2 的解析速度比任何 java 解析器都要快一个数量级。我不确定我是否相信,但它引起了我的注意。 有没有人尝试过使用 jvm 中的 libxml2?如果是这样,它是否比 java dom 解析(xerces)更快? 我想我仍然需要我的 java dom 结构,但我猜从 c 结构的 dom 复制到 java-dom 应该不会花很长时间。我必须有 java-dom - 在这种情况下 sax 对我没有帮助。

更新:我刚刚为 libxml2 编写了一个测试,它并没有比 xerces 快......因为我的 c 编码能力非常生疏。

更新我在这里稍微扩大了问题: 为什么 sax 解析比 dom 解析更快?以及 stax 是如何工作的? 并对放弃 dom 的可能性持开放态度。

谢谢

0 投票
1 回答
1350 浏览

c++ - Xerces C++ XML:转义真的很难吗?

我正在使用 Xerces 库,一切都很好,但现在我想转义 XML 字符串,我发现有一个用于此的 XMLFormatter 类,在我深入研究文档后,我发现它真的很难从构造函数中使用看法。我想要的只是两个功能:

字符串转义(字符串);

字符串 unescape(字符串);

为什么 xerces 很难做到这一点?

0 投票
1 回答
485 浏览

c++ - Get schema data types from Xerces

I am using SAX2 in Xerces C++ and would like to get XML Schema data while I handle elements so that I know their type defined in the Schema. How can I accomplish this?

0 投票
1 回答
7861 浏览

java - XML Catalog Resolving / resolver.jar vs com.sun.org.apache.xml.internal.resolver

Dear forum, what is the difference between the JDK contained

and the one contained in the Apache Xerces project

are there any benefits of using the latter for simple Catalog Resolving? From what I read on Wikipedia it seems clear to me there is no benefit in using the latter:

org.apache.xml.resolver.tools.CatalogResolver is used to resolve external entities to locally-cached instances. This resolver originates from Apache Xerces but is now included with the Sun Java runtime.

Anyway some XML related projects like qizx supply a seperate resolver.jar. Thanks for your help. Michael

0 投票
1 回答
1197 浏览

java - 防止 glassfish (jasper) TldScanner 中的 DTD 获取失败在 Web 应用程序启动期间导致异常

当我尝试启动基于 Jersey 的 Web 应用程序时,我偶尔会收到附加堆栈跟踪的异常。

我认为这是由于在 glassfish 中加载的 Web 应用程序中的 xerces XML 解析失败导致无法获取 Jersey 中包含的 JSP 标记库定义的 DTD 文件。显然,我不希望我的应用程序在每次托管 .tld DTD 的服务器出现问题时都无法启动。

有人知道禁用此 DTD 获取的方法吗?或者一种在本地缓存它们的方法或类似的东西?或者这个问题的其他解决方案?

0 投票
2 回答
231 浏览

c++ - 将原始指针转换为 clone_ptr

我有一个 clone_ptr 实现,如this question所示,我有一个问题,我需要从函数返回的原始指针创建一个 clone_ptr。

这是代码:

其中document&impl声明如下:

上面的createDocument函数返回一个原始DOMDocument指针并分配给局部变量doc,现在我想获取我的文档 clone_ptr 并将从创建文档函数中获取的原始指针传递给它。然而,编译器似乎对此不太满意,因为它说如下:

所以我的问题是如何允许将原始指针显式或隐式转换为 a clone_ptr?编辑:

克隆专精:

0 投票
2 回答
273 浏览

xml - 如何使用旧 (1999) 模式版本在 JAXP 中解析/验证 XML?

我有一个使用旧版本的 XML 规范 (http://www.w3.org/1999/XMLSchema) 构建的 XML 模式。我正在尝试使用架构解析 XML 消息(如下所示)。默认情况下,Xerces 1.1 解析器在应用程序域根目录中查找模式。我正在尝试将架构移动到我们网络目录中的公共位置。似乎我无法使用 Xerces 1.1 库在我的解析程序中将 URL 指定为模式位置。

所以我尝试升级我的程序以使用 JAXP DocumentBuilderFactory 及其 setSchema() 方法。这似乎找到了具有我提供的架构 URL 的架构,除了它给出了解析错误,因为架构(大概)不符合规范的更高版本(例如,我收到错误,因为我的 Ticket 元素不将其成员包装在 xs:Sequence 中)。

我无法升级我的架构,因为目前我无法强制外部客户重写他们向我们发送消息的应用程序。

谁能告诉我如何使用 JAXP 成功地解析/验证使用老式版本的模式规范?或者,有没有办法告诉 Xerces 1.1 DOMParser 使用由 URL(不是文件位置)定义的模式?

这是架构的示例:

XML 文档如下所示:

谢谢!

0 投票
2 回答
151 浏览

xerces - 使用 Xerces 解析后 EOL 丢失

属性值中的 xerces 解析器将 eol 字符替换为空格

有什么办法可以保留 eol 吗?

0 投票
1 回答
427 浏览

java - Xerces2-j XML 模式属性/元素声明数据类型

我正在使用 Apache 的 Xerces2-j 来解析我的 XSD。我正在尝试获取 XSD 中元素/属性声明的数据类型信息。

这是一个示例 XSD:

在这种情况下,我想获取FlavorProductID属性的数据类型。根据W3C Schema API及其Xerces2-j 实现,XSAttributeDeclaration 的 getActualVCType() 将得到我想要的。但对我来说,该方法总是返回 45,即UNAVAILABLE_DT。这是 Xerces2-j 中的错误,还是我只是理解 API 错误?如果我是,如果有人能在这里指出正确的方向,我将不胜感激。