Share via


1.3 Overview

Mapping specification language (MSL) is an XML-based file format that describes the mapping between a conceptual schema and a store schema and is based on standards that are described in [XML1.0] and [XMLSCHEMA1]. The root of MSL is a Mapping element that has the EntityContainerMapping child element which, in turn, has the following child elements:

Conceptually, an MSL file has an overall structure that resembles the following.

 <Mapping>
     <EntityContainerMapping>
         <EntitySetMapping>
             <QueryView/>
             <EntityTypeMapping>
                 <MappingFragment>
                     <ComplexProperty>
                         <ScalarProperty/>
                         <ComplexProperty/>
                         <ComplexTypeMapping/>
                         <Condition/>
                     </ComplexProperty>
                     <ScalarProperty/>
                     <Condition/>
                 </MappingFragment>
                 <ModificationFunctionMapping>
                     <DeleteFunction>
                         <ScalarProperty/>
                         <AssociationEnd/>
                         <ComplexProperty/>
                     </DeleteFunction>
                     <InsertFunction>
                         <ScalarProperty/>
                         <AssociationEnd/>
                         <ComplexProperty/>
                         <ResultBinding/>
                     </InsertFunction>
                     <UpdateFunction>
                         <ScalarProperty/>
                         <AssociationEnd/>
                         <ComplexProperty/>
                         <ResultBinding/>
                     </UpdateFunction>
                 </ModificationFunctionMapping>
             </EntityTypeMapping>
             <MappingFragment
                 <ComplexProperty
                     <ScalarProperty/>
                     <ComplexProperty/>
                     <ComplexTypeMapping/>
                     <Condition/>
                 <ScalarProperty/>
                 <Condition/>
         </EntitySetMapping>
         <AssociationSetMapping>
             <QueryView/>
             <EndProperty>
                 <ScalarProperty/>
             </EndProperty>
             <Condition/>
             <ModificationFunctionMapping>
                 <DeleteFunction>
                     <EndProperty>
                         <ScalarProperty/>
                     </EndProperty>
                 </DeleteFunction>
                 <InsertFunction>
                     <EndProperty>
                         <ScalarProperty/>
                     </EndProperty>
                 </InsertFunction>
             </ModificationFunctionMapping>
         </AssociationSetMapping>
         <FunctionImportMapping>
             <ResultMapping>
                 <EntityTypeMapping>
                     <ScalarProperty/>
                     <Condition/>
                 </EntityTypeMapping>
                 <ComplexTypeMapping>
                     <ScalarProperty/> 
                 </ComplexTypeMapping>
             </ResultMapping>
         </FunctionImportMapping>
     </EntityContainerMapping>
 </Mapping>

Note The preceding code snippet is not a detailed specification; it is meant to provide a visual overview. For a detailed specification, see section 2.1.1.

The following figure shows how MSL defines the mapping between the conceptual schema, specified in [MC-CSDL], and the store schema, specified in [MS-SSDL].

MSL defines the mapping between CSDL and SSDL

Figure 1: MSL defines the mapping between CSDL and SSDL