问题标签 [xmlcatalog]

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 回答
999 浏览

java - XMLCatalog 可以用于模式导入吗?

您可以使用 XMLCatalog 来解析架构导入语句中的 xsds 吗?如果是这样,首选/最佳做法是什么?我想将 xsds 打包在一个 jar 中,因此使用相对 schemaLocation 不起作用。

到目前为止,我正在尝试做类似的事情:

没有太多的运气。

0 投票
2 回答
1674 浏览

java - XML 目录文件无法解析

我正在使用兼容 OASIS v 1.1 的解析器(Norm Walsh 的XMLResolver以及下面的目录。但是,我很确定我在这里犯了某种明显的错误(这是我第一次需要使用v 1.1 features),因为尝试解决 OxChapML.dtd 失败。任何人都可以看到明显的错误吗?甚至是微妙的错误?

更新:使用元素上的集合,所有public元素都可以很好地解析。只有那些应该使用失败的元素来解决的元素。因此,如果我有一个使用 PUBLIC 标识符声明其 DocType 的文档,它将毫无问题地解决(我的 CatalogManager.properties 中有一个设置)。但是,如果我只有一个 SYSTEM 标识符(例如“OxChapML.dtd”),这应该与适当的匹配,但事实并非如此。在解析器上打开调试表明它甚至没有尝试通过.xml:basegroupsystemSuffixprefer=publicsystemSuffixsystemSuffix

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 回答
683 浏览

eclipse - Eclipse XML 目录条目 - 目录中的点

有没有办法在 Eclipse 中定位 XML 目录条目,其中 location 在其目录之一中有点,例如当 location 是时C:\Users\xyz\.m2\repository\org\springframework\spring-beans\3.0.3.RELEASE,添加 XML 目录元素弹出窗口会给我这个消息“ URI must not include '.' or '..'"

问题出在 .m2 目录中(它有点)。我必须重命名它还是有办法解决这个问题?

0 投票
2 回答
625 浏览

xml - 在 IBM RSA(Rational Software Architect)中编辑 XML 目录

在我们的组织决定迁移到 IBM RSA 之前,我一直在使用 Eclipse WTP。我遇到的问题是我看不到任何地方可以在 RSA 中编辑 XML 目录(我使用的是 8.0.2 版)。

在 Eclipse WTP 中,我曾经能够通过 Window > Preferences > XML > XML Catalog 编辑 XML Catalog 设置。但是在 RSA 中,我没有 XML 选项(并且不知道如何获取它们!)。

有任何想法吗?

0 投票
1 回答
798 浏览

python - Python LXML 目录查找

我正在制作一个 SCons 文件来构建 Docbook 文档。为了跟踪依赖关系,我想要某种方法将目录文件查找解析为文件的绝对路径。

所以说我有一点 Docbook XML:

和一个 catalog.xml 文件:

使用 lxml 获取 xinclude href 字符串没有问题,但我被困在那里。我需要某种方法从目录文件中获取 file:///common/logo.xml 解析为的绝对文件名(在本例中为 /home/kst/svn/TOOLS/Docbook/common/logo.xml)。它需要是某种 Python 代码,这样我就可以在我的 SConstruct 文件中使用它而不会太麻烦。

任何帮助表示赞赏。

0 投票
3 回答
5009 浏览

xml - Eclipse WTP 中的 XML 目录:如何引用独立的 XML 模式

我有一个 XML 模式文档(由我处理的公司提供)来验证他们的系统所需的某个 XML 文件。

假设架构的前几行看起来像这样(我已经修改了 URI 以保护有罪的人!):

XSD 中的 URI 在未修改的原始文件中无效,即您不能去那里获取此 XSD 文件的副本。我不知道他们为什么没有在 XSD 中定义的 URL 上发布它,但他们没有。

我有一个 XSD 的本地副本,我想用它来验证我使用 Eclipse 的 XML 目录的特性创建的 XML 文件。显然,由于 URI 无效,因此没有必要让系统尝试从 Web 检索 XSD。

假设本地 XSD 文件位于我的本地驱动器上:

XML 文件的开头两行如下所示:

谁能举例说明如何做到这一点?

具体来说:

  1. 根据我上面提供的值,我在 Eclipse 的 XML 目录对话框中设置了哪些值?
  2. 我应该在 XML 文件中放入什么来使其针对本地 XSD 进行验证,而不会混淆我读取我的 XML 文件的其他系统?

我在 Eclipse wiki 上找到了这个页面,但我个人觉得说明不是很清楚:-

在 Eclipse 中使用 XML 目录

我已经尝试设置 XML 目录参数:

然后添加

到 XML 文件,但它似乎不起作用。

顺便说一句,如果您的 Eclipse 版本没有 XML 目录,那么您可能还没有安装“Web 工具平台 (WTP)”特性。它们带有 Eclipse 的 Java EE 版本,但可以单独安装。

0 投票
1 回答
484 浏览

java - 在 Ant 中禁用 web.xml 验证

我位于公司代理/防火墙后面,有时,我的 ANT 构建会失败,并出现以下异常:

有问题的 web.xml 是第三方库的一部分,我无法更改它,它必须包含在 .ear 文件中。

我尝试将各种有问题的 dtds 下载到本地文件夹,将它们添加到 XML 目录中,摘录如下:

问题是:

a) 是否可以禁用验证 web.xml?它是应用程序服务器的一部分,不会改变。

