问题标签 [xsd-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 投票
2 回答
13169 浏览

xml - 创建具有限制的 XSD 可选十进制元素

我设法使用以下方法创建了一个可选的十进制元素:

但我还需要添加限制,以便如果已输入,例如将其限制为最大长度 10 和最大 3 位小数。所以我有这个:

问题是我不知道如何组合它们。它们可以结合起来吗?或者有没有更好的方法来做到这一点?

0 投票
2 回答
122 浏览

xml - 如何在 xml 模式中对此进行建模?

我正在为来自外部系统的 xml 创建一个模式。我在建模这种类型时遇到问题:

我创建了一个扩展双精度的类型:

然而,这还不够好,当我尝试验证架构时,我收到一个错误,抱怨:'' 不是'double' 的有效值。

有什么提示吗?

谢谢

0 投票
1 回答
4024 浏览

xml - XSD:key 和 keyref 验证

我遇到架构验证问题,这是我的 xml

Bookmark 中的 ID 元素应该是键,Favorites/Folder/Bookmarks/Bookmark ID 属性应该总是引用一个 Bookmark ID。

这是我的xsd:

xml 格式正确,但对 ID 属性的验证不起作用。

0 投票
2 回答
157 浏览

xsd - 每个元素的任何顺序+约束

我正在尝试创建一个 XSD,它允许子元素按任何顺序排列。但是每个子元素都有自己的 minOccurs 和 maxOccurs。

我的 XSD:

例如一个有效的 XML:

例如一个无效的 XML(Sample1 只能选择一次):

但我不知道,我如何混合顺序,而所有元素都有自己的约束。

感谢帮助

0 投票
2 回答
2193 浏览

c# - XML 的 XSD 验证有多昂贵?

我想通过在 C# 中使用 xsd 模式来验证大型 xml 文件。对于 1000 行 xml 代码的文件,验证需要很长时间。

是否有任何提示和技巧可以更快地进行验证?

您能否发布一些使用大型 xml 验证更快的代码示例?

编辑 1:我像这样 验证 Validating XML with XSD

编辑 2:对于大文件需要超过 10 秒。而且我需要在一秒钟内快速完成验证。

编辑 3:文件大小大于 10 Mb

编辑4:我也在考虑这种方法,我也想将xml文件存储在数据库和xsd中。

0 投票
2 回答
15713 浏览

c# - 使用 XSD 验证 XML 时忽略提供的命名空间

背景:

我们正在构建一个应用程序,它允许我们的客户以预定义的(即我们不控制)XML 格式提供数据。XSD 由第三方提供给我们,我们希望在处理之前收到一个通过模式验证的 XML 文件。

问题:

我们提供的 XSD 包含默认命名空间和目标命名空间,这意味着如果客户提供的 XML 文件不包含命名空间,则验证将通过。我们显然不希望他们提供说他们通过但不应该通过的东西,但更大的担忧是如果我找不到解决方案,我们将需要对每个元素进行大量额外检查XML 验证。

问题:

是否可以强制 .NET 执行验证并忽略提供的 XML 和 XSD 上的命名空间。即以某种方式“假设”命名空间已附加。

  1. 是否可以轻松可靠地删除内存中的命名空间?
  2. 在这些情况下,最佳做法是什么?

我到目前为止的解决方案:

  1. 每次更新时从 XSD 中删除命名空间(不应该很频繁。这并不能解决这样一个事实,即如果他们提供命名空间,它仍然会通过验证。
  2. 从 XSD 中删除命名空间,并找到一种方法每次都从传入的 XML 中剥离命名空间。这似乎需要很多代码来执行一些简单的事情。
  3. 在验证 XML 文件之前对其进行一些资格预审,以确保其具有正确的命名空间。如果文件的内容正确,则由于命名空间无效而使它们失败似乎是错误的。
  4. 创建一个没有命名空间的重复 XSD,但是如果它们只是提供了错误的命名空间或不同的命名空间,那么它仍然会通过。

示例 XML:

具有不同的命名空间

根本没有命名空间。

0 投票
1 回答
559 浏览

php - 通过 PHP 的 DOMDocument::schemaValidateSource() 验证 XSD minLength

我想通过 XSD 验证 XML。我必须提到我的 XSD 工作正常,除了这一块:

我制作了一个包装 PHP 类来针对 XML 验证这一点,它的核心是这样做的:

问题是,即使在<some_element></some_element>or上<some_element>[100_chars_here]</some_element>,它也会验证(我没有错误),我希望该元素的最小内容长度为 50。

某处有错误吗?我在这里想念什么?它适用于 XSD 中的正则表达式模式,但我不想使用它们。

我在 WinXP 上使用PHP 5.3.5with 。libxml 2.7.7

0 投票
1 回答
2267 浏览

xsd - 使用序列创建多个元素名称。

下面是示例 xml,它有多个<rulex>以序列 1 开头,它可以结束许多规则,如<rule1> , <rule2>, <rule3>等....

下面是我尝试<rulex>为上述 xml 创建动态元素名称的架构。当我从这个模式生成 xml 时,我没有得到与上面的 xml 相同的 xml 格式。您能否让我知道如何创建具有以序列号开头的多个元素名称的模式。我的要求是在 xml 文件中添加多个规则(<rule1>,<rule2>,<rule3>等...),并且该 xml 文件应针对模式进行验证。

谢谢,马杜

0 投票
3 回答
1928 浏览

xml - 定义具有属性和可选值的元素

如何创建可以验证以下两个示例中的任何一个的 xsd?

0 投票
2 回答
1817 浏览

javascript - 使用 JavaScript 进行 RelaxNG 或 XSD 模式验证

我想在客户端 JavaScript 中进行 RelaxNG(首选)或 XSD(如果必须)模式验证。有什么好的图书馆吗?谷歌找到了jsrelaxngvalidator,但我无法让它运行,而且它似乎没有维护。目标浏览器仅限 Firefox 和 Chrome。