问题标签 [xsd-1.1]

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

xml - XSD 验证:N 个具有其他不同约束的子节点

我有想要使用 XSD 验证的 XML。这实际上是一个简单的场景,但我找不到正确的答案。这是 XML:

我想确保数据元素包含 4 个元素,并且只有一个x element = count,只有一个 x = maxtime ...

我现在拥有的是以下内容:

这可以正确验证,但不能保证只有 1 个计数,只有 1 个 maxtime,......

0 投票
1 回答
7620 浏览

xml - How to make type depend on attribute value using Conditional Type Assignment

I have an XML file like this

I'd like to make an XSD, so that if the value of the attribute "type" is 1, the name and surname elements must be present, and when it's 2, name and id must be there. I tried to generate the XSD in XSD schema generator, but it made the surname and id element minOccurs=0. How could I make it work?

0 投票
1 回答
2517 浏览

c# - 将 XSD 1.1 架构转换为 c# 类

我必须将 XSD 1.1 模式转换为 c# 类。问题是 xsd.exe 不支持 XSD 1.1,事实上,如果我尝试从该架构创建一个 c# 类,我会收到以下错误:

通知验证方案:元素'注意验证方案:在此上下文中不支持 http://www.w3.org/2001/XMLSchema:assert ”。

我怎样才能解决这个问题?

0 投票
1 回答
693 浏览

xml - XML Schema 1.1:复杂的循环关系检查

这将是一个复杂的问题,因此如果您对 XML Schema 1.1 不是非常熟悉,您可能无法回答这个问题。

但是,此验证检查适用于 XML Schema 1.1 Nerds :)

我有一个如下的 XML:

这是我现有的用于验证此 XML 的 XML 模式:

但是,我需要检查三个约束。我自己已经成功地构建了这个 XML Schema,但现在我已经达到了我对它的经验的极限。我无法将 XML Schema 中的最后两条注释创建为代码。

这是任务

  1. 如果元素variant的值为 3,则 groups -> group-elements 的长度只能为 1(一个元素/对象)。
  2. 如果 的variant值为 1 或 2,则有必要遍历所有组 -> 组。在迭代时,我们将src每个值保存group在一个临时变量中,以便我们可以检查下一个groupsrc 是否相同。如果是这样,我们需要遍历该组的所有步骤和前一组的步骤。仅step start当第二组的第一个元素大于step start第一组的点时才有效。
  3. 如果 的variant值为 1 或 2,则再次需要遍历所有组 -> 组和嵌套step元素。一个元素的每个元素都必须大于前start一个元素。所以如果有一个with 属性并且它的元素的值为 3 ,那么下一步只有一个. 这是需要检查的。stepstep startstepnumber="1"startnumber="2"start >3
0 投票
2 回答
2639 浏览

xml - 在 XSD 中,如何通过属性值限制枚举?

在下面的示例 xml/xsd 中,当用户输入 AnimalCategories 的值时,我希望 AnimalBreeds 中的枚举只允许适当的值。例如,如果用户输入 Cat,那么 AnimalBreeds 的有效选择应该只有 Siamese 和 Persian。我已经查看了有关 xsd 1.1 中可用的断言和替代方案的帖子,但我看不到如何将其应用于我的特定需求。

任何想法将不胜感激。

验证

0 投票
1 回答
496 浏览

xml - 限制 XSD 中所有子元素的最大字符数

我有这个代码:

我想限制desc元素的最大长度为 120 个字符,paragraphe仅包括所有内容。

例如对于单个paragraphe元素,我可以对 40 个字符的固定最大长度执行此操作:

desc但我想将(总paragraphe字符)的长度限制为 120 个字符。

0 投票
1 回答
571 浏览

xml - XML Schema 断言循环验证

我的 XML 结构如下所示:

现在我的验证规则如下:每个“myElement”元素都将包含一个“start”元素。此元素的整数值不能小于前面的“myElement”->“start”。因此,例如这将是无效的:

这样的规则怎么可能看起来像xs:assert- 元素?

0 投票
1 回答
477 浏览

xml - XSD 1.1 替代测试 text() 的内容

这是我想做的事情:

这应该适用于第一个替代方案(但不适用):

这是默认的:

无论我为标签的内容输入什么,它总是选择默认值。我假设 text() 在替代方案中无效,但我似乎找不到这样说的文档。

W3 参考

0 投票
1 回答
279 浏览

xml - XSD 1.1 断言属性必须存在于文档中

使用 XSD 1.1 可以断言某个属性存在于其他地方。

例子:

我如何断言元素查找具有在表元素中使用的名称?

断言需要在根元素上,因为不可能断言元素树,但是我如何断言每个查找元素,而不管它在文档结构中的什么位置?

0 投票
1 回答
368 浏览

xml - XML Schema 1.1 断言:如何捕获动态类型错误?

我目前正在努力处理 XML Schema 1.1 中的断言。XML Schema 1.1 建议指出,如果在执行期间发生错误,则违反了断言。这种行为似乎是合理的,但在尝试理解评估结果时可能会引起一些混乱。让我解释:

以下示例 XSD 解释定义了两个元素:str 和 dec。元素 str 必须具有值“A”或“B”。元素 dec 必须是数字。此外,如果 str 的值为“A”,则 dec 必须为正数。我试图通过使用断言来定义最后一个属性:

以下 XML 文件无效,因为元素 str 具有值“X”,这是不允许的。

当我现在使用 Saxon 9.6.0.6 验证 XML 文件时,我得到以下输出:

如您所见,仅针对一个问题(元素 str 的值非法)报告了两个错误。我发现这种行为非常令人困惑,因为它使我们更难看到真正的问题(错误的值,而不是失败的断言)。

有什么方法可以“捕获”断言中的类型错误,以便在此示例中断言不会失败?