带有“必需”属性选项的 XSD 相关查询

Posted

技术标签:

【中文标题】带有“必需”属性选项的 XSD 相关查询【英文标题】:XSD with "required" attribute option related query 【发布时间】:2020-06-05 19:59:27 【问题描述】:

我是 XSD 和 XML 的新手,需要探索是否可以选择确保同一元素内的一组属性中的任何一个属性都是必需的。

例子:

xs:element name="condition" maxOccurs="unbounded" minOccurs="1"

                  xs:attribute type="xs:string" name="alias1" use="required"
                  xs:attribute type="xs:string" name="col1" use="required"
                  xs:attribute type="xs:string" name="operator" use="required"
                  xs:attribute type="xs:string" name="string" use="optional"
                  xs:attribute type="xs:string" name="number" use="optional"
                  xs:attribute type="xs:string" name="date" use="optional"

在这里,我想确保一组 3 个属性中的至少一个属性(上面提到的可选)是必需的。不能全部都是可选的,但是任何一个(也可以是多个)都是必需的。

谢谢, 拉杰尼什

【问题讨论】:

【参考方案1】:

这不能在 XSD 1.0 中完成。它可以在 XSD 1.1 中使用断言来完成,例如

<xs:assert test="count(@alias1, @col1, @operator, ...) ge 1"/>

【讨论】:

你好迈克尔,我正在数据库中工作,这是不可能的。 Oracle XML DB 仅支持 XML Schema 1.0。 那是不可能的,除非你有影响力说服 Oracle 跟上他们的标准一致性。 谢谢迈克尔,它有帮助。请提供更多帮助:是否可以在值级别施加所需的约束?例如,我想确保 alias1、coli1 和运算符的值始终填充在 where 元素内的条件元素中: 下面是相应的 xsd 部分,例如 - xs:attribute type="xs:string" name="alias1" use="required" xs:attribute type="xs:string" name="col1 " use="required" xs:attribute type="xs:string" name="operator" use="required" 请不要在 cmets 中就其他问题的答案提出补充问题。接受答案,然后打开一个新的独立问题。

以上是关于带有“必需”属性选项的 XSD 相关查询的主要内容,如果未能解决你的问题,请参考以下文章

linux相关命令

在XSD中,当可选的父元素出现时,它的子元素是必需的吗?

带有元素和属性的 XSD 扩展

带有 FIRST 选项的 Informix 子查询

Dynamics 365 在用工作流创建实体时,步骤一直提示缺少必需的属性

Ms access Select 带有限制选项的查询