<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
  <edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
    <edmx:Include Alias="Common" Namespace="com.sap.vocabularies.Common.v1"/>
  </edmx:Reference>
  <edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml">
    <edmx:Include Alias="Core" Namespace="Org.OData.Core.V1"/>
  </edmx:Reference>
  <edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
    <edmx:Include Alias="UI" Namespace="com.sap.vocabularies.UI.v1"/>
  </edmx:Reference>
  <edmx:DataServices>
    <Schema Namespace="SampleService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
      <EntityContainer Name="EntityContainer">
        <EntitySet Name="Products" EntityType="SampleService.Products">
          <NavigationPropertyBinding Path="_Parts" Target="Parts"/>
          <NavigationPropertyBinding Path="_Category" Target="Category"/>
          <NavigationPropertyBinding Path="SiblingEntity" Target="Products"/>
        </EntitySet>
        <EntitySet Name="Parts" EntityType="SampleService.Parts">
          <NavigationPropertyBinding Path="_Product" Target="Products"/>
        </EntitySet>
        <EntitySet Name="Category" EntityType="SampleService.Category">
          <NavigationPropertyBinding Path="SiblingEntity" Target="Category"/>
        </EntitySet>
      </EntityContainer>
      <EntityType Name="Products">
        <Key>
          <PropertyRef Name="ID"/>
          <PropertyRef Name="IsActiveEntity"/>
        </Key>
        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="amount" Type="Edm.Decimal" Scale="2" Precision="9"/>
        <Property Name="categoryID" Type="Edm.Int32"/>
        <NavigationProperty Name="_Parts" Type="Collection(SampleService.Parts)" Partner="_Product"/>
        <NavigationProperty Name="_Category" Type="SampleService.Category">
          <OnDelete Action="Cascade"/>
          <ReferentialConstraint Property="_Category_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="_Category_ID" Type="Edm.Int32"/>
        <Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false" DefaultValue="true"/>
        <Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false" DefaultValue="false"/>
        <Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false" DefaultValue="false"/>
        <NavigationProperty Name="DraftAdministrativeData" Type="SampleService.DraftAdministrativeData" ContainsTarget="true"/>
        <NavigationProperty Name="SiblingEntity" Type="SampleService.Products"/>
      </EntityType>
      <EntityType Name="Parts">
        <Key>
          <PropertyRef Name="ID"/>
        </Key>
        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
        <Property Name="description" Type="Edm.String"/>
        <Property Name="quantity" Type="Edm.Decimal" Scale="2" Precision="9"/>
        <NavigationProperty Name="_Product" Type="SampleService.Products" Partner="_Parts">
          <ReferentialConstraint Property="_Product_ID" ReferencedProperty="ID"/>
        </NavigationProperty>
        <Property Name="_Product_ID" Type="Edm.Int32"/>
      </EntityType>
      <EntityType Name="Category">
        <Key>
          <PropertyRef Name="ID"/>
          <PropertyRef Name="IsActiveEntity"/>
        </Key>
        <Property Name="ID" Type="Edm.Int32" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="IsActiveEntity" Type="Edm.Boolean" Nullable="false" DefaultValue="true"/>
        <Property Name="HasActiveEntity" Type="Edm.Boolean" Nullable="false" DefaultValue="false"/>
        <Property Name="HasDraftEntity" Type="Edm.Boolean" Nullable="false" DefaultValue="false"/>
        <NavigationProperty Name="DraftAdministrativeData" Type="SampleService.DraftAdministrativeData" ContainsTarget="true"/>
        <NavigationProperty Name="SiblingEntity" Type="SampleService.Category"/>
      </EntityType>
      <EntityType Name="DraftAdministrativeData">
        <Key>
          <PropertyRef Name="DraftUUID"/>
        </Key>
        <Property Name="DraftUUID" Type="Edm.Guid" Nullable="false"/>
        <Property Name="CreationDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="CreatedByUser" Type="Edm.String" MaxLength="256"/>
        <Property Name="DraftIsCreatedByMe" Type="Edm.Boolean"/>
        <Property Name="LastChangeDateTime" Type="Edm.DateTimeOffset" Precision="7"/>
        <Property Name="LastChangedByUser" Type="Edm.String" MaxLength="256"/>
        <Property Name="InProcessByUser" Type="Edm.String" MaxLength="256"/>
        <Property Name="DraftIsProcessedByMe" Type="Edm.Boolean"/>
      </EntityType>
      <Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
        <Parameter Name="in" Type="SampleService.Products"/>
        <Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
        <ReturnType Type="SampleService.Products"/>
      </Action>
      <Action Name="draftPrepare" IsBound="true" EntitySetPath="in">
        <Parameter Name="in" Type="SampleService.Category"/>
        <Parameter Name="SideEffectsQualifier" Type="Edm.String"/>
        <ReturnType Type="SampleService.Category"/>
      </Action>
      <Action Name="draftActivate" IsBound="true" EntitySetPath="in">
        <Parameter Name="in" Type="SampleService.Products"/>
        <ReturnType Type="SampleService.Products"/>
      </Action>
      <Action Name="draftEdit" IsBound="true" EntitySetPath="in">
        <Parameter Name="in" Type="SampleService.Products"/>
        <Parameter Name="PreserveChanges" Type="Edm.Boolean"/>
        <ReturnType Type="SampleService.Products"/>
      </Action>
      <Annotations Target="SampleService.Products">
        <Annotation Term="Common.SemanticKey">
          <Collection>
            <PropertyPath>ID</PropertyPath>
          </Collection>
        </Annotation>
        <Annotation Term="UI.LineItem">
          <Collection>
            <Record Type="UI.DataField">
              <PropertyValue Property="Value" Path="ID"/>
            </Record>
            <Record Type="UI.DataField">
              <PropertyValue Property="Value" Path="amount"/>
            </Record>
          </Collection>
        </Annotation>
        <Annotation Term="UI.SelectionFields">
          <Collection>
            <PropertyPath>ID</PropertyPath>
          </Collection>
        </Annotation>
        <Annotation Term="UI.HeaderInfo">
          <Record Type="UI.HeaderInfoType">
            <PropertyValue Property="TypeName" String="Product"/>
            <PropertyValue Property="TypeNamePlural" String="Products"/>
            <PropertyValue Property="Title">
              <Record Type="UI.DataField">
                <PropertyValue Property="Value" Path="ID"/>
              </Record>
            </PropertyValue>
          </Record>
        </Annotation>
        <Annotation Term="UI.FieldGroup">
          <Record Type="UI.FieldGroupType">
            <PropertyValue Property="Data">
              <Collection>
                <Record Type="UI.DataField">
                  <PropertyValue Property="Value" Path="name"/>
                </Record>
                <Record Type="UI.DataField">
                  <PropertyValue Property="Value" Path="amount"/>
                </Record>
              </Collection>
            </PropertyValue>
          </Record>
        </Annotation>
        <Annotation Term="UI.Facets">
          <Collection>
            <Record Type="UI.ReferenceFacet">
              <PropertyValue Property="Target" AnnotationPath="@UI.FieldGroup"/>
              <PropertyValue Property="Label" String="Product properties"/>
            </Record>
            <Record Type="UI.ReferenceFacet">
              <PropertyValue Property="Target" AnnotationPath="_Parts/@UI.LineItem"/>
              <PropertyValue Property="Label" String="Parts"/>
            </Record>
          </Collection>
        </Annotation>
      </Annotations>
      <Annotations Target="SampleService.EntityContainer/Products">
        <Annotation Term="Common.DraftRoot">
          <Record Type="Common.DraftRootType">
            <PropertyValue Property="ActivationAction" String="SampleService.draftActivate"/>
            <PropertyValue Property="EditAction" String="SampleService.draftEdit"/>
            <PropertyValue Property="PreparationAction" String="SampleService.draftPrepare"/>
          </Record>
        </Annotation>
      </Annotations>
      <Annotations Target="SampleService.Products/ID">
        <Annotation Term="Common.Label" String="ID"/>
      </Annotations>
      <Annotations Target="SampleService.Products/name">
        <Annotation Term="Common.Label" String="Product name"/>
      </Annotations>
      <Annotations Target="SampleService.Products/amount">
        <Annotation Term="Common.Label" String="Amount"/>
      </Annotations>
      <Annotations Target="SampleService.Products/categoryID">
        <Annotation Term="Common.Label" String="Category ID"/>
      </Annotations>
      <Annotations Target="SampleService.Products/IsActiveEntity">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Products/HasActiveEntity">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Products/HasDraftEntity">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Products/DraftAdministrativeData">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Parts">
        <Annotation Term="UI.LineItem">
          <Collection>
            <Record Type="UI.DataField">
              <PropertyValue Property="Value" Path="ID"/>
            </Record>
            <Record Type="UI.DataField">
              <PropertyValue Property="Value" Path="description"/>
            </Record>
            <Record Type="UI.DataField">
              <PropertyValue Property="Value" Path="quantity"/>
            </Record>
          </Collection>
        </Annotation>
      </Annotations>
      <Annotations Target="SampleService.Parts/ID">
        <Annotation Term="Common.Label" String="ID"/>
      </Annotations>
      <Annotations Target="SampleService.Parts/description">
        <Annotation Term="Common.Label" String="Part description"/>
      </Annotations>
      <Annotations Target="SampleService.Parts/quantity">
        <Annotation Term="Common.Label" String="Quantity"/>
      </Annotations>
      <Annotations Target="SampleService.EntityContainer/Category">
        <Annotation Term="Common.DraftNode">
          <Record Type="Common.DraftNodeType">
            <PropertyValue Property="PreparationAction" String="SampleService.draftPrepare"/>
          </Record>
        </Annotation>
      </Annotations>
      <Annotations Target="SampleService.Category/name">
        <Annotation Term="Common.Label" String="Category name"/>
      </Annotations>
      <Annotations Target="SampleService.Category/IsActiveEntity">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Category/HasActiveEntity">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Category/HasDraftEntity">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.Category/DraftAdministrativeData">
        <Annotation Term="UI.Hidden" Bool="true"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData">
        <Annotation Term="Common.Label" String="{i18n>Draft_DraftAdministrativeData}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/DraftUUID">
        <Annotation Term="UI.Hidden" Bool="true"/>
        <Annotation Term="Common.Label" String="{i18n>Draft_DraftUUID}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/CreationDateTime">
        <Annotation Term="Common.Label" String="{i18n>Draft_CreationDateTime}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/CreatedByUser">
        <Annotation Term="Common.Label" String="{i18n>Draft_CreatedByUser}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/DraftIsCreatedByMe">
        <Annotation Term="UI.Hidden" Bool="true"/>
        <Annotation Term="Common.Label" String="{i18n>Draft_DraftIsCreatedByMe}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/LastChangeDateTime">
        <Annotation Term="Common.Label" String="{i18n>Draft_LastChangeDateTime}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/LastChangedByUser">
        <Annotation Term="Common.Label" String="{i18n>Draft_LastChangedByUser}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/InProcessByUser">
        <Annotation Term="Common.Label" String="{i18n>Draft_InProcessByUser}"/>
      </Annotations>
      <Annotations Target="SampleService.DraftAdministrativeData/DraftIsProcessedByMe">
        <Annotation Term="UI.Hidden" Bool="true"/>
        <Annotation Term="Common.Label" String="{i18n>Draft_DraftIsProcessedByMe}"/>
      </Annotations>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>