gpt4 book ai didi

xsd - 仅当设置了另一个属性时才需要一个属性

转载 作者:行者123 更新时间:2023-12-04 17:00:26 28 4
gpt4 key购买 nike

是否可以制作属性required如果设置了另一个属性?

例如。在以下代码中,viewId必须设置属性 required , 如果 action属性设置。

XML:

<node id="id1" destination="http://www.yahoo.com" />
<node id="id2" action="demo" viewId="demo.asp"/>

如果可能的话,请你告诉我这是如何完成的。截至目前,我有 viewId套装 required在所有情况下,因此第一个 node元素未通过验证。
<xsd:attribute name="focusViewId" type="xsd:anyURI" use="required"/>

最佳答案

单独使用 XSD 1.0 是不可能的。除了 XSD 之外或代替 XSD,您必须使用另一种 XML 模式语言,或者转向 XSD 1.1。
另一种选择可能是重构您的架构。如果@destination 与 { @action, @viewId} 互斥,也许您可​​以使用元素代替,这将允许您使用 xsd:choice .
更新:对于 XSD 1.1

<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="node">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:ID" use="required"/>
<xsd:attribute name="destination" type="xsd:string"/>
<xsd:attribute name="action" type="xsd:string"/>
<xsd:attribute name="viewId" type="xsd:string"/>
<xsd:assert test="(@viewId) or not(@action)" />
</xsd:complexType>
</xsd:element>
</xsd:schema>

关于xsd - 仅当设置了另一个属性时才需要一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746049/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com