<ConceptualSchema xmlns="urn:schemas-microsoft-com:isg\metaschemas\isg"
    xmlns:dt="urn:schemas-microsoft-com:datatypes"
    xmlns:ol="urn:schemas-microsoft-com:isg\schemas\outlook">

    <MetaData xml:lang="en-US">

        <IgnoreSchema>
            <!-- jonasbar 000903: The following two have been here "forever". -->
            <RelationType type="ol:HasClass"/>
            <RelationType type="ol:HasFolderPath"/> <!-- jonasbar 000903: What is this anyway? -->
            <!-- jonasbar 000903: These are silly. -->
            <RelationType type="ol:HasCompanyAndFullName"/>
            <RelationType type="ol:HasCompanyLastFirstNoSpace"/>
            <RelationType type="ol:HasCompanyLastFirstSpaceOnly"/>
            <RelationType type="ol:HasFullNameAndCompany"/>
            <RelationType type="ol:HasLastFirstAndSuffix"/>
            <RelationType type="ol:HasLastFirstNoSpace"/>
            <RelationType type="ol:HasLastFirstNoSpaceCompany"/>
            <RelationType type="ol:HasLastFirstSpaceOnly"/>
            <RelationType type="ol:HasLastFirstSpaceOnlyCompany"/>
            <RelationType type="ol:HasLastNameAndFirstName"/>
            <!-- jonasbar 000903: obsolete? -->
            <RelationType type="ol:HasUser1"/>
            <RelationType type="ol:HasUser2"/>
            <RelationType type="ol:HasUser3"/>
            <RelationType type="ol:HasUser4"/>
            <!-- jonasbar 000903: Not much use of these for now. -->
            <EntityType type="ol:AddressEntry"/>
            <RelationType type="ol:HasAddress"/>
            <RelationType type="ol:HasDisplayType"/>
            <EntityType type="ol:OlDisplayType"/>
            <RelationType type="ol:HasID"/>
            <RelationType type="ol:HasIndex"/>
            <RelationType type="ol:HasManager"/>
            <RelationType type="ol:HasMember"/>
            <RelationType type="ol:HasMemberCount"/>
            <EntityType type="ol:AddressList"/>
            <RelationType type="ol:HasAddressEntry"/>
            <RelationType type="ol:IsReadOnly"/>
            <RelationType type="ol:HasRecipient"/>
            <EntityType type="ol:Attachment"/>
            <RelationType type="ol:HasDisplayName"/>
            <RelationType type="ol:HasFileName"/>
            <RelationType type="ol:HasPathName"/>
            <EntityType type="ol:FileNameString"/>
            <RelationType type="ol:HasPosition"/>
            <EntityType type="ol:OlAttachmentType"/>
            <EntityType type="ol:DistListItem"/>
            <RelationType type="ol:HasDLName"/>
            <RelationType type="ol:HasSizeGreater"/>
            <RelationType type="ol:HasSizeLess"/>
            <RelationType type="ol:HasStoreID"/>
            <RelationType type="ol:DeleteAfterSubmit"/>
            <RelationType type="ol:HasEntryID"/>
            <RelationType type="ol:HasEmail1EntryID"/>
            <RelationType type="ol:HasEmail2EntryID"/>
            <RelationType type="ol:HasEmail3EntryID"/>
            <RelationType type="ol:HasReceivedByEntryID"/>
            <RelationType type="ol:HasReceivedOnBehalfOfEntryID"/>
            <EntityType type="ol:EntryID"/>
            <RelationType type="ol:HasDefaultMessageClass"/>
            <RelationType type="ol:HasMessageClass"/>
            <RelationType type="ol:HasRemoteMessageClass"/>
            <EntityType type="ol:MessageClass"/>
            <EntityType type="ol:OlEditorType"/>
            <EntityType type="ol:OlJournalRecipientType"/>
            <EntityType type="ol:OlMailRecipientType"/>
            <EntityType type="ol:OlMeetingRecipientType"/>
            <EntityType type="ol:OlObjectClass"/>
            <EntityType type="ol:OlOutlookBarViewType"/>
            <EntityType type="ol:OlTaskRecipientType"/>
            <EntityType type="ol:OlWindowState"/>
            <EntityType type="ol:OutlookObject"/>
            <EntityType type="ol:Page"/>
            <EntityType type="ol:Recipient"/>
            <RelationType type="ol:HasAutoResponse"/>
            <RelationType type="ol:HasEntryIDStr"/>
            <RelationType type="ol:HasRecipientAddress"/>
            <RelationType type="ol:HasMeetingResponseStatus"/>
            <EntityType type="ol:OlMeetingResponse"/>
            <RelationType type="ol:HasTrackingStatus"/>
            <EntityType type="ol:OlTrackingStatus"/>
            <RelationType type="ol:IsResolved"/>
            <EntityType type="ol:RemoteItem"/>
            <RelationType type="ol:HasHasAttachment"/>
            <RelationType type="ol:HasTransferSize"/>
            <RelationType type="ol:HasTransferTime"/>
            <EntityType type="ol:Situated"/>
            <RelationType type="ol:HasHeight"/>
            <RelationType type="ol:HasLeft"/>
            <RelationType type="ol:HasTop"/>
            <RelationType type="ol:HasWidth"/>
            <RelationType type="ol:HasConversationIndex"/>
            <!-- jonasbar 000903: RNL is not interested in the mq properties. -->
            <RelationType type="ol:HasMQName"/>
            <RelationType type="ol:mqApplicationName"/>
            <RelationType type="ol:mqAttrib"/>
            <RelationType type="ol:mqAuthor"/>
            <RelationType type="ol:mqCategory"/>
            <RelationType type="ol:mqComments"/>
            <RelationType type="ol:mqCompany"/>
            <RelationType type="ol:mqContents"/>
            <RelationType type="ol:mqCost"/>
            <RelationType type="ol:mqCreate"/>
            <RelationType type="ol:mqCreationDate"/>
            <RelationType type="ol:mqDuration"/>
            <RelationType type="ol:mqFileName"/>
            <RelationType type="ol:mqFinish"/>
            <RelationType type="ol:mqFormat"/>
            <RelationType type="ol:mqHyperlinkBase"/>
            <RelationType type="ol:mqKeywords"/>
            <RelationType type="ol:mqLastModified"/>
            <RelationType type="ol:mqLastPrinted"/>
            <RelationType type="ol:mqLastSavedBy"/>
            <RelationType type="ol:mqManager"/>
            <RelationType type="ol:mqMsgAddress"/>
            <RelationType type="ol:mqMsgAllDayEvent"/>
            <RelationType type="ol:mqMsgAttendees"/>
            <RelationType type="ol:mqMsgCC"/>
            <RelationType type="ol:mqMsgClass"/>
            <RelationType type="ol:mqMsgDateCompleted"/>
            <RelationType type="ol:mqMsgDateDue"/>
            <RelationType type="ol:mqMsgEmail"/>
            <RelationType type="ol:mqMsgEnd"/>
            <RelationType type="ol:mqMsgFax"/>
            <RelationType type="ol:mqMsgFrom"/>
            <RelationType type="ol:mqMsgImportance"/>
            <RelationType type="ol:mqMsgJobTitle"/>
            <RelationType type="ol:mqMsgLocation"/>
            <RelationType type="ol:mqMsgName"/>
            <RelationType type="ol:mqMsgNotes"/>
            <RelationType type="ol:mqMsgOwner"/>
            <RelationType type="ol:mqMsgPhone"/>
            <RelationType type="ol:mqMsgPriority"/>
            <RelationType type="ol:mqMsgReceived"/>
            <RelationType type="ol:mqMsgResources"/>
            <RelationType type="ol:mqMsgSent"/>
            <RelationType type="ol:mqMsgStatus"/>
            <RelationType type="ol:mqMsgTo"/>
            <RelationType type="ol:mqMsgWebPage"/>
            <RelationType type="ol:mqNumberOfCharacters"/>
            <RelationType type="ol:mqNumberOfCharactersAndSpaces"/>
            <RelationType type="ol:mqNumberOfHiddenSlides"/>
            <RelationType type="ol:mqNumberOfLines"/>
            <RelationType type="ol:mqNumberOfMultimediaClips"/>
            <RelationType type="ol:mqNumberOfNotes"/>
            <RelationType type="ol:mqNumberOfPages"/>
            <RelationType type="ol:mqNumberOfParagraphs"/>
            <RelationType type="ol:mqNumberOfSlides"/>
            <RelationType type="ol:mqNumberOfWords"/>
            <RelationType type="ol:mqPath"/>
            <RelationType type="ol:mqPercentComplete"/>
            <RelationType type="ol:mqPercentWorkComplete"/>
            <RelationType type="ol:mqRank"/>
            <RelationType type="ol:mqRevision"/>
            <RelationType type="ol:mqSize"/>
            <RelationType type="ol:mqStart"/>
            <RelationType type="ol:mqSubject"/>
            <RelationType type="ol:mqTemplate"/>
            <RelationType type="ol:mqTitle"/>
            <RelationType type="ol:mqTotalEditingTime"/>
            <RelationType type="ol:mqVPath"/>
            <RelationType type="ol:mqWork"/>
            <RelationType type="ol:mqdocAuthor"/>
            <RelationType type="ol:mqdocCategory"/>
            <RelationType type="ol:mqdocCompany"/>
            <RelationType type="ol:mqdocCreatedTm"/>
            <RelationType type="ol:mqdocEditTime"/>
            <RelationType type="ol:mqdocSubject"/>
            <RelationType type="ol:mqdocTitle"/>
        </IgnoreSchema>

        <!-- CJ will filter out ignored nexuses so no need to do it here. -->

        <Nexus>
            <EntityType type="ol:Entity"/>
            <EntityType type="ol:LimitedItem"/>
            <EntityType type="ol:Item"/>
            <EntityType type="ol:MAPIFolder"/>
            <EntityType type="ol:AddressList"/>
            <EntityType type="ol:AddressEntry"/>
            <EntityType type="ol:Recipient"/>
            <EntityType type="ol:Attachment"/>
            <EntityType type="ol:ContactItem"/>
            <EntityType type="ol:DistListItem"/>
            <EntityType type="ol:MailItem"/>
            <EntityType type="ol:MailOrMeetingItem"/>
            <EntityType type="ol:MailOrMeetingOrPostItem"/>
            <EntityType type="ol:ReportItem"/>
            <EntityType type="ol:RemoteItem"/>
            <EntityType type="ol:PostItem"/>
            <EntityType type="ol:NoteItem"/>
            <EntityType type="ol:JournalItem"/>
            <EntityType type="ol:AppointmentItem"/>
            <EntityType type="ol:MeetingItem"/>
            <EntityType type="ol:TaskItem"/>
            <EntityType type="ol:TaskRequestItem"/>
            <EntityType type="ol:TaskRequestUpdateItem"/>
            <EntityType type="ol:TaskRequestAcceptItem"/>
            <EntityType type="ol:TaskRequestDeclineItem"/>
            <EntityType type="ol:DocumentItem"/>
            <EntityType type="ol:Situated"/>
        </Nexus>

        <!-- CJ should not ask this about ignored types so no need to do it here. -->

        <Datatype>
