是否可以做一个属性required
如果设置了另一个属性?
例如。在下面的代码中,viewId
必须制作属性required
, iff action
属性已设置。
XML:
<node id="id1" destination="http://www.yahoo.com" />
<node id="id2" action="demo" viewId="demo.asp"/>
如果这是可能的,请您告诉我这是如何完成的。截至目前,我已经viewId
set required
在所有情况下,因此第一个node
元素验证失败。
<xsd:attribute name="focusViewId" type="xsd:anyURI" use="required"/>
单独使用 XSD 1.0 是不可能的。除了 XSD 之外或代替 XSD,您还必须使用另一种 XML 模式语言,或者迁移到 XSD 1.1。
另一种选择可能是重构您的架构。如果 @destination 与 { @action, @viewId} 互斥,也许你可以使用 elements 来代替,这样你就可以使用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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)