使用XSD强制XML模仿单选按钮行为

时间:2014-08-25 17:07:28

标签: xml xsd xsd-validation

我的应用程序在表单上的组中有6个单选按钮。可以将此表单上的设置导出为XML并重新导入。在开始重新导入会话之前,我想使用XSD验证XML文件,以确保如果用户编辑了XML,他就做对了。我计划尽可能使用XSD。

由于GUI上的单选按钮必须只有一个buutton,并且只选择了一个按钮,我想使用XSD模仿这种行为。如果在XML中有多个选项设置为True或者没有选项,我想收到XSD架构错误。

是否可以使用XSD实现此目的,还是需要在应用程序中对此类验证进行编码?

1 个答案:

答案 0 :(得分:2)

枚举自然反映了单选按钮的独有性质,并且可以在XSD 1.0和1.1中使用:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="RadioButton">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:enumeration value="v1"/>
        <xsd:enumeration value="v2"/>
        <xsd:enumeration value="v3"/>
        <xsd:enumeration value="v4"/>
        <xsd:enumeration value="v5"/>
        <xsd:enumeration value="v6"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
</xsd:schema>