在XSD中,我正在尝试验证-如果密钥匹配某个值,那么我想从多个字符串中验证属性是否正确。
我不确定是否可以,如果不知道怎么办。
<xs:element name="property" type="tpmProperty"/>
<xs:complexType name="tpmProperty">
<xs:sequence/>
<xs:attribute name="key" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
我有这些规则,还有许多其他规则,例如:
<property key="postProcessingMode" value="(none, script, java class)" />
<property key="flagFileApplicability" value="(file, directory)" />
<property key="flag" value="..." />
方括号表示可能存在的值,例如
<property key="postProcessingMode" value="script" />
有效且
<property key="postProcessingMode" value="123" />
无效
答案 0 :(得分:0)
对于像这样的任何一种“交叉验证”,您需要XSD 1.1,它提供了两种实现方法:断言和条件类型归因。 XSD 1.1在Altova,Saxon和Xerces中实现,但是许多较旧的架构处理器(例如Microsoft的架构处理器)均未提供。