• XML和关系数据从XSD架构创建数据集映射


    如何从 XSD 架构创建数据集映射

    此示例阐释如何从提供的 XML 架构定义语言 (XSD) 架构创建数据集映射。通常情况下,架构是元数据,或是关于数据的数据,但 XSD 架构还包括数据类型之间的关系。从一个架构中,可以创建表和列的关系结构以存储符合所提供的架构的数据。这就是架构的数据集关系映射。

     
    VB DataSetMapXSDSchema.aspx

    [运行示例] | [查看源代码]

    DataSet 类与 XmlDataDocument 类有紧密的从属关系。DataSet 类提供通过 XmlDataDocument 加载的 XML 数据的关系视图。要生成这两种视图间的关系映射,需要使用数据集的 ReadXmlSchema 方法。当您创建 XmlDataDocument 时可使用此方法,如下面的 XmlDataDocument.DataSet.ReadXmlSchema 调用所示。现在,对数据集所做的任何更改都将反映在 XmlDataDocument 中,反之亦然。

    为了阐释这种关系,下列示例代码读取 books.xsd 架构文件并将它加载到 XmlDataDocument 的 DataSet 属性中。请注意 ReadXmlSchema 方法是如何使用加载到 StreamReader 中的架构并生成关系映射的。如果在 XmlDataDocument 中已定义了一个关系视图,则该示例将引发异常。

    StreamReader myStreamReader = null;
                try
                {
                Console.WriteLine("Reading Schema file ...");
                myStreamReader = new StreamReader(schema);
                myXmlDataDocument.DataSet.ReadXmlSchema(myStreamReader);
                }
                catch (Exception e)
                {
                Console.WriteLine ("Exception: {0}", e.ToString());
                }
                finally
                {
                if (myStreamReader != null)
                myStreamReader.Close();
                }
                
    C# VB  

    那么如何知道从架构生成的内部表是什么样子的呢?数据集有一个 Tables 属性,它是内部表的集合。每个表都有一个列 (Columns) 集合,并且每列都有一个列名称 (ColumnName) 和一个数据类型 (DataType)。只需重复这些集合并设置输出的格式,即可显示从提供的架构生成的内部表结构,如下列代码所示。

    // Displays the DataSet tables structure
                private void DisplayTableStructure()
                {
                Console.WriteLine("\r\nTable structure \r\n");
                Console.WriteLine("Tables count=" + myXmlDataDocument.DataSet.Tables.Count.ToString());
                for (int i = 0; i < myXmlDataDocument.DataSet.Tables.Count; i++)
                {
                Console.WriteLine("\tTableName='" + myXmlDataDocument.DataSet.Tables[i].TableName + "'.");
                Console.WriteLine("\tColumns count=" + myXmlDataDocument.DataSet.Tables[i].Columns.Count.ToString());
                for (int j = 0; j < myXmlDataDocument.DataSet.Tables[i].Columns.Count; j++)
                {
                Console.WriteLine("\t\tColumnName='" +
                myXmlDataDocument.DataSet.Tables[i].Columns[j].ColumnName + "', type = "
                + myXmlDataDocument.DataSet.Tables[i].Columns[j].DataType.ToString());
                }
                }
                }
                
    C# VB  

    下列输出显示由 books.xsd 架构的 DisplayTableStructure 方法所显示的表名、列名和列类型。

    Table structure
    Tables count=3
    TableName='bookstore'.
    Columns count=1
    ColumnName='bookstore_Id', type = System.Int32
    TableName='book'.
    Columns count=5
    ColumnName='title', type = System.String
    ColumnName='price', type = System.Decimal
    ColumnName='genre', type = System.String
    ColumnName='book_Id', type = System.Int32
    ColumnName='bookstore_Id', type = System.Int32
    TableName='author'.
    Columns count=3
    ColumnName='first-name', type = System.String
    ColumnName='last-name', type = System.String
    ColumnName='book_Id', type = System.Int32
    

    摘要

    1. 通常情况下,架构是元数据,或是关于数据的数据,但 XSD 架构还包括数据类型之间的关系。
    2. 从 XSD 架构中,可以创建表和列的关系结构以存储符合所提供的架构的数据。这就是数据集映射。
    3. 数据集的 ReadXmlSchema 方法从所提供的架构生成内部映射。
  • 相关阅读:
    egret 示例实战六:利用Timer定时器,实现钟表秒针行走效果
    egret 示例实战六:延迟操作,实现打字效果
    egret:什么是脏矩形
    egret 示例实战五:随机画圆
    egret 示例实战四:圆弧遮罩
    egret 示例实战三:点击不同对象提升至最上层
    egret 示例实战二:实现爱心缩放和旋转动画
    egret 示例实战一:轻触屏幕调整显示对象位置
    egret:tabBar怎么取消默认选中呢?
    egret:ViewStack 中的scroller滚动条的隐藏
  • 原文地址:https://www.cnblogs.com/chorrysky/p/584518.html
Copyright © 2020-2023  润新知