Entity Framework: CSDL, MSL and SSDL Schemas

Due to the lack of a designer and because I am very curious, I’ve been digging through the XML for the CSDL, MSL and a little bit into the SSDL schemas for the Entity Framework’s Entity Data Model. Even if you are waiting for the Designer to be released (date TBD) it cannot hurt to get familiar with these XML file structures. For example, the MSDL’s schema supports the following for the mapping Conditions:


<!-- Type for Condition Element-->

  <xs:complexType name="TCondition">

    <xs:attribute ref="tns:Value" use="optional" />

    <xs:attribute ref="tns:Name" use="optional" />

    <xs:attribute ref="tns:ColumnName" use="optional" />

    <xs:attribute ref="tns:IsNull" use="optional" />



Currently the conditions in mapping only allow you to compare a column to a scalar value or to check for NULL. You can create multiple conditions, which will create an AND situation. However you cannot combine the conditions with OR’s (i.e. you can’t say get all orders > $10,000 or  orders < $100).  In fact, nor can you compare values at this point (i.e. < ). These features are surely going to be in future versions, though.




By having the XSD’s for the CSDL, MSL AND SSDL you can explore what options are available even if the intellisense is not working in the latest CTP J (which has happened to me at times). For example, I noticed that complex properties are in the schema, however they are not fully supported at this time. But at least this gives me a glimpse at what might be supported in the future.


I open the XSD’s in Visual Studio.NET Orcas, but of course you can use other tools like XML Spy. Here is a snapshot of the TableMappingFragment’s schema from the MSL file:




If you are looking for the XSD’s, you can find them in the March Orcas CTP located at this folder:


C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas


And the file names are:

-          CSDLSchema.xsd

-          CSMSL.xsd

-          SSDLSchema.xsd

Tweet Post Share Update RSS

Hi, I'm John Papa. I author this blog, create courses for Pluralsight and am a Google Developer Expert and Microsoft Regional Director. I travel speaking at events and train technology thought leaders