验证未知的键和值

时间:2019-05-15 11:38:08

标签: xml xsd xsd-validation

在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" /> 

无效

1 个答案:

答案 0 :(得分:0)

对于像这样的任何一种“交叉验证”,您需要XSD 1.1,它提供了两种实现方法:断言和条件类型归因。 XSD 1.1在Altova,Saxon和Xerces中实现,但是许多较旧的架构处理器(例如Microsoft的架构处理器)均未提供。