コード例 #1
0
        public static CIMModelLoaderResult LoadCIMXMLModel(Stream stream, string fileName, out CIMModel model, string enumMappingFilePath = "")
        {
            CIMModelLoaderResult result = new CIMModelLoaderResult();

            try
            {
                bool                success;
                TimeSpan            durationOfParsing = new TimeSpan(0);
                CIMXMLReaderHandler handler           = new CIMXMLReaderHandler();

                handler = (CIMXMLReaderHandler)XMLParser.DoParse(handler, stream, fileName, out success, out durationOfParsing);

                if (success)
                {
                    model = handler.Model;
                }
                else
                {
                    result.Report.AppendLine("Loading CIM model was unsuccessful.");
                    model          = null;
                    result.Success = false;
                }
            }
            catch (Exception e)
            {
                model          = null;
                result.Success = false;
                result.Report.AppendLine("XML FORMAT ERROR! XML FILE: " + Path.GetFileName(fileName) + "\n\t Description: " + e.Message);
            }
            return(result);
        }
コード例 #2
0
        public static CIMModelLoaderResult LoadCIMModelForDifference(ref CIMDifference cimDifference)
        {
            CIMModelLoaderResult result = new CIMModelLoaderResult();

            if (cimDifference != null)
            {
                try
                {
                    bool     success;
                    TimeSpan durationOfParsing;

                    //// call parsing for begin version:
                    CIMRDFComparerXMLHandler handler = new CIMRDFComparerXMLHandler();
                    handler = (CIMRDFComparerXMLHandler)XMLParsingManager.DoParse(handler, XMLParsingManager.ParsingFileTypes.CIMModelFile, cimDifference.Extract, out success, out durationOfParsing);
                    if (success)
                    {
                        cimDifference.Model        = handler.Model;
                        cimDifference.Model.Header = handler.Start;
                        cimDifference.AddRDFNamespaces(handler.Namespaces);
                    }
                    else
                    {
                        throw new Exception("Failed to parse extract RDF. ");
                    }

                    //// call parsing for after version:
                    CIMDifferenceXMLHandler diffHandler = new CIMDifferenceXMLHandler();
                    diffHandler = new CIMDifferenceXMLHandler();
                    diffHandler = (CIMDifferenceXMLHandler)XMLParsingManager.DoParse(diffHandler, XMLParsingManager.ParsingFileTypes.CIMModelFile, cimDifference.Difference, out success, out durationOfParsing);
                    if (success)
                    {
                        cimDifference.Added   = diffHandler.Added;
                        cimDifference.Removed = diffHandler.Removed;
                        cimDifference.AddRDFNamespaces(handler.Namespaces);
                    }
                    else
                    {
                        throw new Exception("Failed to parse difference RDF. ");
                    }
                }
                catch (Exception e)
                {
                    result.Report.AppendLine("Error loading CIM/XML model: " + e.Message);
                    result.Success = false;
                }
            }
            else
            {
                result.Report.AppendLine("CIMDifference is null.");
                result.Success = false;
            }

            return(result);
        }