b)如果我不能禁用它,xmlcatalog 是尝试在本地解决它的正确方法吗?遵循了有关此问题的文档后,我可能做错了什么,这意味着它不起作用。

c) 有替代品吗?

任何帮助表示赞赏。

附言。当我不在公司网络上时,我可以愉快地构建我的应用程序,但是我无法访问其他服务。

0 投票
1 回答
589 浏览

java - Xerces 能否支持 XMLCatalogResolver 和同时?

Xerces 声称允许向阅读器添加 XML 目录支持,如下所示:

但是一旦我这样做<xs:include/>了,我的模式中的任何标签都不再被处理。似乎XMLCatalogResolver一旦添加,它就成为实体解析的唯一去处,因此包含不再起作用。Eclipse OTOH 使用相同的目录成功验证,所以它应该是可能的。

有没有办法解决这个问题,或者是否有任何其他支持目录的基于 Java 的验证器?

谢谢,多米尼克。

0 投票
2 回答
17017 浏览

maven - 从 XJC 中导入的模式解析类型定义失败

我有这个 API 使用 JAXB 方便地使用对象模型,由 XJC(XML 到 Java)编译器通过命名引用从 XML 模式生成。它通过各种背景魔法和反射抽象了 JAXB 上下文的创建和查找 ObjectFactory 方法。它的基本要点是您总是定义一个通用模式,然后任何数量(也可能是 0)的模式“扩展”该通用模式,每个模式都会产生自己的数据模型。通用模式带有可重用的定义,扩展它的那些使用这些定义来组成自己的模型。

我现在遇到了一种情况,我想为多个项目重用通用模式。通用类型定义在项目之间应该保持相同,并且将针对从这些生成的抽象类构建一些代码。所以我需要首先为一些通用模式生成类,然后生成那些扩展和单独使用它们的类。我在构建过程中使用 Maven。

我遇到的问题是从扩展模式中的通用模式解析类型定义。

假设我的通用架构名为“general.xsd”,如下所示:

旁边有一个绑定文件来进行一些命名自定义并设置输出的包名称:

然后,我将在该项目的 POM 中使用下一点来生成 Java 类:

如您所见,我使用的是 JAXB2.1 Maven 插件。我已将选项设置为生成用于逐步编译的剧集文件。删除先前输出的选项是为了解决错误;它所做的只是确保首先清理所有内容,以便强制重新编译。

到目前为止,一切都很好。该项目编译顺利。需要注意的是,除了生成的 Java 类之外,我还将模式打包到生成的 jar 文件中。所以这些在类路径上可用!该sun-jaxb.episode文件应该在 META-INF 中。

然后我开始使用将扩展上述模式的项目,首先导入它。其中一种“子类型”可能如下所示(我将其称为 sub.xsd):

同样,有一个绑定文件:

以下是该项目的 POM 中处理 XJC 生成的部分内容:

最初,所有模式都在一个文件夹中,我schemaLocation将导入中的属性设置为general.xsd,效果很好。但是现在事情是跨项目分开的,我遇到了问题。第一个问题是找不到其他模式。我已通过从元素中取出属性schemaLocation<xs:import />仅保留namespace属性并添加目录文件 ( catalog.cat它的内容是:

这似乎有效,因为我不再收到指出无法找到架构的错误。但由于某种原因,从导入的模式解析实际类型定义继续失败。这是一个例外:

这是我到目前为止所尝试的:

  • 使用目录文件。部分成功,因为现在可以找到导入的模式。
  • 让通用模式的编译生成一个剧集文件,并将其用于子模式的编译。似乎没有什么区别,虽然这应该只在类型被解析后才起作用,所以我认为这还不重要。
  • 使用不同的 JAXP(注意:不是JAXB,JAXP)实现。它确实使用了不同的,因为我可以在异常的堆栈跟踪中看到它,但最终结果是相同的。
  • 使用maven-jaxb22-plugin21 代替。没有区别。

在网上环顾四周,似乎人们至少从 2006 年开始就遇到了这个问题,这可能与一些 Xerces 解析器问题有关。我希望这不是一个已经潜伏了 6 年而没有人愿意修复它的错误。其他人有什么建议吗?也许有人遇到了同样的问题并找到了解决方案?我能想到的唯一解决方法是使用 'svn:externals' 将通用模式拖到子项目中并在那里重新生成类,但它很脏,只有当你可以连接到我们的 svn 存储库时才会起作用。

非常感谢您阅读这篇长文。请记住,我已经从现有项目中获取了以上所有内容,并替换了一些命名空间和其他匿名内容,因此可能会出现一些拼写错误。