<!--
            <EntityType type="ol:OlActionCopyLike"/>
            <EntityType type="ol:OlActionReplyStyle"/>
            <EntityType type="ol:OlActionResponseStyle"/>
            <EntityType type="ol:OlActionShowOn"/>
-->
            <EntityType type="ol:OlAttachmentType"/>
            <EntityType type="ol:OlBusyStatus"/>
            <EntityType type="ol:OlDisplayType"/>
            <EntityType type="ol:OlEditorType"/>
            <EntityType type="ol:OlFlagStatus"/>
            <EntityType type="ol:OlGender"/>
            <EntityType type="ol:OlImportance"/>
<!--
            <EntityType type="ol:OlItemType"/>
-->
            <EntityType type="ol:OlJournalRecipientType"/>
            <EntityType type="ol:OlMailRecipientType"/>
            <EntityType type="ol:OlMailingAddress"/>
            <EntityType type="ol:OlMeetingRecipientType"/>
            <EntityType type="ol:OlMeetingResponse"/>
            <EntityType type="ol:OlMeetingStatus"/>
            <EntityType type="ol:OlNetMeetingType"/>
            <EntityType type="ol:OlNoteColor"/>
            <EntityType type="ol:OlObjectClass"/>
            <EntityType type="ol:OlOutlookBarViewType"/>
            <EntityType type="ol:OlRecurrenceState"/>
            <EntityType type="ol:OlRecurrenceType"/>
            <EntityType type="ol:OlRemoteStatus"/>
            <EntityType type="ol:OlResponseStatus"/>
            <EntityType type="ol:OlSensitivity"/>
            <EntityType type="ol:OlTaskDelegationState"/>
            <EntityType type="ol:OlTaskOwnership"/>
            <EntityType type="ol:OlTaskRecipientType"/>
            <EntityType type="ol:OlTaskResponse"/>
            <EntityType type="ol:OlTaskStatus"/>
            <EntityType type="ol:OlTrackingStatus"/>
            <EntityType type="ol:OlWindowState"/>
            <EntityType type="ol:Long"/>
            <EntityType type="ol:String"/>
            <EntityType type="ol:Boolean"/>
            <EntityType type="ol:DateTime"/>
            <EntityType type="ol:Variant"/>
        </Datatype>

