Beispiel #1
0
        private void MergeDiscoveredTaxonomy(string fn, Taxonomy depTax, out int numErrors )
        {
            numErrors = 0;
            if (this.dependantTaxonomyFilenames.Contains(fn)) return;

            dependantTaxonomyFilenames.Add(fn);
            dependantTaxonomies.Add(depTax);

            this.infos.Add(new TaxonomyItem(depTax.GetTargetNamespace(), depTax.schemaFile, depTax.GetNSPrefix(), depTax.IsAucentExtension, depTax.DefinesCustomTypes));
            ArrayList tmp;

            //merge the presentation, calculation, definition linkbases...

            if (!this.innerTaxonomy)
            {
                presentationInfo = MergePresentations(presentationInfo, depTax.presentationInfo,
                    out tmp);
                depTax.presentationInfo = null;
                if (tmp.Count > 0)
                {
                    numErrors += tmp.Count;
                    errorList.AddRange(tmp);
                }

                calculationInfo = MergePresentations(calculationInfo,
                    depTax.calculationInfo, out tmp);
                if (tmp.Count > 0)
                {
                    numErrors += tmp.Count;
                    errorList.AddRange(tmp);
                }
                if (this.netDefinisionInfo == null)
                {
                    this.netDefinisionInfo = depTax.netDefinisionInfo;
                }
                else
                {
                    netDefinisionInfo.MergeDimensionLinks(depTax.netDefinisionInfo, out tmp);
                    if (tmp.Count > 0)
                    {
                        numErrors += tmp.Count;
                        errorList.AddRange(tmp);
                    }

                }
            }
        }