星期几XSD枚举

时间:2011-08-17 11:12:37

标签: xml xsd dayofweek

我试图代表一个班级,其中包括一周中的一些日子 - 例如,它可能是空的,可能是周一,周三和周四,也可能是七天。显然它不应该允许同一天不止一次。我也尝试使用xsd.exe或其他工具从XSD生成类。

我不是问哪种方法最好,而是询问如何以任何合理的方式完成这项工作。例如,我不介意该类是否具有一周中每天的布尔值,或者是否限制为枚举中的值的散列集。目标语言是C#/。NET3.5。

麻烦的是,我对如何用XSD格式表示这个问题一无所知!这是我到目前为止所得到的:

<xs:simpleType name="daysOfWeek">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Monday"/>
        <xs:enumeration value="Tuesday"/>
        <xs:enumeration value="Wednesday"/>
        <xs:enumeration value="Thursday"/>
        <xs:enumeration value="Friday"/>
        <xs:enumeration value="Saturday"/>
        <xs:enumeration value="Sunday"/>
    </xs:restriction>
</xs:simpleType>

<xs:complexType name="runDays">
    <!-- Set of days of the week goes here -->
</xs:complexType>

1 个答案:

答案 0 :(得分:1)

您可以定义一个具有特定子节点列表的节点,其中每个节点只能发生一次,但可以省略。

<xs:complexType>
    <xs:sequence>
        <xs:element name="Monday"
                    minOccurs="0"
                    maxOccurs="1">
          <xs:complexType>
          </xs:complexType>
        </xs:element>
        <xs:element name="Tuesday"
                    minOccurs="0"
                    maxOccurs="1">
          <xs:complexType>
          </xs:complexType>
        </xs:element>

<!-- etc. ... -->

    </xs:sequence>
</xs:complexType>