我试图为一个元素允许两个属性值。这就是我现在完成它的方式,但我只想允许2中的1个,但不是两个。
<contact phoneH="cell">8025550000</contact>
<contact phoneW="work"> 8025550094</contact>
我希望能够做到这样的事情:
<xsd:attribute name="phoneH|phoneW" type="xsd:string" />
有没有办法将限制元素与属性一起使用?
谢谢,
列维
答案 0 :(得分:1)
我不相信XML Schema可以使用属性约束。
您可以应用其他验证机制(即schematron)或使用其他架构实施(即Relax-NG)
http://lists.xml.org/archives/xml-dev/200107/msg00070.html
不幸的是你无法做到这一点 W3C XML Schema。正如我所见,你有 两个选项:
1)更改为其他架构 方言(我认为RELAX-NG支持这个 功能) 2)表达你 使用嵌入式共同约束 schematron规则
可以验证这些约束 使用新的Schematron Validator Topologi。该工具是免费的,可以 从www.topologi.com下载。
答案 1 :(得分:1)
使用W3C xsd无法执行此操作。
另一种方法是制作phoneH和phoneW子联系人,并使用xs:choice
将用户限制为一个或另一个子元素。