コード例 #1
0
        private void ValidateInstanceDoc( Taxonomy tax,
			string fileName, int countErrors, Hashtable prefixXRef )
        {
            Instance ins = new Instance();
            ArrayList errs;
            if( !ins.TryLoadInstanceDoc( fileName, out errs ))
            {
                Assert.Fail( "Failed to load instance document" + fileName);
            }
            foreach( MarkupProperty mp in ins.markups )
            {
                if ( prefixXRef[mp.elementPrefix] != null )
                {
                    string realPrefix = prefixXRef[mp.elementPrefix] as string;
                    mp.elementPrefix = realPrefix;
                    mp.elementId = string.Format(DocumentBase.ID_FORMAT, mp.elementPrefix, mp.elementName);

                }

            }
            string[] validationErrors;
            tax.ValidateInstanceInformationForRequiresElementCheck( ins, out validationErrors );

            Assert.IsNotNull( validationErrors , "Validation errors object should not be null");
            foreach( string str in validationErrors )
            {
                Console.WriteLine( str );
            }
            Assert.AreEqual( countErrors, validationErrors.Length,"Failed to ValidateInstanceInformationForRequiresElementCheck");
        }
コード例 #2
0
        public void TestPerformSECValidations2()
        {
            Taxonomy tax = new Taxonomy();

            tax.Load(@"S:\TESTSCHEMAS\BEN Taxonomy\ben-20091231.xsd");
            int errors;
            Assert.IsTrue(tax.Parse(out errors), "Failed to parse taxonomy");

            Instance ins = new Instance();
            ArrayList errorsstr;
            Assert.IsTrue(ins.TryLoadInstanceDoc(@"S:\TESTSCHEMAS\BEN Taxonomy\ben-20091231.xml", out errorsstr));

            Dictionary<string, bool> eleDt = new Dictionary<string,bool>();
            List<MarkupProperty> validMarkups = new List<MarkupProperty>();
            foreach (MarkupProperty mp in ins.markups)
            {
                mp.element = new Node( tax.allElements[mp.elementId] as Element);
               eleDt[mp.elementId] = true;

                validMarkups.Add(mp);
            }

            List<ValidationErrorInfo> outParam =  new List<ValidationErrorInfo>();
            tax.PerformSECValidations(validMarkups, eleDt, null, false, ref outParam);
            outParam.Sort();
            foreach( ValidationErrorInfo vei in outParam )
            {
                Console.WriteLine( vei.MyErrorString);
            }
        }
コード例 #3
0
ファイル: InstanceUtils.cs プロジェクト: plamikcho/xbrlpoc
        public static bool TryLoadInstanceDocument(string instanceDocPath, 
			out Instance currentInstance, out ArrayList errors)
        {
            errors = new ArrayList();
            currentInstance = new Instance();

            if (currentInstance.TryLoadInstanceDoc( instanceDocPath, out errors ))
            {
                if ( currentInstance.NumAttributeErrors > 0 || currentInstance.NumSchemaErrors > 0 )
                {
                    Console.WriteLine( "Instance doc parsing attribute errors: " + currentInstance.NumAttributeErrors );
                    Console.WriteLine( "Instance doc parsing schema errors: " + currentInstance.NumSchemaErrors );
                }

                return true;
            }
            else
            {
                Console.WriteLine( "TryLoadInstanceDoc failed" );
                errors.Sort();
                foreach ( ParserMessage pm in errors )
                {
                    if ( pm.Level != TraceLevel.Error )
                    {
                        break; // thru the errors
                    }

                    Console.WriteLine( "InstanceDoc error: " + pm.Message );
                }
            }

            return false;
        }
