<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
    <edmx:DataServices>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Controller">
            <EntityContainer Name="Default">
                <EntitySet Name="SimpleEntity" EntityType="Default.SimpleEntity" />
                <EntitySet Name="EmptyEntity3" EntityType="Server.EmptyEntity3" />
                <EntitySet Name="EmptyEntity2" EntityType="Server.EmptyEntity2" />
                <EntitySet Name="EmptyEntity" EntityType="Server.EmptyEntity" />
                <EntitySet Name="TestEntity" EntityType="Server.Test2" />
                <EntitySet Name="CompoundKey" EntityType="Server.CompoundKey" />
                <EntitySet Name="Media" EntityType="Media.Media" />
                <EntitySet Name="Meta" EntityType="Meta.BaseMeta" />
                <EntitySet Name="EmptyEntity4" EntityType="Server.EmptyEntity4" />
                <EntitySet Name="EmptyEntity5" EntityType="Server.EmptyEntity5" />
                <EntitySet Name="EmptyEntity6" EntityType="Server.EmptyEntity6" />
            </EntityContainer>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Default">
            <EntityType Name="SimpleEntity">
                <Key>
                    <PropertyRef Name="MongoId" />
                </Key>
                <Property Name="MongoId" Type="Simple.ObjectID" Nullable="false">
                    <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
                </Property>
            </EntityType>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EnumSchema">
            <EnumType Name="Genre2" UnderlyingType="Edm.Int64" IsFlags="true">
                <Member Name="Unknown" Value="0"/>
                <Member Name="Pop" Value="1"/>
                <Member Name="Rock" Value="2">
                    <Annotation Term="foo" String="bar"/>
                </Member>
                <Member Name="Metal" Value="3"/>
                <Member Name="Classic" Value="4"/>
                <Annotation Term="foo" String="bar"/>
            </EnumType>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Functions">
            <Function Name="f0" IsBound="true">
                <Parameter Name="bindingParameter" Type="Meta.Meta" />
                <ReturnType Type="Edm.String" />
            </Function>
            <Function Name="f2" IsBound="true">
                <Parameter Name="bindingParameter" Type="Meta.Meta" />
                <Parameter Name="message" Type="Edm.String" />
                <ReturnType Type="Edm.String" />
            </Function>
            <Function Name="ControllerFunction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Media.Media)" />
                <ReturnType Type="Edm.String" />
            </Function>
            <Function Name="ControllerFunction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Meta.BaseMeta)" />
                <Parameter Name="str" Type="Edm.String" />
                <ReturnType Type="Edm.String" />
            </Function>
            <Function Name="FunctionImport" IsBound="false">
                <Parameter Name="value" Type="Collection(Edm.Int32)" Nullable="false" />
                <Parameter Name="message" Type="Edm.String" Nullable="false" />
                <ReturnType Type="Edm.String" />
            </Function>
            <Function Name="FunctionImport2" IsBound="false">
                <Parameter Name="message" Type="Edm.String" Nullable="true" />
                <ReturnType Type="Edm.String" />
            </Function>
            <Function Name="FunctionImport3" IsBound="false">
                <Parameter Name="geo" Type="Edm.GeometryPoint" SRID="1"/>
                <Parameter Name="value" Type="Edm.Decimal" Nullable="false" Precision="13" Scale="2"/>
                <Parameter Name="message" Type="Edm.String" MaxLength="8" Unicode="true"/>
                <ReturnType Type="Edm.String"/>
            </Function>
            <EntityContainer Name="Default">
                <FunctionImport Name="FunctionImport" Function="Functions.FunctionImport" />
                <FunctionImport Name="FunctionImport2" Function="Functions.FunctionImport2" />
                <FunctionImport Name="FunctionImport3" Function="Functions.FunctionImport3"/>
            </EntityContainer>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Media">
            <EntityType Name="Media" HasStream="true">
                <Key>
                    <PropertyRef Name="Id" />
                </Key>
                <Property Name="Id" Type="Edm.Int32" Nullable="false">
                    <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
                </Property>
                <Property Name="StringId" Type="Edm.String" Nullable="false" />
                <NavigationProperty Name="Meta" Type="Media.Meta" Partner="MediaList" />
                <Annotation Term="UI.DisplayName" String="Media" />
            </EntityType>
            <Action Name="ControllerAction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Media.Media)" />
                <Parameter Name="value" Type="Edm.Int32" />
            </Action>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Meta">
            <EntityType Name="BaseMeta">
                <Key>
                    <PropertyRef Name="MongoId" />
                </Key>
                <Property Name="MongoId" Type="Server.ObjectID2" Nullable="false">
                    <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
                </Property>
                <Property Name="b0" Type="Edm.String" />
            </EntityType>
            <EntityType Name="Meta" BaseType="Meta.BaseMeta">
                <Key>
                    <PropertyRef Name="Id" />
                </Key>
                <Property Name="Id" Type="Edm.Int32" Nullable="false">
                    <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
                    <Annotation Term="UI.DisplayName" String="Identifier" />
                    <Annotation Term="UI.ControlHint" String="ReadOnly" />
                </Property>
                <Property Name="MongoId" Type="Server.ObjectID2" Nullable="false">
                    <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
                </Property>
                <Property Name="myType" Type="Server.MyType" />
                <Property Name="p0" Type="Edm.Binary" Nullable="true" />
                <Property Name="p1" Type="Edm.Boolean" />
                <Property Name="p2" Type="Edm.Byte" />
                <Property Name="p3" Type="Edm.Date" />
                <Property Name="p4" Type="Edm.DateTimeOffset" />
                <Property Name="p5" Type="Edm.Decimal" Precision="13" Scale="2" />
                <Property Name="p6" Type="Edm.Double" />
                <Property Name="p7" Type="Edm.Duration" />
                <Property Name="p8" Type="Edm.Guid" />
                <Property Name="p9" Type="Edm.Int16" Nullable="false" />
                <Property Name="p10" Type="Edm.Int32" Nullable="false" />
                <Property Name="p11" Type="Edm.Int64" DefaultValue="256" />
                <Property Name="p12" Type="Edm.SByte" />
                <Property Name="p13" Type="Edm.Single" />
                <Property Name="p14" Type="Edm.Stream" />
                <Property Name="p15" Type="Edm.String" Unicode="true" />
                <Property Name="p16" Type="Edm.TimeOfDay" />
                <Property Name="p17" Type="Edm.Geography" />
                <Property Name="p18" Type="Edm.GeographyPoint" />
                <Property Name="p19" Type="Edm.GeographyLineString" />
                <Property Name="p20" Type="Edm.GeographyPolygon" />
                <Property Name="p21" Type="Edm.GeographyMultiPoint" />
                <Property Name="p22" Type="Edm.GeographyMultiLineString" />
                <Property Name="p23" Type="Edm.GeographyMultiPolygon" />
                <Property Name="p24" Type="Edm.GeographyCollection" />
                <Property Name="p25" Type="Edm.Geometry" />
                <Property Name="p26" Type="Edm.GeometryPoint" SRID="123" />
                <Property Name="p27" Type="Edm.GeometryLineString" />
                <Property Name="p28" Type="Edm.GeometryPolygon" />
                <Property Name="p29" Type="Edm.GeometryMultiPoint" />
                <Property Name="p30" Type="Edm.GeometryMultiLineString" />
                <Property Name="p31" Type="Edm.GeometryMultiPolygon" />
                <Property Name="p32" Type="Edm.GeometryCollection" />
                <Property Name="p33" Type="Collection(Edm.Binary)" Nullable="true" />
                <Property Name="p34" Type="Collection(Edm.Boolean)" />
                <Property Name="p35" Type="Collection(Edm.Byte)" />
                <Property Name="p36" Type="Collection(Edm.Date)" />
                <Property Name="p37" Type="Collection(Edm.DateTimeOffset)" />
                <Property Name="p38" Type="Collection(Edm.Decimal)" />
                <Property Name="p39" Type="Collection(Edm.Double)" />
                <Property Name="p40" Type="Collection(Edm.Duration)" />
                <Property Name="p41" Type="Collection(Edm.Guid)" />
                <Property Name="p42" Type="Collection(Edm.Int16)" />
                <Property Name="p43" Type="Collection(Edm.Int32)" />
                <Property Name="p44" Type="Collection(Edm.Int64)" />
                <Property Name="p45" Type="Collection(Edm.SByte)" />
                <Property Name="p46" Type="Collection(Edm.Single)" />
                <Property Name="p47" Type="Collection(Edm.Stream)" />
                <Property Name="p48" Type="Collection(Edm.String)" />
                <Property Name="p49" Type="Collection(Edm.TimeOfDay)" />
                <Property Name="p50" Type="Collection(Edm.Geography)" />
                <Property Name="p51" Type="Collection(Edm.GeographyPoint)" />
                <Property Name="p52" Type="Collection(Edm.GeographyLineString)" />
                <Property Name="p53" Type="Collection(Edm.GeographyPolygon)" />
                <Property Name="p54" Type="Collection(Edm.GeographyMultiPoint)" />
                <Property Name="p55" Type="Collection(Edm.GeographyMultiLineString)" />
                <Property Name="p56" Type="Collection(Edm.GeographyMultiPolygon)" />
                <Property Name="p57" Type="Collection(Edm.GeographyCollection)" />
                <Property Name="p58" Type="Collection(Edm.Geometry)" />
                <Property Name="p59" Type="Collection(Edm.GeometryPoint)" />
                <Property Name="p60" Type="Collection(Edm.GeometryLineString)" />
                <Property Name="p61" Type="Collection(Edm.GeometryPolygon)" />
                <Property Name="p62" Type="Collection(Edm.GeometryMultiPoint)" />
                <Property Name="p63" Type="Collection(Edm.GeometryMultiLineString)" />
                <Property Name="p64" Type="Collection(Edm.GeometryMultiPolygon)" />
                <Property Name="p65" Type="Collection(Edm.GeometryCollection)" />
                <Property Name="p66" Type="Edm.Stream" />
                <Property Name="Complex" Type="Meta.Complex" />
                <Property Name="ComplexList" Type="Collection(Meta.Complex)" />
                <Property Name="Genre" Type="EnumSchema.Genre2" />
                <Property Name="Color" Type="Server.Color2" />
                <NavigationProperty Name="MediaList" Type="Collection(Media.Media)" Partner="Meta" />
            </EntityType>
            <ComplexType Name="BaseComplex">
                <Property Name="bc0" Type="Edm.String"/>
                <Property Name="Genre" Type="EnumSchema.Genre2"/>
            </ComplexType>
            <ComplexType Name="Complex" BaseType="Meta.SubComplex">
                <Property Name="c0" Type="Edm.String"/>
            </ComplexType>
            <ComplexType Name="SubComplex" BaseType="Meta.BaseComplex">
                <Property Name="sc0" Type="Edm.String"/>
            </ComplexType>
            <Action Name="a0" IsBound="true">
                <Parameter Name="bindingParameter" Type="Meta.Meta" />
            </Action>
            <Action Name="ControllerAction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Meta.BaseMeta)" />
            </Action>
            <Function Name="useOdataType" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Meta.BaseMeta)" />
                <ReturnType Type="Meta.BaseMeta" />
            </Function>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Server">
            <EntityType Name="CompoundKey">
                <Key>
                    <PropertyRef Name="bc0" />
                </Key>
                <Property Name="bc0" Type="Edm.Decimal" Nullable="false" />
                <Property Name="bc1" Type="Edm.Binary" Nullable="false" />
                <Property Name="bc2" Type="Edm.Boolean" Nullable="false" />
                <Property Name="bc3" Type="Edm.Byte" Nullable="false" />
                <Property Name="bc4" Type="Edm.Guid" Nullable="false" />
                <Property Name="bc5" Type="Edm.Double" Nullable="false" />
            </EntityType>
            <EntityType Name="EmptyEntity"></EntityType>
            <EntityType Name="EmptyEntity2"></EntityType>
            <EntityType Name="EmptyEntity3"></EntityType>
            <EntityType Name="EmptyEntity4"></EntityType>
            <EntityType Name="EmptyEntity5"></EntityType>
            <EntityType Name="EmptyEntity6"></EntityType>
            <EntityType Name="HiddenEmptyEntity"></EntityType>
            <EntityType Name="Test2">
                <Key>
                    <PropertyRef Name="test" />
                </Key>
                <Property Name="test" Type="Edm.Int32" Nullable="false" />
                <Property Name="Genre" Type="EnumSchema.Genre2" />
            </EntityType>
            <TypeDefinition Name="MyType" UnderlyingType="Edm.String"></TypeDefinition>
            <TypeDefinition Name="ObjectID2" UnderlyingType="Edm.String"></TypeDefinition>
            <EnumType Name="Color2" UnderlyingType="Edm.Int32">
                <Member Name="Red" Value="0" />
                <Member Name="Green" Value="1" />
                <Member Name="Blue" Value="2" />
            </EnumType>
            <Action Name="enumTypeAction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Server.EmptyEntity" />
                <Parameter Name="value" Type="EnumSchema.Genre2" />
            </Action>
            <Action Name="emptyEntityAction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Server.EmptyEntity)" />
                <Parameter Name="value" Type="EnumSchema.Genre2" />
            </Action>
            <Action Name="ActionImport" IsBound="false" />
            <Action Name="ActionImportParams" IsBound="false">
                <Parameter Name="value" Type="Collection(Edm.Int32)" />
            </Action>
            <Action Name="ServerEnumTypeActionImport" IsBound="false">
                <Parameter Name="value" Type="EnumSchema.Genre2" />
            </Action>
            <Function Name="enumTypeFunction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Server.EmptyEntity" />
                <Parameter Name="value" Type="EnumSchema.Genre2" />
                <ReturnType Type="EnumSchema.Genre2" />
            </Function>
            <Function Name="emptyEntityFunction" IsBound="true">
                <Parameter Name="bindingParameter" Type="Collection(Server.EmptyEntity)" />
                <Parameter Name="value" Type="EnumSchema.Genre2" />
                <ReturnType Type="EnumSchema.Genre2" />
            </Function>
            <Function Name="ObjId" IsBound="false">
                <Parameter Name="v" Type="Server.ObjectID2" />
                <ReturnType Type="Server.ObjectID2" />
            </Function>
            <Function Name="ServerEnumTypeFunctionImport" IsBound="false">
                <Parameter Name="value" Type="EnumSchema.Genre2" />
                <ReturnType Type="EnumSchema.Genre2" />
            </Function>
            <EntityContainer Name="ActionImportContainer">
                <ActionImport Name="ActionImport" Action="Server.ActionImport" />
            </EntityContainer>
            <EntityContainer Name="Default">
                <ActionImport Name="ActionImportParams" Action="Server.ActionImportParams" />
                <ActionImport Name="ServerEnumTypeActionImport" Action="Server.ServerEnumTypeActionImport" />
                <FunctionImport Name="ObjId" Function="Server.ObjId" />
                <FunctionImport Name="ServerEnumTypeFunctionImport" Function="Server.ServerEnumTypeFunctionImport" />
            </EntityContainer>
        </Schema>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Simple">
            <TypeDefinition Name="ObjectID" UnderlyingType="Edm.String"></TypeDefinition>
        </Schema>
    </edmx:DataServices>
</edmx:Edmx>