2

私は、特に曜日のセットがあるクラスを表現しようとしています。たとえば、空の場合、月曜日、水曜日、木曜日の場合、または7日すべての場合があります。明らかに、同じ日を2回以上許可するべきではありません。また、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>
4

1 に答える 1

1

すべてのノードが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>
于 2011-08-17T11:25:33.687 に答える