BExIS.Xml.Helpers.Mapping.XmlSchemaManager.Load C# (CSharp) Метод

Load() публичный Метод

Load Schema from path
public Load ( string path, string username ) : void
path string
username string
Результат void
        public void Load(string path, string username)
        {
            userName = username;

            xsdFilePath = path;
            xsdFileName = path.Split('\\').Last();

            FileName = xsdFileName;

            int countedSchemas = 0;

            XmlReaderSettings settings2 = new XmlReaderSettings();
            settings2.DtdProcessing = DtdProcessing.Ignore;

            XmlReader xsd_file = XmlReader.Create(path, settings2);
            Schema = XmlSchema.Read(xsd_file, verifyErrors);

            countedSchemas = Schema.Includes.Count + 1;

            XmlSchema selectedSchema;

            XmlSchemaSet schemaSet = new XmlSchemaSet();
            schemaSet.ValidationEventHandler += new ValidationEventHandler(verifyErrors);
            schemaSet.Add(Schema);

            schemaSet.Compile();

            if (schemaSet.Count < countedSchemas)
            {
                foreach (XmlSchemaObject additional in Schema.Includes)
                {
                    schemaSet = addToSchemaSet(additional, schemaSet);
                }
            }

            foreach (XmlSchema currentSchema in schemaSet.Schemas())
            {
                selectedSchema = currentSchema;
                Elements.AddRange(GetAllElements(selectedSchema));
                ComplexTypes.AddRange(GetAllComplexTypes(selectedSchema));
                SimpleTypes.AddRange(GetAllSimpleTypes(selectedSchema));
                Groups.AddRange(GetAllGroups(selectedSchema));
                Attributes.AddRange(GetAllAttributes(selectedSchema));
            }

            RefElementNames.AddRange(GetAllRefElementNames(Elements));
            SchemaSet = schemaSet;
            xsd_file.Close();
        }

Usage Example

        public ActionResult GenerateMS()
        {
            //open schema
                XmlSchemaManager xmlSchemaManager = new XmlSchemaManager();

                string root = "";
                string schemaName = "";
                long metadataStructureid = 0;

                TaskManager = (ImportMetadataStructureTaskManager) Session["TaskManager"];

                if (TaskManager.Bus.ContainsKey(ImportMetadataStructureTaskManager.ROOT_NODE))
                    root = TaskManager.Bus[ImportMetadataStructureTaskManager.ROOT_NODE].ToString();

                if (TaskManager.Bus.ContainsKey(ImportMetadataStructureTaskManager.SCHEMA_NAME))
                    schemaName = TaskManager.Bus[ImportMetadataStructureTaskManager.SCHEMA_NAME].ToString();

                string path = TaskManager.Bus[ImportMetadataStructureTaskManager.FILEPATH].ToString();
                //path = @"https://code.ecoinformatics.org/code/eml/tags/RELEASE_EML_2_1_1/eml.xsd";

                ReadSourceModel model = new ReadSourceModel(TaskManager.Current());
                model.SchemaName = schemaName;
                model.RootNode = root;

                try
                {
                    //file.WriteLine("check schema exist");
                    if (SchemaNameExist(schemaName))
                    {
                        model.ErrorList.Add(new Error(ErrorType.Other,
                            "A Metadata structure with this name already exist. Please choose a other name."));
                    }
                    else
                    if (String.IsNullOrEmpty(schemaName))
                    {
                        model.ErrorList.Add(new Error(ErrorType.Other, "A Metadata structure must have a name."));
                    }
                    else
                        xmlSchemaManager.Load(path, GetUserNameOrDefault());

                    if (!String.IsNullOrEmpty(model.RootNode) && !xmlSchemaManager.Elements.Any(e => e.Name.Equals(model.RootNode)))
                    {
                        model.ErrorList.Add(new Error(ErrorType.Other, "Root node not exist"));
                    }

                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    model.ErrorList.Add(new Error(ErrorType.Other, "Can not create metadatastructure."));
                    throw ex;
                }

                if (model.ErrorList.Count == 0)
                {
                    try
                    {
                        metadataStructureid = xmlSchemaManager.GenerateMetadataStructure(root, schemaName);
                    }
                    catch (Exception ex)
                    {
                        xmlSchemaManager.Delete(schemaName);
                        ModelState.AddModelError("", ex.Message);
                        model.ErrorList.Add(new Error(ErrorType.Other, "Can not create metadatastructure."));
                    }
                }

                TaskManager.AddToBus(ImportMetadataStructureTaskManager.MAPPING_FILE_NAME_IMPORT,
                    xmlSchemaManager.mappingFileNameImport);
                TaskManager.AddToBus(ImportMetadataStructureTaskManager.MAPPING_FILE_NAME_EXPORT,
                    xmlSchemaManager.mappingFileNameExport);

                model.StepInfo.notExecuted = false;

                if (model.ErrorList.Count == 0)
                {
                    model.IsGenerated = true;

                    if (TaskManager.Bus.ContainsKey(ImportMetadataStructureTaskManager.IS_GENERATE))
                        TaskManager.Bus[ImportMetadataStructureTaskManager.IS_GENERATE] = true;
                    else
                        TaskManager.Bus.Add(ImportMetadataStructureTaskManager.IS_GENERATE, true);

                    if (TaskManager.Bus.ContainsKey(ImportMetadataStructureTaskManager.METADATASTRUCTURE_ID))
                        TaskManager.Bus[ImportMetadataStructureTaskManager.METADATASTRUCTURE_ID] = metadataStructureid;
                    else
                        TaskManager.Bus.Add(ImportMetadataStructureTaskManager.METADATASTRUCTURE_ID, metadataStructureid);
                }

            return PartialView("ReadSource",model);
        }
All Usage Examples Of BExIS.Xml.Helpers.Mapping.XmlSchemaManager::Load