<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="xs3p.xsl"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://export.culturebase.org/schema/event/CultureBaseExport"
           xmlns:tns="http://export.culturebase.org/schema/event/CultureBaseExport" elementFormDefault="qualified">
   <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
   <xs:annotation>
      <xs:documentation>
       CultureBase Event Export.
      </xs:documentation>
   </xs:annotation>

   <xs:element name="CbExport">
      <xs:annotation>
            <xs:documentation>
             Describes the root element.
            </xs:documentation>
      </xs:annotation>
      <xs:complexType>
         <xs:sequence>
            <xs:element name="Productions" type="tns:ProductionsType" maxOccurs="1"/>
         </xs:sequence>
      </xs:complexType>
   </xs:element>

   <xs:element name="Productions" type="tns:ProductionsType">
        <xs:annotation>
               <xs:documentation>
                List of productions.
               </xs:documentation>
         </xs:annotation>
   </xs:element>

   <xs:complexType name="ProductionsType">
      <xs:annotation>
            <xs:documentation>
             Describes productions.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Production" type="tns:ProductionType" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="ProductionType">
       <xs:annotation>
            <xs:documentation>
             Describes a production.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="EventType" type="tns:CbEventTypeType" minOccurs="1" maxOccurs="1"/>
         <xs:element name="DateFrom" type="xs:date" minOccurs="0" maxOccurs="1"/>
         <xs:element name="DateTo" type="xs:date" minOccurs="0" maxOccurs="1"/>
         <xs:element name="ContentCategory" type="tns:CbCategoryType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="FormalCategory" type="tns:CbCategoryType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Title" type="tns:CbTitleType" minOccurs="1" maxOccurs="unbounded"/>
         <xs:element name="Venue" type="tns:CbGeoLocationType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="FreeTextVenue" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="City" type="tns:CbGeoLocationType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Url" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Keywords" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Organisation" type="tns:CbOrganisationType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Person" type="tns:CbPersonType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Picture" type="tns:CbPictureType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Sponsor" type="tns:CbSponsorType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Ticket" type="tns:CbTicketType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="Status" type="tns:CbStatusType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="Text" type="tns:CbTextType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Event" type="tns:CbEventType" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Id" type="xs:positiveInteger" use="required"/>
      <xs:attribute name="ForeignId" type="xs:positiveInteger" use="optional"/>
   </xs:complexType>

   <xs:complexType name="CbEventType">
         <xs:annotation>
               <xs:documentation>
                Describes an event of a production.
               </xs:documentation>
         </xs:annotation>
      <xs:sequence>
         <xs:element name="FlagStatus" type="tns:CbFlagStatusType" minOccurs="1" maxOccurs="1"/>
         <xs:element name="Date" type="xs:date" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   Date of the event.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="Duration" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   Duration of the event in seconds.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="Begin" type="xs:time" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   Starttime of the event.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="End" type="xs:time" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   Endtime of the event.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="ContentCategory" type="tns:CbCategoryType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="FormalCategory" type="tns:CbCategoryType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Title" type="tns:CbTitleType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Venue" type="tns:CbGeoLocationType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="FreeTextVenue" type="xs:string" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   Location of event as freetext value.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="City" type="tns:CbGeoLocationType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Url" type="xs:string" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   User defined link of the event.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="Keywords" type="xs:string" minOccurs="0" maxOccurs="1">
            <xs:annotation>
                  <xs:documentation>
                   Keywords of the event.
                  </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="Organisation" type="tns:CbOrganisationType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Person" type="tns:CbPersonType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Picture" type="tns:CbPictureType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="Sponsor" type="tns:CbSponsorType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="Ticket" type="tns:CbTicketType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="Status" type="tns:CbStatusType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="Text" type="tns:CbTextType" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Id" type="xs:positiveInteger" use="optional">
         <xs:annotation>
               <xs:documentation>
                Event id.
               </xs:documentation>
         </xs:annotation>
      </xs:attribute>
      <xs:attribute name="ForeignId" type="xs:positiveInteger" use="optional">
         <xs:annotation>
               <xs:documentation>
                Foreign event id.
               </xs:documentation>
         </xs:annotation>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="CbOrganisationType">
      <xs:annotation>
            <xs:documentation>
             Describes an involved person, also see CbPersonType.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="Category">
            <xs:complexType mixed="true">
               <xs:attribute name="Id" type="xs:positiveInteger" />
            </xs:complexType>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="Id" type="xs:nonNegativeInteger" use="optional"/>
      <xs:attribute name="IdCategory" type="xs:positiveInteger" use="optional"/>
      <xs:attribute name="Position" type="xs:nonNegativeInteger" use="optional"/>
      <xs:attribute name="ForeignId" type="xs:positiveInteger" use="optional"/>
   </xs:complexType>

   <xs:complexType name="CbPersonType">
      <xs:annotation>
            <xs:documentation>
             Describes features of a person.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="Category" minOccurs="0" maxOccurs="1">
            <xs:complexType mixed="true">
               <xs:attribute name="Id" type="xs:positiveInteger" />
            </xs:complexType>
         </xs:element>
         <xs:element name="RoleDescription" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType mixed="true">
               <xs:attribute name="IdLanguage" type="xs:positiveInteger" default="1" />
               <xs:attribute name="Language" type="xs:string" default="de" />
            </xs:complexType>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="IdCategory" type="xs:nonNegativeInteger" use="optional"/>
      <xs:attribute name="Position" type="xs:nonNegativeInteger" use="optional"/>
   </xs:complexType>

   <xs:complexType name="CbPictureType">
      <xs:annotation>
            <xs:documentation>
             Describes features of a picture.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Url" type="xs:string" />
         <xs:element name="Photographer" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="Copyright" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="Title" type="tns:CbTitleType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="SubTitle" type="tns:CbTitleType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="Description" type="tns:CbTitleType" minOccurs="0" maxOccurs="unbounded" />
         <xs:element name="PublishType" type="tns:CbPublishType" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:positiveInteger" use="required"/>
      <xs:attribute name="Position" type="xs:nonNegativeInteger" use="optional"/>
      <xs:attribute name="ForeignId" type="xs:positiveInteger" use="optional"/>
   </xs:complexType>

   <xs:complexType name="CbObjectType" mixed="true">
      <xs:annotation>
            <xs:documentation>
             Base for object which may have an culturebase id and a foreign id.
            </xs:documentation>
      </xs:annotation>
      <xs:attribute name="Id" type="xs:positiveInteger" use="optional"/>
      <xs:attribute name="ForeignId" type="xs:positiveInteger" use="optional"/>
   </xs:complexType>

   <xs:complexType name="CbNamedObjectType">
      <xs:complexContent mixed="true">
         <xs:restriction base="tns:CbObjectType">
            <xs:choice minOccurs="0" maxOccurs="0"/>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="CbGeoLocationType">
      <xs:annotation>
            <xs:documentation>
             Describes a city or location.
            </xs:documentation>
      </xs:annotation>
      <xs:complexContent mixed="true">
         <xs:extension base="tns:CbObjectType">
            <xs:sequence>
               <xs:element name="Name" type="xs:string" />
               <xs:element name="Latitude" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="Longitude" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="Street" type="xs:string" maxOccurs="1" minOccurs="0"/>
               <xs:element name="StreetNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="ZipCode" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="City" type="xs:string" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="CbTextType">
       <xs:annotation>
            <xs:documentation>
             Describes features of a text.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Value">
            <xs:complexType mixed="true">
               <xs:choice minOccurs="0" maxOccurs="0" />
               <xs:attribute name="IdLanguage" type="xs:positiveInteger" default="1" />
               <xs:attribute name="Language" type="xs:string" default="de" />
            </xs:complexType>
         </xs:element>
         <xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="Copyright" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="Category">
            <xs:complexType mixed="true">
               <xs:choice minOccurs="0" maxOccurs="0" />
               <xs:attribute name="Id" type="xs:positiveInteger" />
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="CbEventTypeType">
      <xs:annotation>
            <xs:documentation>
             Describes the type of production.
            </xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="Id" type="xs:positiveInteger" />
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>

   <xs:complexType name="CbCategoryType">
      <xs:annotation>
            <xs:documentation>
             Describes the event category.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="CategoryName" type="xs:string" minOccurs="1" maxOccurs="1" />
         <xs:element name="CategoryId" type="xs:positiveInteger" minOccurs="1" maxOccurs="1" />
         <xs:element name="CategorySystem" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="CategorySystemId" type="xs:positiveInteger" minOccurs="0" maxOccurs="1" />
         <xs:element name="SubCategoryName" type="xs:string" minOccurs="0" maxOccurs="1" />
         <xs:element name="SubCategorySystemId" type="xs:positiveInteger" minOccurs="0" maxOccurs="1" />
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="CbFlagStatusType">
      <xs:annotation>
            <xs:documentation>
             Describes the status of an event.
            </xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="Id" type="xs:nonNegativeInteger" />
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>

   <xs:complexType name="CbSponsorType">
      <xs:annotation>
            <xs:documentation>
             Describes features of a sponsor.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Description" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType mixed="true">
               <xs:choice minOccurs="0" maxOccurs="unbounded" />
               <xs:attribute name="IdLanguage" type="xs:positiveInteger" />
               <xs:attribute name="Language" type="xs:string" />
            </xs:complexType>
         </xs:element>
         <xs:element name="Url" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="ImageUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Position" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="CbTitleType">
      <xs:annotation>
            <xs:documentation>
             Describes the title.
            </xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="IdLanguage" type="xs:positiveInteger" use="optional"/>
            <xs:attribute name="Language" type="xs:string" use="optional"/>
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>

   <xs:complexType name="CbPublishType">
      <xs:annotation>
            <xs:documentation>
             Describes the publication rights of a picture.
            </xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="IsPublished" type="xs:nonNegativeInteger" use="optional"/>
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>

   <xs:complexType name="CbTicketType">
      <xs:annotation>
            <xs:documentation>
             Describes the features of an event ticket.
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="TicketLink" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Price" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="SeatCategory" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="SeatCategoryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Currency" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Stock" type="xs:string" minOccurs="0" maxOccurs="1" />
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="CbStatusType">
      <xs:annotation>
            <xs:documentation>
             Describes the status features of an event or production, for example:
               Premiere, for the last time, ...
            </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
      <xs:attribute name="Id" type="xs:positiveInteger" />
   </xs:complexType>
</xs:schema>