<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="urn:oasis:names:tc:emergency:EDXL:RM:1.0:RequestResource"
    xmlns:rm="urn:oasis:names:tc:emergency:EDXL:RM:1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xsd:import namespace="urn:oasis:names:tc:emergency:EDXL:RM:1.0"
        schemaLocation="EDXL-RMCommonTypes.xsd"/>
    <!-- This schema describes the structure of EDXL-RM "Request Resource" messages.-->
    <element name="EDXLResourceMessage">
        <complexType>
            <sequence>
                <element name="MessageID" type="rm:MessageIDType"/>
                <element name="SentDateTime" type="rm:DateTimeType"/>
                <element name="MessageContentType">
                    <simpleType>
                        <restriction base="rm:MessageContentTypeType">
                            <enumeration value="Request Resource"/>
                        </restriction>
                    </simpleType>
                </element>
                <element name="MessageDescription" type="rm:MessageDescriptionType" minOccurs="0"
                    maxOccurs="1"/>
                <element name="OriginatingMessageID" type="rm:MessageIDType"/>
                <element name="IncidentInformation" type="rm:IncidentInformationType" minOccurs="0"
                    maxOccurs="unbounded"/>
                <element name="MessageRecall" type="rm:MessageRecallType" minOccurs="0"
                    maxOccurs="1"/>
                <element name="Funding" minOccurs="0" maxOccurs="unbounded">
                    <complexType>
                        <sequence>
                            <!-- One (or both) of the FundCode and FundingInfo elements is required -->
                            <element name="FundCode" type="rm:FundCodeType" minOccurs="0"
                                maxOccurs="1"/>
                            <element name="FundingInfo" type="rm:FundingInfoType" minOccurs="0"
                                maxOccurs="1"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="ContactInformation" type="rm:ContactInformationType" minOccurs="1"
                    maxOccurs="unbounded"/>
                <element name="ResourceInformation" minOccurs="1" maxOccurs="unbounded">
                    <complexType>
                        <sequence>
                            <element name="SequenceNumber" type="rm:SequenceNumberType"/>
                            <element name="Resource">
                                <complexType>
                                    <sequence>
                                        <!-- One (or more) of first three elements is required -->
                                        <element name="ResourceID" type="rm:ResourceIDType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="Name" type="rm:ResourceNameType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="TypeStructure" type="rm:ValueListType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="TypeInfo" type="rm:TypeInfoType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="Keyword" type="rm:ValueListType"
                                            minOccurs="0" maxOccurs="unbounded"/>
                                        <element name="Description" type="rm:DescriptionType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="Credentials" type="rm:CredentialsType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="Certifications" type="rm:CertificationsType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="SpecialRequirements"
                                            type="rm:SpecialRequirementsType" minOccurs="0"
                                            maxOccurs="1"/>
                                    </sequence>
                                </complexType>
                            </element>
                            <element name="AssignmentInformation" minOccurs="0" maxOccurs="1">
                                <complexType>
                                    <sequence>
                                        <element name="Quantity" type="rm:QuantityType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="Restrictions" type="rm:RestrictionsType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="AnticipatedFunction"
                                            type="rm:AnticipatedFunctionType" minOccurs="0"
                                            maxOccurs="1"/>
                                    </sequence>
                                </complexType>
                            </element>
                            <element name="ScheduleInformation" minOccurs="0" maxOccurs="unbounded">
                                <complexType>
                                    <sequence>
                                        <element name="ScheduleType">
                                            <simpleType>
                                                <restriction base="rm:ScheduleTypeType">
                                                  <enumeration value="RequestedArrival"/>
                                                  <enumeration value="RequestedDeparture"/>
                                                  <enumeration value="EstimatedReturnDeparture"/>
                                                  <enumeration value="EstimatedReturnArrival"/>
                                                  <enumeration value="ReportTo"/>
                                                  <enumeration value="Route"/>
                                                </restriction>
                                            </simpleType>
                                        </element>
                                        <element name="DateTime" type="rm:DateTimeType"
                                            minOccurs="0" maxOccurs="1"/>
                                        <element name="Location" type="rm:LocationType"
                                            minOccurs="0" maxOccurs="1"/>
                                    </sequence>
                                </complexType>
                            </element>
                        </sequence>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>

