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类型的正确方法吗Enum
  2. 如何在不使用的情况下验证 XML 元素xs:assert

    如果TCodea那么TValue1

    如果TCodeb那么TValue2

XML 将是,

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

有任何想法吗?

4

1 回答 1

-1

我认为使用标准 xsd 函数是不可能的。但是,如果 TCode 和 TValue 具有固定的 1 对 1 关系,您不应该最好只问这两者之一吗?这将使创建无效状态成为不可能。

例子:

<xs:complexType name="Test">
 <xs:choise>
  <xs:element name="TCode" type="TestCode" minOccurs="1" maxOccurs="1" />
  <xs:element name="TValue" type="TestValue" minOccurs="1" maxOccurs="1" />
 </xs:choise>
</xs:complexType> 
于 2015-07-01T15:33:22.733 回答