День недели XSD enum - PullRequest
       11

День недели XSD enum

2 голосов
/ 17 августа 2011

Я пытаюсь представить класс, который, помимо прочего, имеет набор дней недели - например, он может быть пустым, это может быть понедельник, среда и четверг, или может быть все семь дней , Очевидно, он не должен позволять один и тот же день более одного раза. Я также пытаюсь сгенерировать классы из XSD, используя xsd.exe или другой инструмент.

Я спрашиваю не о том, какой метод лучше, а о том, как этого добиться любым разумным способом. Например, я не возражаю против того, имеет ли класс логическое значение для каждого дня недели, или набор хэшей, ограниченный значениями в перечислении. Целевой язык - 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 Ответ

1 голос
/ 17 августа 2011

Вы можете определить узел, у которого есть определенный список дочерних узлов, где каждый узел может встречаться только один раз, но может быть пропущен.

<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>
...