Appendix A. The Event Model

UML Representation of the Event Model

Figure Appendix A.1. Events.xsd UML Model

Events.xsd UML Model

The Events Schema

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:cde.berkeley.edu:babl:events:0.01" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:ev="urn:cde.berkeley.edu:babl:events:0.01" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:babll="urn:berkeley:sims:doc-eng:names:babl:CoreComponents:CommonComponentTypes:0.01" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0">
	<xs:import namespace="urn:berkeley:sims:doc-eng:names:babl:CoreComponents:CommonComponentTypes:0.01" schemaLocation="http://dream.berkeley.edu/doc-eng/xml/xsd/babl/schemas/babl_0p02/CoreComponents/CommonComponentTypes2.xsd"/>
	<xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0" schemaLocation="http://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/common/UBL-CommonAggregateComponents-1.0.xsd"/>
	<xs:annotation>
		<xs:documentation>University of California, Berkeley</xs:documentation>
		<xs:documentation>e-Berkeley Program Office</xs:documentation>
		<xs:documentation>UC Berkeley Calendar Network</xs:documentation>
		<xs:documentation>Allison Bloodworth</xs:documentation>
		<xs:documentation>This document incorporates UC Berkeley Calendar Event modeling work done by Allison Bloodworth, Sara Leavitt, Lawrence Hall of Science, Kathleen Connors, Lawrence Hall of Science, Jeff McCullough, CalAgenda, Sarah Jones, CalAgenda and Mimi Mugler, Cal Agenda during 2003-2004.</xs:documentation>
		<xs:documentation>This file contains a W3C XML schema definition for a group of calendar Events. The model was created based on a study of events in web-based university event calendars.</xs:documentation>
		<xs:documentation>This is a "Garden of Eden" style schema where all the elements and types are global to allow for redefines and substitution groups. Redefines are useful for creating enumerated types for elements, and substitution groups are useful for creating an element that can substitute for another one. For instance, a "Performance Event" might have different elements and constraints, but using a substitution group it can be substituted for a generic Event. Almost all top-level elements directly under Event are optional and unbounded to allow for maximum reusability of the schema. Exceptions to this rule include EventID, EventTitle, and DateTime as we consider these to be the "Core" of an Event, which all events should contain. Most other elements are also optional, and many are unbounded. However, at least one element is required if a container for it exists, although the container itself is optional (e.g. a Sponsor within the Sponsors elements) and all boolean elements can occur between 0-1 times (meaning they can't be unbounded). Additionally, elements that describe their parent element for which there should clearly only be one are not unbounded.</xs:documentation>
		<xs:documentation>We suggest that users of this schema either use redefines, substitution groups, or restrictions to represent any additional business rules required in their particular situation. Additionally, this schema uses xs:anyType, the universal type which accepts any content model, to allow users to define any additional elements which may be required.</xs:documentation>
	</xs:annotation>
	<!-- Event CORE: EventTitle, EventID, DateTime -->
	<!-- Event DESCRIPTORS: EventSubtitle, EventType, Description, WebPage, Image, Location -->
	<!-- Event PARTIES:  Audiences, Participants, Sponsors-->
	<!-- Event ADMISSION INFO: AdmissionCharge, TicketInfo, ReservationInfo, AttendanceRestrictions, SoldOut-->
	<!-- Event ADMINISTRATIVE: PublicEventContact, EventListingContact, Status, Classification, ChangeManagement-->
	<!-- Event MARKETING: RelatedEvents, SpotlightThisEvent, Comments, Keywords, Refreshments -->
	<!-- ######################################## -->
	<!-- GLOBAL ELEMENTS -->
	<!-- ######################################## -->
	<xs:element name="Events" type="ev:EventsType"/>
	<xs:element name="Event" type="ev:EventType">
		<xs:annotation>
			<xs:documentation>Something that takes place; an occurrence.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Address" type="cac:AddressType"/>
	<xs:element name="AdmissionCharge" type="ev:AdmissionChargeType"/>
	<xs:element name="AdmissionInfo" type="ev:AdmissionInfoType"/>
	<xs:element name="AdditionalPublicInfo" type="ev:AdditionalPublicInfoType"/>
	<xs:element name="AgeRestriction" type="ev:AgeRestrictionType"/>
	<xs:element name="AttendanceRestrictions" type="ev:AttendanceRestrictionsType"/>
	<xs:element name="Audiences" type="ev:AudiencesType"/>
	<xs:element name="BuildingName" type="ev:BuildingNameType"/>
	<xs:element name="ByDayOfWeek" type="ev:ByDayOfWeekType"/>
	<xs:element name="ByHour" type="ev:ByHourType"/>
	<xs:element name="ByMinute" type="ev:ByMinuteType"/>
	<xs:element name="ByMonth" type="ev:ByMonthType"/>
	<xs:element name="ByMonthDay" type="ev:ByMonthDayType"/>
	<xs:element name="BySetPosition" type="ev:BySetPositionType"/>
	<xs:element name="ByWeekNo" type="ev:ByWeekNoType"/>
	<xs:element name="ByYearDay" type="ev:ByYearDayType"/>
	<xs:element name="CellPhoneNumber" type="ev:PhoneNumberType"/>
	<xs:element name="ChangeManagement" type="ev:ChangeManagementType"/>
	<xs:element name="Comments" type="ev:CommentsType"/>
	<xs:element name="Comment" type="ev:CommentType"/>
	<xs:element name="ContactInfo" type="ev:ContactInfoType"/>
	<xs:element name="Cost" type="ev:CostType"/>
	<xs:element name="Count" type="ev:CountType"/>
	<xs:element name="Date" type="ev:DateType"/>
	<xs:element name="DateCreated" type="ev:DateCreatedType"/>
	<xs:element name="DateModified" type="ev:DateModifiedType"/>
	<xs:element name="DatesModified" type="ev:DatesModifiedType"/>
	<xs:element name="DateTime" type="ev:DateTimeType"/>
	<xs:element name="DayInterval" type="ev:DayIntervalType"/>
	<xs:element name="DayOfWeekPosition" type="ev:DayOfWeekPositionType"/>
	<xs:element name="Description" type="ev:DescriptionType"/>
	<xs:element name="DistinctDate" type="ev:DistinctDateType"/>
	<xs:element name="DistinctDates" type="ev:DistinctDatesType"/>
	<xs:element name="EmailAddress" type="ev:EmailAddressType"/>
	<xs:element name="EndDate" type="ev:EndDateType"/>
	<xs:element name="EndTime" type="ev:EndTimeType"/>
	<xs:element name="EventContact" type="ev:EventContactType"/>
	<xs:element name="EventID" type="ev:EventIDType"/>
	<xs:element name="EventListingContacts" type="ev:EventContactsType"/>
	<xs:element name="EventSubtitle" type="ev:EventSubtitleType"/>
	<xs:element name="EventTitle" type="ev:EventTitleType"/>
	<xs:element name="EventTypes" type="ev:EventTypesType"/>
	<xs:element name="ExceptionDates" type="ev:DateTimeType"/>
	<xs:element name="ExceptionRules" type="ev:RecurrenceRulesType"/>
	<xs:element name="Extension" type="ev:ExtensionType"/>
	<xs:element name="FaxPhoneNumber" type="ev:PhoneNumberType"/>
	<xs:element name="Free" type="ev:FreeType"/>
	<xs:element name="HomePhoneNumber" type="ev:PhoneNumberType"/>
	<xs:element name="Image" type="ev:ImageType"/>
	<xs:element name="Images" type="ev:ImagesType"/>
	<xs:element name="Interval" type="ev:IntervalType"/>
	<xs:element name="Keyword" type="ev:KeywordType"/>
	<xs:element name="Keywords" type="ev:KeywordsType"/>
	<xs:element name="LastModified" type="ev:LastModifiedType"/>
	<xs:element name="Location" type="ev:LocationType"/>
	<xs:element name="LocationName" type="ev:LocationNameType"/>
	<xs:element name="Locations" type="ev:LocationsType"/>
	<xs:element name="LocationType" type="ev:LocationTypeType"/>
	<xs:element name="Logo" type="ev:ImageType"/>
	<xs:element name="MemberRestriction" type="ev:MemberRestrictionType"/>
	<xs:element name="Name" type="ev:NameType"/>
	<xs:element name="Number" type="ev:NumberType"/>
	<xs:element name="OrganizationalRestriction" type="ev:OrganizationalRestrictionType"/>
	<xs:element name="OrganizationName" type="ev:OrganizationNameType"/>
	<xs:element name="OtherAudience" type="ev:OtherAudienceType"/>
	<xs:element name="OtherPhoneNumber" type="ev:PhoneNumberType"/>
	<xs:element name="OtherRestriction" type="ev:OtherRestrictionType"/>
	<xs:element name="Participant" type="ev:ParticipantType"/>
	<xs:element name="Participants" type="ev:ParticipantsType"/>
	<xs:element name="Period" type="ev:PeriodType"/>
	<xs:element name="Periods" type="ev:PeriodsType"/>
	<xs:element name="PersonalName" type="babll:PersonalNameType"/>
	<xs:element name="PhoneExtension" type="ev:PhoneExtensionType"/>
	<xs:element name="ProfessionalAffiliation" type="ev:ProfessionalAffiliationType"/>
	<xs:element name="PublicEventContacts" type="ev:EventContactsType"/>
	<xs:element name="Refreshments" type="ev:RefreshmentsType"/>
	<xs:element name="RelatedEvent" type="ev:RelatedEventType"/>
	<xs:element name="RelatedEvents" type="ev:RelatedEventsType"/>
	<xs:element name="RelationType" type="ev:RelationType"/>
	<xs:element name="RepetitionDates" type="ev:DateTimeType"/>
	<xs:element name="RepetitionRules" type="ev:RecurrenceRulesType"/>
	<xs:element name="ReservationContactInfo" type="ev:ContactInfoType"/>
	<xs:element name="ReservationInfo" type="ev:ReservationInfoType"/>
	<xs:element name="Room" type="ev:RoomType"/>
	<xs:element name="Rule" type="ev:RecurrenceRuleType"/>
	<xs:element name="SecondaryEventTypes" type="ev:SecondaryEventTypesType"/>
	<xs:element name="SequenceNo" type="ev:SequenceNoType"/>
	<xs:element name="SoldOut" type="ev:SoldOutType"/>
	<xs:element name="Sponsor" type="ev:SponsorType"/>
	<xs:element name="Sponsors" type="ev:SponsorsType"/>
	<xs:element name="SpotlightThisEvent" type="ev:SpotlightThisEventType"/>
	<xs:element name="StartDate" type="ev:StartDateType"/>
	<xs:element name="StartTime" type="ev:StartTimeType"/>
	<xs:element name="TicketContactInfo" type="ev:ContactInfoType"/>
	<xs:element name="TicketInfo" type="ev:TicketInfoType"/>
	<xs:element name="TicketRequired" type="ev:TicketsRequiredType"/>
	<xs:element name="TicketsOnSaleDate" type="ev:TicketsOnSaleDateType"/>
	<xs:element name="Time" type="ev:TimeType"/>
	<xs:element name="TimeDuration" type="ev:TimeDurationType"/>
	<xs:element name="Title" type="ev:TitleType"/>
	<xs:element name="URL" type="ev:URLType"/>
	<xs:element name="WebPage" type="ev:WebPageType"/>
	<xs:element name="WebPages" type="ev:WebPagesType"/>
	<xs:element name="WorkPhoneNumber" type="ev:PhoneNumberType"/>
	<!-- ######################################## -->
	<!-- GLOBAL ELEMENTS which will often have enumerated lists -->
	<!-- ######################################## -->
	<xs:element name="Audience" type="ev:AudienceType"/>
	<xs:element name="BySeason" type="ev:BySeasonType"/>
	<xs:element name="Class" type="ev:ClassType"/>
	<xs:element name="Classification" type="ev:ClassificationType"/>
	<xs:element name="DayOfWeek" type="ev:DayOfWeekType"/>
	<xs:element name="EventType" type="ev:EventTypeType"/>
	<xs:element name="Frequency" type="ev:FrequencyType"/>
	<xs:element name="Level" type="ev:LevelType"/>
	<xs:element name="ParticipantRole" type="ev:ParticipantRoleType"/>
	<xs:element name="PreferredContactMethod" type="ev:PreferredContactMethodType"/>
	<xs:element name="ReservationNeeded" type="ev:ReservationsNeededType"/>
	<xs:element name="RoleRestriction" type="ev:RoleRestrictionType"/>
	<xs:element name="SecondaryEventType" type="ev:SecondaryEventTypeType"/>
	<xs:element name="Status" type="ev:StatusType"/>
	<xs:element name="WeekStart" type="ev:DayOfWeekType"/>
	<!-- ######################################## -->
	<!-- SIMPLE TYPES declared globally are often redefined to have enumerated lists-->
	<!-- ######################################## -->
	<xs:simpleType name="AudienceType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="BySeasonType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="ClassType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="ClassificationType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="DayOfWeekType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="EventTypeType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="FrequencyType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="LevelType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="ParticipantRoleType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="PreferredContactMethodType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="ReservationsNeededType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="RoleRestrictionType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="SecondaryEventTypeType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="StatusType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<!-- ######################################## -->
	<!-- Other SIMPLE TYPES declared globally -->
	<!-- ######################################## -->
	<xs:simpleType name="AdditionalPublicInfoType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="AgeRestrictionType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="BuildingNameType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="CommentType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="CostType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="CountType">
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	<xs:simpleType name="DateCreatedType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="DateModifiedType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="DateType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="DayIntervalType">
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	<xs:simpleType name="DescriptionType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="EmailAddressType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="EndDateType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="EndTimeType">
		<xs:restriction base="xs:time"/>
	</xs:simpleType>
	<xs:simpleType name="EventIDType">
		<xs:restriction base="xs:ID"/>
	</xs:simpleType>
	<xs:simpleType name="EventSubtitleType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="EventTitleType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="PhoneExtensionType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="FreeType">
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="IntervalType">
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	<xs:simpleType name="KeywordType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="LastModifiedType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="LocationNameType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="LocationTypeType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="MemberRestrictionType">
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="NumberType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="OrganizationalRestrictionType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="OrganizationNameType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="OtherAudienceType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="OtherRestrictionType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="RefreshmentsType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="RelationType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="RoomType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="SequenceNoType">
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	<xs:simpleType name="SoldOutType">
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="SpotlightThisEventType">
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="StartDateType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="StartTimeType">
		<xs:restriction base="xs:time"/>
	</xs:simpleType>
	<xs:simpleType name="TicketsOnSaleDateType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="TicketsRequiredType">
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="TimeDurationType">
		<xs:restriction base="xs:duration"/>
	</xs:simpleType>
	<xs:simpleType name="TitleType">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="URLType">
		<xs:restriction base="xs:anyURI"/>
	</xs:simpleType>
	<!-- ######################################## -->
	<!-- GLOBAL COMPLEX TYPES -->
	<!-- ######################################## -->
	<xs:complexType name="EventsType">
		<xs:sequence>
			<xs:element ref="ev:Event" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- BEGIN EVENT TYPE ############################## -->
	<xs:complexType name="EventType">
		<xs:sequence>
			<xs:element ref="ev:EventTitle">
				<xs:annotation>
					<xs:documentation>The primary title of an Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:EventSubtitle" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Any additional or secondary information that is part of the title of an Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:EventID">
				<xs:annotation>
					<xs:documentation>The unique identifier of an event. xs:ID elements must not begin with a number. If events come from multiple sources, it is recommended that the beginning of the Event ID be a code that indicates the source of the event (e.g. UCBSIMS for University of California School of Information Management and Systems).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:EventTypes" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A categorization or categorizations of the event (e.g. Lecture, Seminar, Performance, etc.).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:SecondaryEventTypes" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A secondary level of categorization or categorizations of the event (e.g. Lecture, Seminar, Performance, etc.). This is a supplement to the standard event type.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Description" minOccurs="0">
				<xs:annotation>
					<xs:documentation>An overall description of the Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:WebPages" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A webpage or webpages dedicated to the Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Images" minOccurs="0">
				<xs:annotation>
					<xs:documentation>An image or images associated with the Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Audiences" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Groups for whom the Event is intended.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Participants" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Entities who are actually participating in the event. (e.g. Speaker, Lecturer, Discussant, Performer, Dancer, etc.)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Sponsors" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Entities who are putting on the event, sponsoring the event financially, or are otherwise known as an organizer or supporter of the Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:AdmissionInfo" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Information on tickets, reservations, and attendance restrictions.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Refreshments" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Information on refreshments, food, or meals that will be served at the Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:PublicEventContacts" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A person or list of persons for the public to contact with questions about the Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:EventListingContacts" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A person or list of persons for calendar administrators to contact with questions about an Event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Status" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates whether or not the Event is definitely scheduled to take place. This is a term used by iCalendar (RFC 2445) and could include statuses such as tentative, confirmed, and canceled.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Classification" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates how and whether the Event with be shared with other calendars or users. This is a term used by iCalendar (RFC 2445) and could include classifications such as public, private, and confidential.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ChangeManagement" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates when and by whom the Event was entered, and when and by whom the Event was modified.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:RelatedEvents" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Other events which bear some relation to the Event. This could be a parent-child-sibling relationship, or an indicator re: another event that may also be of interest to people attending the Event. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:SpotlightThisEvent" minOccurs="0">
				<xs:annotation>
					<xs:documentation>An indicator that the Event is special and should be highlighted in calendars. A marketing tool.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Comments" minOccurs="0">
				<xs:annotation>
					<xs:documentation>An open-ended comments field that is not displayed on any public website, but may be seen by calendar administrators or people who can edit the event. This may be used along with SpotlightThisEvent or when events are recommended to explain to calendar administrators why they should publish or spotlight the event on their website. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Keywords" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Specialized terms describing an Event that may be used to help users searching for events find events of interest to them.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Locations" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The place the event occurs.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:DateTime">
				<xs:annotation>
					<xs:documentation>The day and time an Event occurs. Includes information on repetition.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Extension" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This element is used so that elements may be added via in the same namespace via xs:any while retaining the extensibility point and without violating the unique particle attribution rule.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>This element may be used to add an element not otherwise covered in this schema which is in a different namespace.</xs:documentation>
				</xs:annotation>
			</xs:any>
		</xs:sequence>
		<xs:anyAttribute processContents="lax">
				<xs:annotation>
					<xs:documentation>This element may be used to add an attribute not otherwise covered in this schema. It may be in the target or other namespace because the problems with xs:any elements in the same namespace don't occur with xs:anyAttribute.</xs:documentation>
				</xs:annotation>		
		</xs:anyAttribute>
	</xs:complexType>
	<!-- END EVENT TYPE ############################## -->	<xs:complexType name="EventTypesType">
		<xs:sequence>
			<xs:element ref="ev:EventType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SecondaryEventTypesType">
		<xs:sequence>
			<xs:element ref="ev:SecondaryEventType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="WebPagesType">
		<xs:sequence>
			<xs:element ref="ev:WebPage" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="WebPageType">
		<xs:sequence>
			<xs:element ref="ev:Title" minOccurs="0"/>
			<xs:element ref="ev:URL" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ImagesType">
		<xs:sequence>
			<xs:element ref="ev:Image" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ImageType">
		<xs:sequence>
			<xs:element ref="ev:Title" minOccurs="0"/>
			<xs:element ref="ev:URL" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType> 
	<!-- ############################## -->
	<xs:complexType name="NameType">
		<xs:sequence>
			<xs:choice>
				<xs:element ref="ev:PersonalName"/>
				<xs:element ref="ev:OrganizationName"/>
				<xs:element ref="ev:LocationName"/>
			</xs:choice>
			<xs:element ref="ev:Description" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ContactInfoType">
		<xs:sequence>
			<xs:element ref="ev:HomePhoneNumber" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:CellPhoneNumber" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:WorkPhoneNumber" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:FaxPhoneNumber" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:OtherPhoneNumber" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:EmailAddress" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:PreferredContactMethod" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:Address" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:WebPage" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PhoneNumberType">
		<xs:sequence>
			<xs:element ref="ev:Number"/>
			<xs:element ref="ev:PhoneExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ############################## -->
	<xs:complexType name="ExtensionType">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="1" maxOccurs="unbounded" namespace="##targetNamespace"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- Event PARTIES ############################## -->
	<xs:complexType name="AudiencesType">
		<xs:sequence>
			<xs:element ref="ev:Audience" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:OtherAudience" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>This element should allow open entry of an AudienceType that is not in the calendar's AudienceType enumerated list.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ParticipantsType">
		<xs:sequence>
			<xs:element ref="ev:Participant" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ParticipantType">
		<xs:sequence>
			<xs:element ref="ev:Name" minOccurs="0"/>
			<xs:element ref="ev:ContactInfo" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:Image" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>An image associated with the Participant.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ParticipantRole" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Indicates the method by which the Participant is participating in the Event (e.g. Speaker, Performer, etc.).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ProfessionalAffiliation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:WebPage" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:Description" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A description of the Participant. This may be a biography.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProfessionalAffiliationType">
		<xs:sequence>
			<xs:element ref="ev:Title" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:OrganizationName" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SponsorsType">
		<xs:sequence>
			<xs:element ref="ev:Sponsor" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SponsorType">
		<xs:sequence>
			<xs:element ref="ev:Name" minOccurs="0"/>
			<xs:element ref="ev:ContactInfo" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:Level" minOccurs="0">
				<xs:annotation>
					<xs:documentation>If there is a hierarchy of sponsors, indicates the Sponsor's level within that hierarchy (e.g. primary, secondary, etc.).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Class" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The category into which a Sponsor falls (e.g. local or corporate).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Logo" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:WebPage" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Event ADMISSION INFO ############################## -->
	<xs:complexType name="AdmissionInfoType">
		<xs:sequence>
			<xs:element ref="ev:AdmissionCharge" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:TicketInfo" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:ReservationInfo" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>In the context of University education, a reservation may be the same as enrollment (e.g. in a course). </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:AttendanceRestrictions" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:SoldOut" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AdmissionChargeType">
		<xs:choice>
			<xs:element ref="ev:Free" minOccurs="0"/>
			<xs:element ref="ev:Cost" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="TicketInfoType">
		<xs:sequence>
			<xs:element ref="ev:TicketRequired" minOccurs="0"/>
			<xs:element ref="ev:TicketContactInfo" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:TicketsOnSaleDate" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ReservationInfoType">
		<xs:sequence>
			<xs:element ref="ev:ReservationNeeded" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Indication that a reservation is required or recommended.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ReservationContactInfo" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AttendanceRestrictionsType">
		<xs:sequence>
			<xs:element ref="ev:AgeRestriction" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:RoleRestriction" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Indicates which roles (e.g. students, faculty, staff, alumni) may attend the event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:OrganizationalRestriction" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Indicates which departments or organizations may attend the event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:MemberRestriction" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Must the attendee be a member? (e.g. In the university environment, Student, Faculty, or Staff?)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:OtherRestriction" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Any other attendance restriction not covered by the categories above.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<!-- Event ADMINISTRATIVE ############################## -->
	<xs:complexType name="EventContactsType">
		<xs:sequence>
			<xs:element ref="ev:EventContact" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EventContactType">
		<xs:sequence>
			<xs:element ref="ev:Name" minOccurs="0"/>
			<xs:element ref="ev:ContactInfo" minOccurs="0"/>
			<xs:element ref="ev:Level" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ChangeManagementType">
		<xs:sequence>
			<xs:element ref="ev:DateCreated" minOccurs="0"/>
			<xs:element ref="ev:DatesModified" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:LastModified" minOccurs="0"/>
			<xs:element ref="ev:SequenceNo" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatesModifiedType">
		<xs:sequence>
			<xs:element ref="ev:DateModified" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Event MARKETING ############################## -->
	<xs:complexType name="RelatedEventsType">
		<xs:sequence>
			<xs:element ref="ev:RelatedEvent" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RelatedEventType">
		<xs:sequence>
			<xs:element ref="ev:EventID"/>
			<xs:element ref="ev:RelationType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CommentsType">
		<xs:sequence>
			<xs:element ref="ev:Comment" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="KeywordsType">
		<xs:sequence>
			<xs:element ref="ev:Keyword" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Event LOCATION ############################## -->
	<xs:complexType name="LocationsType">
		<xs:choice>
			<xs:element ref="ev:Location" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="LocationType">
		<xs:sequence>
			<xs:element ref="ev:LocationType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:Address" minOccurs="0"/>
			<xs:element ref="ev:WebPage" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:AdditionalPublicInfo" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Event CORE - DATETIME ############################## -->
	<xs:complexType name="DateTimeType">
		<xs:sequence>
			<xs:annotation>
				<xs:documentation>A Period should be used when an event runs across multiple days at the same time each date, and DistinctDates should be used when an event either occurs on one day or multiple days that are not part of a span. It can also be used for events that occur on dates that really are a span if they occur at different times each day (thus a span cannot be used). Both Periods and DistinctDates may be used if an event has a Period as well as additional days that are not part of the original or any other Period. Multiple Periods or multiple DistinctDates may be used. APPLICATION LOGIC should be used to make sure the dates of these multiple DistinctDates and Periods don't overlap.</xs:documentation>
				<xs:documentation>DateTimeType should have at least one DistinctDates/DistinctDate/Date or Periods/Period/StartDate or a (Periods, DistinctDates?)|(DistinctDates, Periods?) structure. However this must be enforced as a business rule, as it cannot be enforced in the schema because doing that would violate the Unique Particle Attribution rule.</xs:documentation>
			</xs:annotation>
			<xs:element ref="ev:DistinctDates" minOccurs="0"/>
			<xs:element ref="ev:Periods" minOccurs="0"/>
			<xs:element ref="ev:RepetitionDates" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Specific dates on which an event repeats. Usually used instead of a Repetition Rule when the repetition doesn't not follow a pattern. It may also include repetition dates calculated based on a Repetition Rule.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:RepetitionRules" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Rules defining when and how often an Event occurs or repeats (e.g. every Tuesday and Thursday).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ExceptionDates" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Specific dates the Event does not occur (e.g. a conference spanning two weeks may not occur over a weekend, or a repeating event may not occur during winter break). It may also include exception dates calculated based on an Exception Rule.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ExceptionRules" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Rules defining the exception dates when the event does not occur. Usually used to define exception dates with a period (e.g. the event occurs every Monday for the next 6 months, except the 1st Monday of the month.) </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DistinctDatesType">
		<xs:sequence>
			<xs:element ref="ev:DistinctDate" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DistinctDateType">
		<xs:sequence>
			<xs:element ref="ev:Date"/>
			<xs:element ref="ev:Time" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The time an event occurs. Making this unbounded allows for events with multiple times, such as movies.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PeriodsType">
		<xs:sequence>
			<xs:element ref="ev:Period" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PeriodType">
		<xs:sequence>
			<xs:element ref="ev:StartDate">
				<xs:annotation>
					<xs:documentation>First day of multiple day Events.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:EndDate" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Last day of multiple day Events. A business rule must be used to ensure that the user enters either an EndDate or a RepetitionRule-Count element.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Time" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The time an event occurs. The time belongs to the date span, and the time applies to every date in the span. Making this unbounded allows for events with multiple times, such as movies.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RecurrenceRulesType">
		<xs:sequence>
			<xs:element ref="ev:Rule" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RecurrenceRuleType">
		<xs:sequence>
			<xs:element ref="ev:Frequency">
				<xs:annotation>
					<xs:documentation>Indicates how frequently an event repeats (e.g. hourly, daily, weekly, monthly, yearly).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Interval" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates the number of units of frequency on which event repeats (e.g. every 2 hours, every 5 days, etc.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:Count" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates the number of times an event repeats (e.g. daily for 10 days). This element or end date is required for a repeating event.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByMinute" minOccurs="0" maxOccurs="60">
				<xs:annotation>
					<xs:documentation>Indicates the minute of the hour on which an event repeats (e.g. to repeat every 20 minutes for an hour, ByMinute would have values of 0, 20, and 40. ByHour would also need to be used to indicate which hour.) This element should be limited to values 0 through 59.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByHour" minOccurs="0" maxOccurs="24">
				<xs:annotation>
					<xs:documentation>Indicates the hour of the day, using a 24-hour clock, on which an event repeats (e.g. to repeat at 10am, 2pm, and 4pm, ByHour would equal 10, 14, and 16). This element should be limited to values 0  through 23.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByDayOfWeek" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates the day of the week on which an event repeats. It can also include a number to indicate, for example, "the third Monday" if the Frequency is set to something other than weekly. (e.g. to repeat every third Monday of the month, DayInterval would be "3," and DayOfWeek would be "Monday")</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByWeekNo" minOccurs="0" maxOccurs="106">
				<xs:annotation>
					<xs:documentation>Indicates the week of the year on which an event repeats (e.g. the 5th week of the year). Negative values may also be used to indicate how close the week is to the end of the year (e.g. "-1" means the last week of the year), and thus this element should be limited to values -53 through 53, not including 0. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByMonth" minOccurs="0" maxOccurs="12">
				<xs:annotation>
					<xs:documentation>Indicates the month of the year on which an event repeats (e.g. the 7th month of the year, July.). This should be limited to values 1-12.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByMonthDay" minOccurs="0" maxOccurs="62">
				<xs:annotation>
					<xs:documentation>Indicates the day of the month on which an event repeats (e.g. the 31st day of the month.).  Negative values may also be used to indicate how close the week is to the end of the month (e.g. "-1" means the last day of the specified month), and thus this element should be limited to values -31 through 31, not including 0.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:ByYearDay" minOccurs="0" maxOccurs="732">
				<xs:annotation>
					<xs:documentation>Indicates the day of the year on which an event repeats (e.g. the 1st and 200th days of the year. Negative values may also be used to indicate how close the day is to the end of the year (e.g. "-1" means the last day of the year), and thus this element should be limited to values -366 through 366, not including 0.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:BySetPosition" minOccurs="0" maxOccurs="732">
				<xs:annotation>
					<xs:documentation>Indicates the instance of the set of days on which the event will repeat. (E.g. if ByDayOfWeek is set to "Mon, Tues, Wed, Thurs, Fri", and you'd like the event to repeat for the next month every 2nd weekday, "BySetPostion" would be 2). Negative values may also be used to indicate how close the day is to the end of the set (e.g. "-1" means the last day of the set), and thus this element should be limited to values -366 through 366, not including 0.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:BySeason" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ev:WeekStart" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Defines which day of the week (e.g. Mon) on which a workweek starts. The default should be Monday. This is significant when a WEEKLY repetition rule has an interval greater than 1, and a BYDAYOFWEEK rule part is specified. This is also significant when in a YEARLY repetition rule when a BYWEEKNO rule part is specified. In this situation, WeekStart determines which week of the year is considered week 1, as week number one of the calendar year is the first week which contains at least four (4) days in that calendar year. </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ByDayOfWeekType">
		<xs:sequence>
			<xs:element ref="ev:DayOfWeekPosition" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DayOfWeekPositionType">
		<xs:sequence>
			<xs:element ref="ev:DayOfWeek"/>
			<xs:element ref="ev:DayInterval" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates that it is the nth day of the interval. For example, Monday and 1 indicates that it is the first Monday of the specified interval. Negative numbers can also be used to indicate that it is the last (-1), second to the last (-2), etc. day of the specified interval.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TimeType">
		<xs:sequence>
			<xs:element ref="ev:StartTime">
				<xs:annotation>
					<xs:documentation>Time the Event begins.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:EndTime" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Time the Event ends.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ev:TimeDuration" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Primitive type which allows durations to be represented using the ISO-8601 standard format PnYnMnDTnHnMnS where nY = number of years, nM = number of months, nD = number of days, nH = number of hours, nM = number of minutes and nS = number of seconds.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="ByMinuteType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="[0-5][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ByHourType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="[0-1][0-9]|[2][0-3]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ByWeekNoType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="-[1-9]|-[1-4][0-9]|-[5][0-3]|[1-9]|[1-4][0-9]|[5][0-3]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ByMonthType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="[1-9]|[1][0-2]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ByMonthDayType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="-[1-9]|-[1-2][0-9]|-[3][0-1]|[1-9]|[1-2][0-9]|[3][0-1]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ByYearDayType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="-[1-9]|-[0-2][1-9][0-9]|-[3][0-5][0-9]|-[3][6][0-6]|[1-9]|[0-2][1-9][0-9]|[3][0-5][0-9]|[3][6][0-6]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="BySetPositionType">
		<xs:restriction base="xs:integer">
			<xs:pattern value="-[1-9]|-[0-2][1-9][0-9]|-[3][0-5][0-9]|-[3][6][0-6]|[1-9]|[0-2][1-9][0-9]|[3][0-5][0-9]|[3][6][0-6]"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>

The Events Codelist

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:publicid:IDN+cde.com:babl:events:codes:0.01" xmlns:evc="urn:publicid:IDN+cde.com:babl:events:codes:0.01" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:annotation>
		<xsd:documentation>University of California, Berkeley</xsd:documentation>
		<xsd:documentation>School of Information Management and Systems</xsd:documentation>
		<xsd:documentation>UC Berkeley Calendar Network</xsd:documentation>
		<xsd:documentation>Final Master's Project</xsd:documentation>
		<xsd:documentation>Allison Bloodworth, Nadine Fiebrich, Zhanna Shamis, Myra Liu</xsd:documentation>
		<xsd:documentation>This document incorporates UC Berkeley Calendar Event modeling work done by Allison Bloodworth, Sara Leavitt, Lawrence Hall of Science, Kathleen Connors, Lawrence Hall of Science, Jeff McCullough, CalAgenda, Sarah Jones, CalAgenda and Mimi Mugler, Cal Agenda during the summer and fall of 2003.</xsd:documentation>
		<xsd:documentation>This file contains a codelist for Events.xsd. This is a preliminary list of some of the types used in the Berkeley Calendar Network Event model, but additional values still must be defined for most types below.</xsd:documentation>
	</xsd:annotation>
	<xsd:simpleType name="AudienceType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="students"/>
			<xsd:enumeration value="staff"/>
			<xsd:enumeration value="faculty"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ClassType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Local"/>
			<xsd:enumeration value="Corporate"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="codeListAgencyIdentifierType">
		<xsd:restriction base="xsd:token"/>
	</xsd:simpleType>
	<xsd:simpleType name="codeListIdentifierType">
		<xsd:restriction base="xsd:token"/>
	</xsd:simpleType>
	<xsd:simpleType name="codeListVersionIdentifier">
		<xsd:restriction base="xsd:token"/>
	</xsd:simpleType>
	<xsd:simpleType name="EventOccurrenceStatusType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="HappeningAsScheduled"/>
			<xsd:enumeration value="Cancelled"/>
			<xsd:enumeration value="Postponed"/>
			<xsd:enumeration value="Rescheduled"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="EventSharingStatusType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Public"/>
			<xsd:enumeration value="Private"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="EventTypeType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Conference/Symposium"/>
			<xsd:enumeration value="Course"/>
			<xsd:enumeration value="Exhibit"/>
			<xsd:enumeration value="Film"/>
			<xsd:enumeration value="Lecture"/>
			<xsd:enumeration value="Other"/>
			<xsd:enumeration value="Performing Arts"/>
			<xsd:enumeration value="Performing Arts-Dance"/>
			<xsd:enumeration value="Performing Arts-Music"/>
			<xsd:enumeration value="Performing Arts-Theater"/>
			<xsd:enumeration value="Seminar"/>
			<xsd:enumeration value="Sport"/>
			<xsd:enumeration value="Workshop"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="FrequencyType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Hourly"/>
			<xsd:enumeration value="Daily"/>
			<xsd:enumeration value="Weekly"/>
			<xsd:enumeration value="Monthly"/>
			<xsd:enumeration value="Yearly"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="languageCodeType">
		<xsd:restriction base="xsd:language"/>
	</xsd:simpleType>
	<xsd:simpleType name="LevelType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Primary"/>
			<xsd:enumeration value="Secondary"/>
			<xsd:enumeration value="Tertiary"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="PreferredContactMethodType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Address"/>
			<xsd:enumeration value="PhoneNumber"/>
			<xsd:enumeration value="EmailAddress"/>
			<xsd:enumeration value="FaxNumber"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ReservationType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="required"/>
			<xsd:enumeration value="recommended"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="RoleType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Speaker"/>
			<xsd:enumeration value="Discussant"/>
			<xsd:enumeration value="Conductor"/>
			<xsd:enumeration value="Singer"/>
			<xsd:enumeration value="Dancer"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="DayType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Monday"/>
			<xsd:enumeration value="Tuesday"/>
			<xsd:enumeration value="Wednesday"/>
			<xsd:enumeration value="Thursday"/>
			<xsd:enumeration value="Friday"/>
			<xsd:enumeration value="Saturday"/>
			<xsd:enumeration value="Sunday"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="BySeasonType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:enumeration value="Winter"/>
			<xsd:enumeration value="Spring"/>
			<xsd:enumeration value="Summer"/>
			<xsd:enumeration value="Fall"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="WeekStartType">
		<xsd:restriction base="xsd:normalizedString"/>
	</xsd:simpleType>
</xsd:schema>