遍列schema代码

Code

class XmlSchemaTraverseExample

{

    static void Main()

    {

        // Add the customer schema to a new XmlSchemaSet and compile it.

        // Any schema validation warnings and errors encountered reading or 

        // compiling the schema are handled by the ValidationEventHandler delegate.

        XmlSchemaSet schemaSet = new XmlSchemaSet();

        schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);

        schemaSet.Add("http://www.ecidh.com/szeport/BLC_CHARGEUPIN", "c:\\blcchargeupin.xsd");

        schemaSet.Compile();



        // Retrieve the compiled XmlSchema object from the XmlSchemaSet

        // by iterating over the Schemas property.

        XmlSchema customerSchema = null;

        foreach (XmlSchema schema in schemaSet.Schemas())

        {

            customerSchema = schema;

        }

        foreach (XmlSchemaElement element in customerSchema.Elements.Values)

        {

            Console.WriteLine("{1}Element: {0}", element.Name, "\t");

            ReadElement(element,);

            

        }

        Console.Read();

        // Iterate over each XmlSchemaElement in the Values collection

        // of the Elements property.

      

    }

    static void ReadElement(XmlSchemaElement element,int i)

    {

        i++;

        string t = "\t";

        for (int l = ; l < i; l++)

        {

            t += "\t";

        }

       



        // Get the complex type of the Customer element.

        XmlSchemaComplexType complexType = element.ElementSchemaType as XmlSchemaComplexType;



        // If the complex type has any attributes, get an enumerator 

        // and write each attribute name to the console.

        if (complexType.AttributeUses.Count > )

        {

            IDictionaryEnumerator enumerator =

                complexType.AttributeUses.GetEnumerator();



            while (enumerator.MoveNext())

            {

                XmlSchemaAttribute attribute =

                    (XmlSchemaAttribute)enumerator.Value;



                Console.WriteLine("{1}Attribute: {0}", attribute.Name,t);

            }

        }



        // Get the sequence particle of the complex type.

        XmlSchemaSequence sequence = complexType.ContentTypeParticle as XmlSchemaSequence;



        // Iterate over each XmlSchemaElement in the Items collection.

        foreach (XmlSchemaElement childElement in sequence.Items)

        {

            Console.WriteLine("{1}Element: {0}", childElement.Name,t);

            if (childElement.ElementSchemaType is XmlSchemaComplexType)

            {

                ReadElement(childElement, i);

            }



        }

    }

    static void ValidationCallback(object sender, ValidationEventArgs args)

    {

        if (args.Severity == XmlSeverityType.Warning)

            Console.Write("WARNING: ");

        else if (args.Severity == XmlSeverityType.Error)

            Console.Write("ERROR: ");



        Console.WriteLine(args.Message);

    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

ASP.NET常用导出Excel方法汇总

本文转载:http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html

81320
来自专栏.net core新时代

List,DataTable实现行转列的通用方案

  最近在做报表统计方面的需求,涉及到行转列报表。根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列。期间遇到几个问题和用到的新...

24970
来自专栏

使用handler"不落地"返回图片信息

12010
来自专栏哲学驱动设计

090603 T LINQ的一个小问题

string strCityId = condition.CityId.ToString(); string startChar = strCityId + "...

20390
来自专栏c#开发者

向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)

如果实现?? protected System.Web.UI.WebControls.DataGrid DataGrid1; /// <summary>...

513120
来自专栏C# 编程

C#泛型类的简单创建与使用

using System; using System.Collections.Generic; using System.Linq; using System...

21900
来自专栏跟着阿笨一起玩NET

把DataTable 转换成Json格式,适用于EasyUI 绑定DataGrid

本文转载:http://www.cnblogs.com/liang--liang/archive/2013/02/05/2893030.html

16320
来自专栏我和未来有约会

xml-rpc(2)-first demo_v2

[XmlRpcMethod("blogger.getUsersBlogs", Description = "获取博客信息")]         public B...

21150
来自专栏魂祭心

原 WCF学习之旅----基础篇之NET

29480
来自专栏liulun

WEB项目后端跨域请求

using System; using System.Collections.Generic; using System.IO; using System.Li...

209100

扫码关注云+社区

领取腾讯云代金券