星期几 XSD 枚举

发布于 2024-11-30 04:09:29 字数 880 浏览 1 评论 0原文

我试图代表一个类,除其他外,它具有一周中的一组天 - 例如,它可能是空的,可能是星期一、星期三和星期四,或者可能是全部 7 天。显然,同一天不应允许多次。我还尝试使用 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>

I'm trying to represent a class that, amongst other things, has a set of days of the week - for example, it could be empty, it could be Monday, Wednesday, and Thursday, or could be all seven days. Obviously it shouldn't allow the same day more than once. I'm also trying to generate the classes from an XSD using xsd.exe or another tool.

I'm not asking which method is best, but for answers on how to accomplish this in any sensible way. For example, I don't mind whether the class has a Boolean for each day of the week, or a hash set limited to the values in an enum. The target language is C#/.NET3.5.

Trouble is, I've got a mind blank on how to represent this in XSD format! Here's what I've got so far:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

擦肩而过的背影 2024-12-07 04:09:29

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

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

You could define a node that has a specific list of child nodes where every node can only occure once but can be ommitted.

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文