枚举和加号一起在 DTD 文件中?

Enumeration and Plus sign together in DTD file?

我有以下 .dtd 文件

<!ELEMENT TVSCHEDULE (CHANNEL+)>
    <!ELEMENT CHANNEL (BANNER,DAY+)>
    <!ELEMENT BANNER (#PCDATA)>

    <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
    <!ELEMENT HOLIDAY (#PCDATA)>
    <!ELEMENT DATE (#PCDATA)>

    <!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
    <!ELEMENT TIME (#PCDATA)>
    <!ELEMENT TITLE (#PCDATA)>
    <!ELEMENT DESCRIPTION (#PCDATA)>

    <!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
    <!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
    <!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
    <!ATTLIST TITLE RATING CDATA #IMPLIED>
    <!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>

这行我不太明白:

    <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>

对于元素DAY,它有DATEEnumeration+(HOLIDAYPROGRAMSLOT+),在下面的语句中,哪一个正确吗?

一个。 DAY 元素仅包含 DATE 和多个 HOLIDAY

乙。 DAY 元素仅包含 DATE 和多个 PROGRAMSLOT

C。 DAY 元素包含 DATE 和多个 HOLIDAY & PROGRAMSLOT

不明白为什么不能简化为

<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT)+)>

谢谢

我认为是C: 您必须有一个 DAY 后跟一个序列,其中序列中的每个项目都是 HOLIDAY 类型或 PROGRAMSLOT

序列

没看出 PROGRAMSLOT+ 的意义。有

<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT)+)>

您可以获得相同的灵活性。 我认为以下所有示例都是正确的:

DATE, HOLIDAY, HOLIDAY,HOLIDAY
DATE, PROGRAMSLOT, PROGRAMSLOT, PROGRAMSLOT
DATE, PROGRAMSLOT, HOLIDAY, HOLIDAY, PROGRAMSLOT
DATE, HOLIDAY, PROGRAMSLOT, HOLIDAY, PROGRAMSLOT

以下示例无效:

DATE, DATE // DATE can only occur once
DATE // the group of HOLIDAY OR PROGRAMLIST must occur at least once
HOLIDAY, DATE // DATE must be the first element