XmlSchemaResource.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / XmlSchemaResource.cs / 1305376 / XmlSchemaResource.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner       [....]
// @backupOwner [....] 
//--------------------------------------------------------------------- 
using System.Diagnostics;
using System.Data.Mapping; 
using System.Data.Metadata.Edm;
using System.Collections.Generic;

namespace System.Data.EntityModel.SchemaObjectModel 
{
    internal struct XmlSchemaResource 
    { 
        private static XmlSchemaResource[] EmptyImportList = new XmlSchemaResource[0];
        public XmlSchemaResource(string namespaceUri, string resourceName, XmlSchemaResource[] importedSchemas) 
        {
            Debug.Assert(!string.IsNullOrEmpty(namespaceUri), "namespaceUri is null or empty");
            Debug.Assert(!string.IsNullOrEmpty(resourceName), "resourceName is null or empty");
            Debug.Assert(importedSchemas != null, "importedSchemas is null"); 
            NamespaceUri = namespaceUri;
            ResourceName = resourceName; 
            ImportedSchemas = importedSchemas; 
        }
        public XmlSchemaResource(string namespaceUri, string resourceName) 
        {
            Debug.Assert(!string.IsNullOrEmpty(namespaceUri), "namespaceUri is null or empty");
            Debug.Assert(!string.IsNullOrEmpty(resourceName), "resourceName is null or empty");
            NamespaceUri = namespaceUri; 
            ResourceName = resourceName;
            ImportedSchemas = EmptyImportList; 
        } 
        internal string NamespaceUri;
        internal string ResourceName; 
        internal XmlSchemaResource[] ImportedSchemas;


        ///  
        /// Builds a dictionary from XmlNamespace to XmlSchemaResource of both C and S space schemas
        ///  
        /// The built XmlNamespace to XmlSchemaResource dictionary. 
        internal static Dictionary GetMetadataSchemaResourceMap(double schemaVersion)
        { 
            Dictionary schemaResourceMap = new Dictionary(StringComparer.Ordinal);
            AddEdmSchemaResourceMapEntries(schemaResourceMap, schemaVersion);
            AddStoreSchemaResourceMapEntries(schemaResourceMap, schemaVersion);
            return schemaResourceMap; 
        }
 
        ///  
        /// Adds Store schema resource entries to the given XmlNamespace to XmlSchemaResoure map
        ///  
        /// The XmlNamespace to XmlSchemaResource map to add entries to.
        internal static void AddStoreSchemaResourceMapEntries(Dictionary schemaResourceMap, double schemaVersion)
        {
            XmlSchemaResource[] ssdlImports = { new XmlSchemaResource(XmlConstants.EntityStoreSchemaGeneratorNamespace, "System.Data.Resources.EntityStoreSchemaGenerator.xsd") }; 
            XmlSchemaResource ssdlSchema = new XmlSchemaResource(XmlConstants.TargetNamespace_1, "System.Data.Resources.SSDLSchema.xsd", ssdlImports);
            schemaResourceMap.Add(ssdlSchema.NamespaceUri, ssdlSchema); 
 
            if (schemaVersion == XmlConstants.StoreVersionForV2)
            { 
                XmlSchemaResource ssdlSchema2 = new XmlSchemaResource(XmlConstants.TargetNamespace_2, "System.Data.Resources.SSDLSchema_2.xsd", ssdlImports);
                schemaResourceMap.Add(ssdlSchema2.NamespaceUri, ssdlSchema2);
            }
 
            XmlSchemaResource providerManifest = new XmlSchemaResource(XmlConstants.ProviderManifestNamespace, "System.Data.Resources.ProviderServices.ProviderManifest.xsd");
            schemaResourceMap.Add(providerManifest.NamespaceUri, providerManifest); 
        } 

        ///  
        /// Adds Mapping schema resource entries to the given XmlNamespace to XmlSchemaResoure map
        /// 
        /// The XmlNamespace to XmlSchemaResource map to add entries to.
        internal static void AddMappingSchemaResourceMapEntries(Dictionary schemaResourceMap, double schemaVersion) 
        {
            XmlSchemaResource msl1 = new XmlSchemaResource(StorageMslConstructs.NamespaceUriV1, StorageMslConstructs.ResourceXsdNameV1); 
            schemaResourceMap.Add(msl1.NamespaceUri, msl1); 

            if (schemaVersion == XmlConstants.EdmVersionForV2) 
            {
                XmlSchemaResource msl2 = new XmlSchemaResource(StorageMslConstructs.NamespaceUriV2, StorageMslConstructs.ResourceXsdNameV2);
                schemaResourceMap.Add(msl2.NamespaceUri, msl2);
            } 
        }
 
        ///  
        /// Adds Edm schema resource entries to the given XmlNamespace to XmlSchemaResoure map,
        /// when calling from SomSchemaSetHelper.ComputeSchemaSet(), all the imported xsd will be included 
        /// 
        /// The XmlNamespace to XmlSchemaResource map to add entries to.
        internal static void AddEdmSchemaResourceMapEntries(Dictionary schemaResourceMap, double schemaVersion)
        { 
            XmlSchemaResource[] csdlImports = { new XmlSchemaResource(XmlConstants.CodeGenerationSchemaNamespace, "System.Data.Resources.CodeGenerationSchema.xsd") };
            XmlSchemaResource[] csdl2Imports = { 
                new XmlSchemaResource(XmlConstants.CodeGenerationSchemaNamespace, "System.Data.Resources.CodeGenerationSchema.xsd"), 
                new XmlSchemaResource(XmlConstants.AnnotationNamespace, "System.Data.Resources.AnnotationSchema.xsd") };
 
            XmlSchemaResource csdlSchema_1 = new XmlSchemaResource(XmlConstants.ModelNamespace_1, "System.Data.Resources.CSDLSchema_1.xsd", csdlImports);
            schemaResourceMap.Add(csdlSchema_1.NamespaceUri, csdlSchema_1);

            XmlSchemaResource csdlSchema_1_1 = new XmlSchemaResource(XmlConstants.ModelNamespace_1_1, "System.Data.Resources.CSDLSchema_1_1.xsd", csdlImports); 
            schemaResourceMap.Add(csdlSchema_1_1.NamespaceUri, csdlSchema_1_1);
 
            if (schemaVersion == XmlConstants.EdmVersionForV2) 
            {
                XmlSchemaResource csdlSchema_2 = new XmlSchemaResource(XmlConstants.ModelNamespace_2, "System.Data.Resources.CSDLSchema_2.xsd", csdl2Imports); 
                schemaResourceMap.Add(csdlSchema_2.NamespaceUri, csdlSchema_2);
            }
        }
    } 

} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK