问题标签 [xml-validation]

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 投票
5 回答
12181 浏览

xml - 使用 XSD 验证 XML ...但仍允许可扩展性

也许是我,但如果你有 XSD

定义此文档的架构

如果您添加了另一个元素(例如 EmailAddress)并混淆了顺序,它将无法验证

我不想将 EmailAddress 添加到文档中并将其标记为可选。

我只想要一个 XSD 来验证文档必须满足的最低要求。

有没有办法做到这一点?

编辑:

marc_s 在下面指出,您可以使用xs:anyinside ofxs:sequence来允许更多元素,不幸的是,您必须保持元素的顺序。

或者,我可以使用xs:allwhich 不强制元素的顺序,但唉,不允许我放置xs:any在其中。

0 投票
1 回答
2246 浏览

xml - 使用 libxml 和 XSD 文件在 Perl 中验证 XML

我试图让我的 perl 脚本从网上获取一个 Xxml 文件并根据 XSD 文件对其进行验证。

执行此操作的代码如下:

运行这个会导致一个神秘的错误:“元素cropdata 内容检查失败”(cropdata 是我的第一个非根标签)。

在我的 XSD 文件中,条目如下所示:

然后是一堆“ <xs:element..../>”,然后:

进入 perl 调试器显示在"my $doc = $parser->parse_string($file);"运行该行之后,$doc 打印为 XML::LibXML::Document=SCALAR(0x6b99f0)。

谁能帮我弄清楚我做错了什么?(警告:这可能是一个愚蠢的错误,我不会把它放在我自己身上)。

0 投票
2 回答
28308 浏览

xml - 验证失败:“EntityRef:期待';'”

嗨,我有一些无法验证的 XML。我已将问题缩小到这一点:

我把它放在一个 XML 验证器中,它吐出:

此页面包含以下错误:第 1 行第 16 列的错误:EntityRef:期待';'

关于丢失“;”的任何想法 应该去?还有问题吗?

0 投票
2 回答
11526 浏览

javascript - XML 验证:解析属性名称时出错

我遇到了 XML 验证问题。这一点:

结果是:

此页面包含以下错误:第 5 行第 246 列错误:解析属性名称时出错

我不确定我的错误是什么。有关如何纠正此问题的任何建议?

谢谢!

-拉克西米迪

0 投票
2 回答
1852 浏览

eclipse - 在 Eclipse 中挑选出 web.xml 错误

当 Eclipse 检测到无效的 XML 文档(在我的例子中是一个web.xml文件)时,它会转储 DTD 的内容模型并告诉我该元素无效。这是非常无益的,因为它最终告诉我:

元素类型“web-app”的内容必须匹配“(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping *,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security -role*,env-entry*,ejb-ref*,ejb-local-ref*)”。

在一个 900 行的 web.xml 文件中,错误不容易发现。

如何挑选出导致文档无效的第一个元素?

0 投票
1 回答
2515 浏览

java - 如何在 SAXParser 中验证 XML 文档而不必使用 XMLReader?

我想创建一个SAXParser验证的,但似乎唯一的方法是创建一个XMLReader并使用setErrorHandler()或让ContentHandlerinSAXParser.parse()也实现ErrorHandler

我错过了什么吗?我想要做的就是创建一个SAXParser这样的验证:

我正在使用 Xerces 2.9.1

感谢您的任何提示!

埃里克

0 投票
1 回答
5598 浏览

.net - 使用 .NET 针对架构验证 XML

我想测试(真或假)任意 XML 文件是否与给定模式匹配。

值得一提的是,该架构是 Word 2003 WordML 架构,Microsoft 使用大约 7 个*.xsd文件的列表来定义它。

这些文件之一还包括 W3Cxml.xsd文件,包括以下语句:

我正在使用如下所示的 .NET 代码进行验证:

我的问题是,如果我在未连接到互联网的机器上运行此代码,那么我会收到一个XmlSchemaValidationException错误,大意是它 can't find xml.xsd

为了解决这个问题,我下载了 xml.xsd 的副本,并使用以下settings.Schemas.Add方法显式添加它:当机器未连接到 Internet 时,验证现在可以正常工作。

但是,当机器连接到互联网时,我现在收到一条错误消息The global attribute 'http://www.w3.org/XML/1998/namespace:lang' has already been declared.

所以显然我需要明确添加它,或者我不需要,这取决于机器是否能够从互联网上静默下载它(或者甚至可能以前能够下载它,并将它缓存在某个地方)。

所以,它是“如果我这样做该死,如果我不这样做该死”。我是否需要以一种方式尝试,捕获异常,然后以另一种方式尝试?还是有更优雅的解决方案?

0 投票
2 回答
25627 浏览

c# - 如何验证 XML 文档?

我的 C#/.NET 应用程序读取用户手动编辑的 XML 文件。允许的元素和标签在应用程序的文档中进行了描述。我正在使用 LINQ 从 XML 文件中提取数据。

在从 XML 文件中提取数据之前,我想对其进行验证以查看它是否具有预期的结构。如果没有,最好能提供有关问题所在的信息,以便我可以向用户提供一些反馈。

在 C# 中执行此操作的最简单方法是什么?

0 投票
1 回答
327 浏览

xml - 引用来自不同项目模块中不同 XML 的 XSD 文件?

我有一个 XSD 文件,它在不同项目模块的三个不同 XML 文件中使用:

我一直在试图弄清楚如何避免手动将 XSD 复制到每个需要它的模块中,所以我不必维护三个文件而不是一个。

maven 中是否有一种方法可以让我的一个模块中只有一个版本,并在构建时将其复制到另外两个?

谢谢!

0 投票
2 回答
4380 浏览

java - 在 Java 中:针对位于 @ 不同服务器位置的多个模式验证 XML

在我的程序中,我正在生成一个 XML 文件,并且需要针对位于不同 URL 上的多个模式来验证该 XML 文件。它只需要一次针对所有模式验证该 XML 文件。

源片段:

当我运行上面的代码片段时,我得到了这个错误:

org.xml.sax.SAXParseException:src-resolve:无法将名称“xn:SubNetwork”解析为(n)“元素声明”组件。在 org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org .apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source) at org.apache.xerces.impl.xs.traversers.XSDHandler.getGlobalDecl(Unknown Source) at org.apache.xerces.impl.xs.traversers .XSDElementTraverser.traverseLocal(Unknown Source) at org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseLocal(Unknown Source) at org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraverser。

代码中的问题是什么?他们是否有任何其他方式来验证多个模式?