<!-- Changed to be normal map to To, CC and BCC for Outlook 10 compatibility
        <Patterns>
            <RelationPattern defines="ol:HasOrganizerName" src="Appt" dst="Name">
                <Structure>
                    <Entity type="ol:AppointmentItem" id="Appt">
                        <Relation type="ol:HasRecipient">
                            <Entity type="ol:Recipient" id="Rcpt">
                                <Relation type="ol:HasType">
                                    <Entity type="ol:OlMeetingRecipientType" id="Type"/>
                                </Relation>
                                <Relation type="ol:HasName">
                                    <Entity type="ol:String" id="Name"/>
                                </Relation>
                            </Entity>
                        </Relation>
                    </Entity>
                </Structure>    
                <Constraint>
                    <Comparison op="eq">
                        <Entity ref="Type"/>
                        <Long>0</Long>
                    </Comparison>
                </Constraint>
            </RelationPattern>
            <RelationPattern defines="ol:HasAttendantName" src="Appt" dst="Name">
                <Structure>
                    <Entity type="ol:AppointmentItem" id="Appt">
                        <Relation type="ol:HasRecipient">
                            <Entity type="ol:Recipient" id="Rcpt">
                                <Relation type="ol:HasType">
                                    <Entity type="ol:OlMeetingRecipientType" id="Type"/>
                                </Relation>
                                <Relation type="ol:HasName">
                                    <Entity type="ol:String" id="Name"/>
                                </Relation>
                            </Entity>
                        </Relation>
                    </Entity>
                </Structure>
                <Constraint>
                    <Comparison op="lt">
                        <Entity ref="Type"/>
                        <Long>3</Long>
                    </Comparison>
                </Constraint>
            </RelationPattern>
        </Patterns>
