问题标签 [schematron]

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

xml - Schematron 和 Xpath,测试有效的子元素和属性集

由于 XSD 不能满足我的需求,我现在正在评估 Schematron。对允许的元素以外的元素进行测试似乎是不可能的。我需要验证@type="colorSet".. 下一个测试对我来说最重要的元素:

any other than this set of attributes

any other than this set of optional elements

其次如何check if values are alphanumerical or digits

仅供参考,有效的 XML 选项是;

我想测试;

  • 'R','G','B' 必须存在
  • 'A' 是可选的,不允许任何其他属性
  • 只允许 'index' 或 'name' 子元素

这是我陷入困境的专家;

欢迎任何评论或提示!

0 投票
2 回答
1723 浏览

xml - 在 Schematron 规则中,我如何访问当前元素的父元素?

我正在使用 ISO Schematron 来验证 XML 文档。我设置的规则按要求工作,但我想从触发断言的上下文中报告父元素的名称。示例文档可能包含 XML 片段:

<Name>Alan Smith<br/></Name>

我的 Schematron 规则测试该<br/>元素只允许作为元素的子<title>元素出现。规则如下:

当我对片段运行此规则时,断言被正确触发,但是我希望消息告诉我“不允许将“br”元素作为“名称”元素的子元素”。相反,它实际上显示“不允许将“br”元素作为 'Alan Smith' 元素的子元素”。所以<iso:value-of select=".."/>表达式实际上是选择文本节点而不是我预期的父元素?有人可以帮助解释我应该在 select 语句中使用什么 XPpath 表达式来在我的错误消息中显示父元素的名称吗?谢谢。

更新:我设法通过删除 select 语句并用 name 元素替换它来实现所需的结果,如下所示:

所以我的问题解决了,但如果有人能解释为什么我的第一次尝试不起作用,那将非常有帮助。

0 投票
1 回答
2922 浏览

xml - 如何使用 XML 和 Schematron 比较日期

Schematron XML 日期比较不起作用。它返回一个错误的错误。我想我正在使用 schematron 1.01。我正在使用 C# 和 MSDN 中的 DLL: MSDN schematron 链接

这是错误输出(通过 XSD 验证的方式):

Schematron 规则:

XML:

XSD:

0 投票
3 回答
1234 浏览

xml - 如何以结构化方式返回 Schematron 验证结果

我已经创建了几个 Schematron 断言,它们都针对我的 XML 实例运行良好。但是,我想以这样一种方式构造我的错误消息的输出,以便我以后可以使用例如 Java 对它们进行后处理。

我的断言错误消息的输出应该是

但是,诸如以下的构造:

不起作用。以结构化(XML 化)方式返回 Schematron 结果的正确方法是什么?

0 投票
1 回答
809 浏览

xml - 使用 schematron 验证大型 xml 文件

我正在使用 schematron 来验证大型 xml 文件(几兆字节)。如果文件没问题(如果没有错误),验证会非常快。但是当错误计数增加时,schematron 验证时间的执行时间就会增加。

例如,当发现 200 个错误时,是否有任何方法可以停止 schematron XSLT 验证。这会有所帮助,因为如果存在包含数百次相同错误的大文件,那么只报告第一个错误并要求用户在更正这些错误后再次验证文件就足够了。

0 投票
1 回答
88 浏览

xml - 通过引用条件的@ID,根据来自另一个节点的条件验证一个节点

我正在尝试根据由其 ID 标识的文档中不同元素中的标准来验证子元素的存在。使用 ISO Schematron 和 XPath 2.0。

举个例子:

只有当@id 为“red”的“value”元素在文档中的某处包含属性 bits="16" 时,才应允许元素“increased_sensitive”。

老实说,我什至不确定 Schematron 是否可行,我对它的经验非常有限。

0 投票
3 回答
451 浏览

xml - 如何检查属性是否存在于元素中?

我想检查文档中是否有内联样式表,但我不确定如何选择元素的后代属性,因为“样式”属性可以附加到正文元素中的任何元素。这是我写的当前 xpath:

但是解析器抛出错误说:“轴名称后出现意外的标记“@””。谁能告诉我如何解决它或有另一种方法可以做到这一点?谢谢!

0 投票
1 回答
114 浏览

xml - Schema 和 Schematron 的范围

我有一个元素可以根据某些约束具有不同的结构。元素定义为:

我也有一个元素有几个MyElement. 但我想能够这么说

  • 第一个匹配项必须有 Child1,对于所有其他匹配项,Child1 可以是可选的。
  • 所有奇数出现必须有一个 Child1,偶数出现 Child1 可以是可选的。
  • 如果 Child 的值等于 R,则元素 Child1 必须存在。

我不想要解决方案;我想知道你会用什么技术来解决这类问题。仅 Schema 还是 Schema 和Schematron?我有兴趣了解 XML Schema 和 Schematron 的范围。

0 投票
1 回答
1372 浏览

duplicates - 使用schematron获取xml中的重复属性

我正在使用 schematron 为 XML 文件编写一些检查。

我想写下一个检查,以便'id'在 xml 中的任何标记中都不能有重复的属性。
请注意,属性'id'可以出现在 xml 中的任何元素中。
我发现了一些与此相关的东西,但仅适用于使用前兄弟功能的兄弟姐妹。

请建议。

0 投票
1 回答
2423 浏览

xml - 我可以使用 schematron 来验证 xml 文件中的日期范围不重叠吗?

想象一下,我有一个简单的 xml 文件:

我想确保给定的日期范围不重叠。显然,我可以在代码中执行此操作,但理想情况下,我想提供一个验证包来配合我的 xml 模式来验证一些业务规则。

我可以使用 schematron 来验证范围不重叠吗?