5.1 CSDLBI Schema 1.0

 <?xml version="1.0" encoding="utf-8"?>
 <xs:schema id="bi"
     targetNamespace="http://schemas.microsoft.com/sqlbi/2010/10/edm/extensions"
     elementFormDefault="qualified"
     xmlns:bi="http://schemas.microsoft.com/sqlbi/2010/10/edm/extensions"
     xmlns:edm="http://schemas.microsoft.com/ado/2008/09/edm"
     xmlns:xs="http://www.w3.org/2001/XMLSchema">
  
   <xs:import namespace="http://schemas.microsoft.com/ado/2008/09/edm" schemaLocation="System.Data.Resources.CSDLSchema_2.xs"/>
  
   <xs:element name="EntityContainer" type="bi:TEntityContainer"/>
   <xs:element name="EntitySet" type="bi:TEntitySet"/>
   <xs:element name="AssociationSet" type="bi:TAssociationSet"/>
   <xs:element name="EntityType" type="bi:TEntityType"/>
   <xs:element name="Property" type="bi:TProperty"/>
   <xs:element name="NavigationProperty" type="bi:TNavigationProperty"/>
   <xs:element name="Measure" type="bi:TMeasure"/>
   <xs:element name="SourceDescription" type="xs:string" />
  
   <xs:complexType name="TEntityContainer">
     <xs:sequence>
       <xs:element name="CompareOptions" type="bi:TCompareOptions" />
     </xs:sequence>
     <xs:attribute name="Caption" type="xs:string" use="optional"/>
     <xs:attribute name="Culture" type="xs:string" />
     <xs:attribute name="DirectQueryMode" type="bi:TDirectQueryMode" />
   </xs:complexType>
  
   <xs:simpleType name="TDirectQueryMode">
     <xs:restriction base="xs:string">
       <xs:enumeration value="InMemory" />
       <xs:enumeration value="InMemoryWithDirectQuery" />
       <xs:enumeration value="DirectQueryWithInMemory" />
       <xs:enumeration value="DirectQuery" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:complexType name="TCompareOptions">
     <xs:attribute name="IgnoreCase" type="xs:boolean" default="false" />
     <xs:attribute name="IgnoreNonSpace" type="xs:boolean" default="false" />
     <xs:attribute name="IgnoreKanaType" type="xs:boolean" default="false" />
     <xs:attribute name="IgnoreWidth" type="xs:boolean" default="false" />
   </xs:complexType>
  
   <xs:complexType name="TEntitySet">
     <xs:attribute name="Caption" type="xs:string" use="optional"/>
     <xs:attribute name="CollectionCaption" type="xs:string" use="optional"/>
     <xs:attribute name="ReferenceName" type="xs:string" use="optional"/>
     <xs:attribute name="Hidden" type="xs:boolean" default="false" use="optional"/>
     <xs:attribute name="LineageTag" type="xs:string" use="optional"/>
     <xs:attribute name="Private" type="xs:boolean" default="false" use="optional"/>
     <xs:attribute name="ShowAsVariationsOnly" type="xs:boolean" default="false" use="optional"/>
   </xs:complexType>
  
   <xs:complexType name="TAssociationSet">
     <xs:attribute name="State" type="bi:TState" default="Active"/>
     <xs:attribute name="Hidden" type="xs:boolean" default="false" />
   </xs:complexType>
  
   <xs:simpleType name="TState">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Active" />
       <xs:enumeration value="Inactive" />
     </xs:restriction>
   </xs:simpleType>
  
    <xs:complexType name="TEntityType">
     <xs:sequence>
       <xs:element name="DisplayKey" type="bi:TMemberRefs" minOccurs="0" maxOccurs="1" />
       <xs:element name="DefaultDetails" type="bi:TMemberRefs" minOccurs="0" maxOccurs="1"/>
       <xs:element name="DefaultImage" minOccurs="0" maxOccurs="1">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="MemberRef" type="bi:TMemberRef" minOccurs="1" maxOccurs="1" />
           </xs:sequence>
         </xs:complexType>
       </xs:element>
       <xs:element name="DefaultMeasure" minOccurs="0" maxOccurs="1">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="MemberRef" type="bi:TMemberRef" minOccurs="1" maxOccurs="1" />
           </xs:sequence>
         </xs:complexType>
       </xs:element>
       <xs:element name="SortMembers" type="bi:TMemberRefs" minOccurs="0" maxOccurs="1" />
       <xs:element name="DisplayFolders" type="bi:TDisplayFolders" minOccurs="0" maxOccurs="1" />
     </xs:sequence>
     <xs:attribute name="Contents" type="xs:string" default="Regular" use="optional"/>
     <xs:attribute name="IsCalculationGroup" type="xs:boolean" default="false" use="optional"/>
   </xs:complexType>
  
   <xs:complexType name="TDisplayFolders">
     <xs:sequence>
      <xs:element name="DisplayFolder" type="bi:TDisplayFolder" minOccurs="0" maxOccurs="unbounded" />
     </xs:sequence>
   </xs:complexType>
  
   <xs:complexType name="TDisplayFolder">
     <xs:sequence>
      <xs:element name="PropertyRef" type="bi:TPropertyRef" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="DisplayFolder" type="bi:TDisplayFolder" minOccurs="0" maxOccurs="unbounded" />
     </xs:sequence>
     <xs:attribute name="Name" type="xs:string" use="required" />
     <xs:attribute name="Caption" type="xs:string" use="optional" />
   </xs:complexType>
  
   <xs:complexType name="TMemberRefs">
     <xs:sequence>
       <xs:element name="MemberRef" type="bi:TMemberRef" minOccurs="1" maxOccurs="unbounded" />
     </xs:sequence>
   </xs:complexType>
  
   <xs:complexType name="TMemberRef">
     <xs:attribute name="Name" type="xs:string" use="required" />
   </xs:complexType>
  
   <xs:complexType name="TMember" abstract="true">
     <xs:attribute name="Caption" type="xs:string" use="optional"/>
     <xs:attribute name="ContextualNameRule" type="bi:TContextualNameRule" default="None" />
     <xs:attribute name="Hidden" type="xs:boolean" default="false" />
     <xs:attribute name="ReferenceName" type="xs:string" use="optional" />
     <xs:attribute name="LineageTag" type="xs:string" use="optional" />
   </xs:complexType>
  
   <xs:simpleType name="TContextualNameRule">
     <xs:restriction base="xs:string">
       <xs:enumeration value="None" />
       <xs:enumeration value="Context" />
       <xs:enumeration value="Merge" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:complexType name="TDocumentation">
     <xs:sequence>
       <xs:element name="Summary" type="xs:string" minOccurs="0" maxOccurs="1" />
     </xs:sequence>
   </xs:complexType>
  
   <xs:complexType name="TProperty">
     <xs:complexContent>
       <xs:extension base="bi:TBaseProperty">
         <xs:sequence>
           <xs:element name="OrderBy" type="bi:TPropertyRefs" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
         <xs:attribute name="Private" type="xs:boolean" default="false" use="optional"/>
         <xs:attribute name="Contents" type="bi:TContents" use="optional" default="Regular"/>
         <xs:attribute name="DefaultAggregateFunction" type="bi:TDefaultAggregateFunction"  default="Default" />
         <xs:attribute name="GroupingBehavior" type="bi:TGroupingBehavior" default="GroupOnValue"/>
         <xs:attribute name="Stability" type="bi:TStability" default="Stable"/>
         <xs:attribute name="AggregateBehavior" type="xs:boolean" default="true" use="optional"/>
         <xs:attribute name="LocaleImpact" type="xs:boolean" default="false" use="optional"/>
         <xs:attribute name="IsError" type="xs:boolean" default="false" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
  
   <xs:simpleType name="TContents">
     <xs:restriction base="xs:string" />
   </xs:simpleType>
  
   <xs:simpleType name="TDefaultAggregateFunction">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Default" />
       <xs:enumeration value="None" />
       <xs:enumeration value="Sum" />
       <xs:enumeration value="Count" />
       <xs:enumeration value="Average" />
       <xs:enumeration value="Min" />
       <xs:enumeration value="Max" />
       <xs:enumeration value="DistinctCount" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:simpleType name="TGroupingBehavior">
     <xs:restriction base="xs:string">
       <xs:enumeration value="GroupOnValue" />
       <xs:enumeration value="GroupOnEntityKey" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:simpleType name="TStability">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Stable" />
       <xs:enumeration value="RowNumber" />
       <xs:enumeration value="Volatile" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:complexType name="TBaseProperty" abstract="true">
     <xs:complexContent>
       <xs:extension base="bi:TMember">
         <xs:attribute name="Alignment" type="bi:TAlignment" use="optional"/>
         <xs:attribute name="FormatString" type="xs:string" use="optional"/>
         <xs:attribute name="Units" type="xs:string" use="optional" />
         <xs:attribute name="SortDirection" type="bi:TSortDirection" default="Default"/>
         <xs:attribute name="IsRightToLeft" type="xs:boolean" default="false"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
  
   <xs:simpleType name="TAlignment">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Default" />
       <xs:enumeration value="Left" />
       <xs:enumeration value="Right" />
       <xs:enumeration value="Center" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:simpleType name="TSortDirection">
     <xs:restriction base="xs:string">
       <xs:enumeration value="Default" />
       <xs:enumeration value="Ascending" />
       <xs:enumeration value="Descending" />
     </xs:restriction>
   </xs:simpleType>
  
   <xs:complexType name="TPropertyRefs">
     <xs:sequence>
       <xs:element name="PropertyRef" type="bi:TPropertyRef" minOccurs="1" maxOccurs="unbounded" />
     </xs:sequence>
   </xs:complexType>
  
   <xs:complexType name="TPropertyRef">
     <xs:attribute name="Name" type="xs:string" use="required" />
   </xs:complexType>
  
   <xs:complexType name="TMeasure">
     <xs:complexContent>
       <xs:extension base="bi:TBaseProperty">
         <xs:sequence>
         <xs:element name="DistributiveBy" type="bi:TDistributiveBy" minOccurs="0" maxOccurs="1"/>
         <xs:attribute name="Private" type="xs:boolean" default="false" use="optional" />
         <xs:attribute name="IsSimpleMeasure" type="xs:boolean" default="true"/>
         <xs:attribute name="Contents" type="xs:string" />
         <xs:attribute name="IsError" type="xs:boolean" default="false"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
  
   <xs:simpleType name="TAggregationKind">
     <xs:restriction base="xs:string">
      <xs:enumeration value="Default" />
      <xs:enumeration value="None" />
      <xs:enumeration value="Sum" />
      <xs:enumeration value="Min" />
      <xs:enumeration value="Max" />
      <xs:enumeration value="Count" />
      <xs:enumeration value="Average" />
      <xs:enumeration value="DistinctCount" />
     </xs:restriction>
    </xs:simpleType>
  
   <xs:complexType name="TEntityRef">
     <xs:attribute name="Name" type="xs:string" use="required" />
   </xs:complexType>
  
   <xs:complexType name="TNavigationProperty">
     <xs:complexContent>
       <xs:extension  base="bi:TMember">
         <xs:attribute name="CollectionCaption" type="xs:string" use="optional"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
  
 </xs:schema>