public bool LoadTaxonomyDocument(string filepath, XbrlTaxonomyDocument parent) { //if (filepath.Contains("header-rend.xml")) //{ //} var result = true; MarkupPath = filepath; var sourcepath = filepath; if (parent != null) { if (Utilities.Strings.IsRelativePath(MarkupPath)) { sourcepath = Utilities.Strings.ResolveRelativePath(parent.SourceFolder, MarkupPath); } } var localpath = Utilities.Strings.GetLocalPath(XbrlEngine.LocalFolder, sourcepath); SetLocalPath(localpath); SetSourcePath(sourcepath); //moved to FileManager.cs try { Utilities.Strings.CopyToLocal(sourcepath, localpath, false); LoadDocument(); XbrlTaxonomy.SetTargetNamespace(this); } catch (Exception ex) { Logger.WriteLine(String.Format("Can't get source file {0}. Error: {1}", sourcepath, ex)); result = false; } return(result); }
public XbrlTaxonomyDocument(XbrlTaxonomy taxonomy, string filepath) { this.Taxonomy = taxonomy; AddHandlers(); LoadTaxonomyDocument(filepath, null); }
public override bool LoadTaxonomy(string filepath) { if (string.IsNullOrEmpty(filepath)) { return(false); } TaxLoadStartDate = DateTime.Now; if (CurrentTaxonomy != null) { CurrentXbrlTaxonomy.ClearObjects(); CurrentTaxonomy = null; } var isloaded = false; Logger.WriteLine("Loading Taxonomy " + filepath); var taxonomydocument = new XbrlTaxonomyDocument(); if (taxonomydocument.LoadTaxonomyDocument(filepath, null)) { var processedfolder = taxonomydocument.LocalPath.Remove(taxonomydocument.LocalPath.LastIndexOf(".")); Logger.WriteLine("Processed Taxonomy Folder: " + processedfolder); taxonomydocument.ClearDocument(); Trigger_TaxonomyLoad(filepath); CurrentTaxonomy = new XbrlTaxonomy(filepath); CurrentTaxonomy.TaxonomyToUI(); LogicalModel.Helpers.FileManager.Clear(); ////Test //LogicalModel.Settings.Current.ReloadFullTaxonomy = true; //LogicalModel.Settings.Current.ReDownloadFiles= true; ////End test CurrentTaxonomy.FactsManager.maxdictnr = 1000; CurrentTaxonomy.FactsManager.SaveToFile = true; CurrentTaxonomy.FactsManager.DataFolder = CurrentTaxonomy.TaxonomyFactsFolder; //CurrentTaxonomy.FactsManager.ManageLoadedFacts = CurrentTaxonomy.ManageLoadedFacts; CurrentTaxonomy.LoadAllReferences(); CheckMapping(); /* * var metdoc = CurrentXbrlTaxonomy.TaxonomyDocuments.FirstOrDefault(i => i.FileName == "met.xsd"); * CurrentTaxonomy.ConceptNameSpace = metdoc.TargetNamespacePrefix; * */ //CurrentTaxonomy.Prefix = CurrentTaxonomy.ConceptNameSpace.Remove(CurrentTaxonomy.ConceptNameSpace.LastIndexOf("_")) + "_"; CurrentTaxonomy.LoadLabels(); CurrentTaxonomy.LoadSchemaElements(); CurrentTaxonomy.LoadConcepts(); CurrentTaxonomy.LoadDimensions(); CurrentTaxonomy.LoadHierarchy(); CurrentTaxonomy.LoadTables(); CurrentXbrlTaxonomy.ClearXmlObjects(); CurrentTaxonomy.LoadFacts(); //CurrentTaxonomy.LoadHierarchy(); CurrentTaxonomy.LoadUnits(); CurrentTaxonomy.LoadValidationFunctions(); CurrentXbrlTaxonomy.ClearXmlObjects(); CurrentTaxonomy.TaxonomyToUI(); isloaded = true; Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstancePath); Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstanceValidationResultPath); if (!IsInstanceLoading) { this.CurrentInstance = (XbrlInstance)this.CurrentTaxonomy.GetNewInstance(); Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstancePath); Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstanceValidationResultPath); //Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstancePath); this.CurrentInstance.SaveToJson(); } Logger.WriteLine(String.Format("Loading Taxonomy finished in {0:0.0}s", DateTime.Now.Subtract(TaxLoadStartDate.Value).TotalSeconds)); Logger.Flush(); Trigger_TaxonomyLoaded(filepath); } else { Logger.WriteLine("Can't Load Taxonomy " + filepath); Trigger_TaxonomyLoadFailed(filepath); } return(isloaded); }