コード例 #4
0
        public void TestLoadTaxonomyFromInstanceDocument_SEC_4Tax_Local_Partial2()
        {
            string copyTo = Path.GetTempFileName();
            string curDir = Path.GetDirectoryName( copyTo );
            string fileName = @"http://www.sec.gov/Archives/edgar/data/908823/000119312506095211/aabxx-20060228.xml";
            string baseHRef = @"http://www.sec.gov/Archives/edgar/data/908823/000119312506095211/";

            WebClient cli = new WebClient();
            cli.DownloadFile( fileName, copyTo );

            Instance ins = new Instance();
            ArrayList errors;
            ins.TryLoadInstanceDoc( copyTo, out errors );
            Taxonomy tax = new Taxonomy();

            Assert.IsTrue(
                tax.LoadTaxonomyFromInstanceDocument( curDir, ins, false, baseHRef ),
                "Failed to load taxonomy." );
        }
コード例 #5
0
        public void TestLoadTaxonomyFromInstanceDocument_SEC_4Tax_Local_HREF()
        {
            string fileName = @"S:\TestSchemas\BaseHRef\Instance\aabxx-20060228.xml";
            string baseHRef = @"S:\TestSchemas\BaseHRef\Instance\";

            Instance ins = new Instance();
            ArrayList errors;
            ins.TryLoadInstanceDoc( fileName, out errors );
            Taxonomy tax = new Taxonomy();

            Assert.IsTrue(
                tax.LoadTaxonomyFromInstanceDocument( Path.GetTempPath(), ins, false, baseHRef ),
                "Failed to load taxonomy" );

            ArrayList nodes = tax.GetNodesByPresentation();
            Assert.IsTrue( nodes.Count >= 16, "should have presentation nodes" );
        }
コード例 #6
0
        public void TestLoadTaxonomyFromInstanceDocument_SEC_4Tax()
        {
            string fileName = @"http://www.sec.gov/Archives/edgar/data/908823/000119312506095211/aabxx-20060228.xml";
            string baseHRef = @"http://www.sec.gov/Archives/edgar/data/908823/000119312506095211/";

            Instance ins = new Instance();
            ArrayList errors;
            ins.TryLoadInstanceDoc( fileName, out errors );
            Taxonomy tax = new Taxonomy();

            Assert.IsTrue(
                tax.LoadTaxonomyFromInstanceDocument( Path.GetTempPath(), ins, false, baseHRef ),
                "Failed to load taxonomy" );

            ArrayList nodes = tax.GetNodesByPresentation();
            Assert.IsTrue( nodes.Count >= 16, "should have presentation nodes" );
        }
コード例 #7
0
        public void TestLoadTaxonomyFromInstanceDocument_SEC_2Tax()
        {
            string fileName = @"http://www.sec.gov/Archives/edgar/data/89800/000095015208008578/shw-20080930.xml";
            string baseHRef = @"http://www.sec.gov/Archives/edgar/data/89800/000095015208008578";

            Instance ins = new Instance();
            ArrayList errors;
            ins.TryLoadInstanceDoc( fileName, out errors );
            Taxonomy tax = new Taxonomy();

            Assert.IsTrue(
                tax.LoadTaxonomyFromInstanceDocument( Path.GetTempPath(), ins, false, baseHRef ),
                "Failed to load taxonomy" );

            ArrayList nodes = tax.GetNodesByPresentation();
            Assert.IsTrue( nodes.Count >= 5, "should have presentation nodes" );
        }
コード例 #8
0
        public void TestLoadTaxonomyFromInstanceDocument()
        {
            string fileName = @"S:\TestSchemas\Instance With TaxonomyInfo.xml";
            Instance ins = new Instance();
            ArrayList errors;
            ins.TryLoadInstanceDoc( fileName, out errors );
            Taxonomy tax = new Taxonomy();

            Assert.IsTrue(
            tax.LoadTaxonomyFromInstanceDocument( @"S:\TestSchemas", ins, false ),
            "Failed to load taxonomy" );

            ArrayList nodes = tax.GetNodesByPresentation();

            Assert.IsTrue( nodes.Count > 10, "should have presentation nodes" );
        }