

<!ELEMENT Calendar (Organization, TimePeriod, Events)> <!ELEMENT Organization (#PCDATA)> <!ELEMENT TimePeriod (#PCDATA)> <!ELEMENT Events (Event+)> <!ELEMENT Event (Title, Description?, Speaker?, DateTime, Location)> <!ATTLIST Event type (Lecture | Workshop) #IMPLIED> <!ELEMENT Title (#PCDATA)> <!ELEMENT Description (#PCDATA | Keyword)*> <!ELEMENT Keyword (#PCDATA)> <!ELEMENT Speaker (Name, Affiliation)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Affiliation (#PCDATA)> <!ELEMENT DateTime (#PCDATA)> <!ELEMENT Location (#PCDATA)>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Calendar">
<xs:complexType>
<xs:sequence>
<xs:element name="Organization" type="xs:string"/>
<xs:element name="TimePeriod" type="xs:string"/
<xs:element name="Events">
<xs:complexType>
<xs:sequence>
<xs:element name="Event" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" type="xs:string"/>
<xs:element name="Description" minOccurs="0">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" <MaxOccurs="unbounded">
<xs:element name="Keyword" type="xs:string"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Speaker" minOccurs="0">
...

