适用于枚举类型的适当XSD

时间:2015-07-01 13:58:58

标签: c# xml xsd xsd-validation xsd-1.0

我有一个类似的枚举类,

public enum Test
{
    a = 1,
    b = 2
}

我正在为这些创建xsd,如下所示

<xs:complexType name="Test">
<xs:all>
    <xs:element name="TCode" type="TestCode" minOccurs="1" maxOccurs="1" />
    <xs:element name="TValue" type="TestValue" minOccurs="1" maxOccurs="1" />
</xs:all>
</xs:complexType>    

<xs:simpleType name="TestCode">
    <xs:restriction base="xs:string">
        <xs:enumeration value="a" />
        <xs:enumeration value="b" />
    </xs:restriction>
</xs:simpleType>

<xs:simpleType name="TestValue">
    <xs:restriction base="xs:string">
        <xs:enumeration value="1" />
        <xs:enumeration value="2" />
    </xs:restriction>
</xs:simpleType>
  1. 这是为xsd class
  2. 创建Enum类型的正确方法吗?
  3. 如何在不使用xs:assert的情况下验证XML元素?

    如果TCodea,则TValue1

    如果TCodeb,则TValue2

  4. XML将是,

    <Test>
       <TCode>a</TCode>
       <TValue>1</TValue>
    </Test>
    

    任何想法?

1 个答案:

答案 0 :(得分:-1)

我不认为使用标准xsd函数是可行的。 但如果TCode和TValue有一个固定的1比1的关系,你不应该更好地问这两个中的一个吗?这将导致无法创建无效状态。

示例:

         $.ajax({
            type: "POST",
            async: false,
            url: "app_processor.php",
            data: {action: "updateCriteriaParameter", criteriaid: criteriaid},
            success: function (msg) {
                //alert(msg);
                if (msg !== 0) {
                    $(".dialogDiv").html(msg);
                    $(".dialogDiv").find('#functionSelect').change(function () {
                        var functionSelect = $(this).val();
                        $('#selectPThrehold').attr('disabled', 'disabled');
                    });
                }
            }
        });