如何在XSD(XML模式定义)中指定约束?

时间:2014-08-14 13:12:30

标签: xml xsd uml constraints

问题

我想在 XSD (XML架构定义)中模拟以下内容。

我在三个班级之间有以下关系:

enter image description here

Textuell说明:

  • 每个小工具引用 0或更多 操作
  • 每个触发器引用一个 小部件一个 操作
  • 0或更多 触发器 可以引用
  • 小工具
  • 操作可能会被 0以上 小部件 0或更多 触发器引用强>
  • 触发器引用的操作也必须由“触发器 小部件”引用(那就是那个)问题)

在我的 XSD 中,每个类都被建模为complexType

问题

是否可以在 XSD 中对约束(橙色音符,最后一点)进行建模?如果有,怎么样?在UML中,我使用复合结构图 OCL

1 个答案:

答案 0 :(得分:3)

我认为这被称为共同约束:您希望将规则放入Trigger的定义中,同时影响另外两件事的内容:Widget中的内容必须包含来自Action的内容。

您无法使用XSD执行此操作,但可以使用Schematron执行此操作。 Schematron将允许您使用XPath expression that checks a contains relationship编写规则。那个Xpath表达式就是你要检查的规则。