-->
        <Generalization>
            <EntityType type="ol:Entity"/>
            <RelationType type="ol:Relation"/>
            <RelationType type="ol:HasTimeRelation"/>
            <RelationType type="ol:HasAddressPart"/>
        </Generalization>

        <Preferred>
            <SchemaTriple src="ol:MAPIFolder" rel="ol:HasName" dst="ol:Blurb"/>

            <SchemaTriple src="ol:LimitedItem" rel="ol:HasAboutString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:Item" rel="ol:HasAboutString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:ContactItem" rel="ol:HasAboutContactString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:MailOrMeetingItem" rel="ol:HasAboutMailOrMeetingOrPostString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:MailOrMeetingOrPostItem" rel="ol:HasAboutMailOrMeetingOrPostString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:MailItem" rel="ol:HasAboutMailOrMeetingOrPostString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:MeetingItem" rel="ol:HasAboutMailOrMeetingOrPostString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:PostItem" rel="ol:HasAboutMailOrMeetingOrPostString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:AppointmentItem" rel="ol:HasAboutAppointmentString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:TaskItem" rel="ol:HasAboutTaskString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:JournalItem" rel="ol:HasAboutSomeItemString" dst="ol:Blurb"/>
            <SchemaTriple src="ol:DocumentItem" rel="ol:HasAboutSomeItemString" dst="ol:Blurb"/>

            <SchemaTriple src="ol:LimitedItem" rel="ol:HasPhoneNumber" dst="ol:PhoneNumber"/>
            <SchemaTriple src="ol:Item" rel="ol:HasPhoneNumber" dst="ol:PhoneNumber"/>

            <SchemaTriple src="ol:LimitedItem" rel="ol:HasAboutDateTime" dst="ol:DateTime"/>
            <SchemaTriple src="ol:Item" rel="ol:HasAboutDateTime" dst="ol:DateTime"/>
            <SchemaTriple src="ol:ContactItem" rel="ol:HasBirthDay" dst="ol:DateTime"/>
            <SchemaTriple src="ol:MailOrMeetingItem" rel="ol:HasSentOn" dst="ol:DateTime"/>
            <SchemaTriple src="ol:MailOrMeetingItem" rel="ol:HasReceivedTime" dst="ol:DateTime"/>
            <SchemaTriple src="ol:PostItem" rel="ol:HasSentOn" dst="ol:DateTime"/>
            <SchemaTriple src="ol:PostItem" rel="ol:HasReceivedTime" dst="ol:DateTime"/>
            <SchemaTriple src="ol:AppointmentItem" rel="ol:HasStart" dst="ol:DateTime"/>
            <SchemaTriple src="ol:TaskItem" rel="ol:HasDueDate" dst="ol:DateTime"/>
            <SchemaTriple src="ol:JournalItem" rel="ol:HasStart" dst="ol:DateTime"/>
            <SchemaTriple src="ol:DocumentItem" rel="ol:HasCreationTime" dst="ol:DateTime"/>

	    <SchemaTriple src="ol:ContactItem" rel="ol:HasCity" dst="ol:City"/>
	    <SchemaTriple src="ol:ContactItem" rel="ol:HasCountry" dst="ol:Country"/>
	    <SchemaTriple src="ol:ContactItem" rel="ol:HasState" dst="ol:State"/>
        </Preferred>

        <Patterns>
            <EntityPattern single="ol:DateTime" main="Time">
                <Structure>
                    <Entity type="ol:AppointmentItem" id="Item">
                        <Relation type="ol:HasStart">
                            <Entity type="ol:DateTime" id="Time"/>
                        </Relation>
                    </Entity>
                </Structure>
            </EntityPattern>
            <EntityPattern single="ol:PersonName" main="Name">
                <Structure>
                    <Entity type="ol:ContactItem" id="Item">
                        <Relation type="ol:HasFullName">
                            <Entity type="ol:PersonName" id="Name"/>
                        </Relation>
                    </Entity>
                </Structure>
            </EntityPattern>
        </Patterns>

        <Possessive>
            <SchemaTriple src="ol:ContactItem" rel="ol:HasContactName" dst="ol:String"/>
            <SchemaTriple src="ol:AppointmentItem" rel="ol:HasOrganizer" dst="ol:EmailDisplayName"/>
            <SchemaTriple src="ol:MailItem" rel="ol:HasSenderName" dst="ol:EmailDisplayName"/>
            <SchemaTriple src="ol:MailItem" rel="ol:HasReceivedTime" dst="ol:DateTime"/>
            <SchemaTriple src="ol:AppointmentItem" rel="ol:HasStart" dst="ol:DateTime"/>
        </Possessive>
    </MetaData>

</ConceptualSchema>
