Use this step-by-step guide to write an XSD schema from a database. This articl...
Use this step-by-step guide to write an XSD schema from a database. This article focuses on the following two scenarios:
How to write an XSD schema from a DataSet object with one table where all columns are not required in the resulting XSD schema.
How to write an XSD schema from a DataSet object with multiple datatables where all tables are not required in the resulting XSD schema.
To create an XSD schema from a database, you can use the DataSet object in .NET Framework. The DataSet object reads and writes XML files. The DataSet object can contain heirarchical or relational data. Therefore, it can take data from a relational store and render it in a hierarchical format.
Write an XSD Schema from a DataSet with One Table Where All Columns Are Not Required in the Resulting XSD Schema
Create a connection to the database.
Fill the DataSet with the schema of the required table. To do this, use DataAdapter and the FillSchema method.
Delete the columns in the table that are not required in the resulting schema. NOTE: This step is included to show you how to remove a DataColumn from a DataTable.
Write the schema to an external file or to a Stream object by using the WriteXMLSchema method of the DataSet.
Create a Visual Basic .NET Application
Create a New Console application by using Visual Basic .NET projects.
Type or paste the following code in the sub Main() area:
Dim cnNwind As New SqlConnection("Data Source=myserver;user id=myusername;password=mypassword;Initial catalog=Northwind;")
Dim daOrders As New SqlDataAdapter("Select * from Orders", cnNwind)
Dim ds As New DataSet()
Try
daOrders.FillSchema(ds, SchemaType.Mapped, "Orders")
Dim dt As DataColumn
dt = ds.Tables("Orders").Columns("Employeeid")
ds.Tables("Orders").Columns.Remove(dt)
ds.WriteXmlSchema("C:\Orders.xsd")
Console.WriteLine("The XSD schema is written to C:\Orders.xsd.")
Console.Read()
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.Read()
End Try
In the aforementioned code, change the Sql Server name, username, and password.
Build and run the program. The following message appears in the Console window:
Write an XSD Schema from a DataSet with Multiple DataTables Where All Tables Are Not Required in the Resulting XSD Schema
Create a connection to the database.
Fill the DataSet with the schema of the required tables. To do this, use DataAdapter and the FillSchema method.
Delete the tables that are not required in the resulting schema. Remove any relationships to other tables before you remove the table. NOTE: This step is included to show you how to remove a datatable from a DataTable.
Write the schema to an external file or to a Stream object by using the WriteXMLSchema method of the DataSet.
Type or paste the following code into the Sub Main area of the Console application. If necessary, comment out the previous code before you insert the new code sample.
Sub Main()
Dim cnNwind As New SqlConnection("Data Source=myservername;user id=myusername;password=mypassword;Initial catalog=Northwind;")
Dim daEmployees As New SqlDataAdapter("Select * from Employees", cnNwind)
Dim daOrders As New SqlDataAdapter("Select * from Orders", cnNwind)
Dim daOrderDetails As New SqlDataAdapter("select * from [Order details]", cnNwind)
Dim ds As New DataSet()
Try
daEmployees.FillSchema(ds, SchemaType.Mapped, "Employees")
daOrders.FillSchema(ds, SchemaType.Mapped, "Orders")
daOrderDetails.FillSchema(ds, SchemaType.Source, "OrderDetails")
Dim drEmpOrders As New DataRelation("EmpOrder", ds.Tables("Employees").Columns("Employeeid"), ds.Tables("Orders").Columns("Employeeid"))
ds.Relations.Add(drEmpOrders)
ds.Tables("Orders").Constraints.Remove("EmpOrder")
Dim drOrderdetails As New DataRelation("OrderDetails", ds.Tables("Orders").Columns("Orderid"), ds.Tables("Orderdetails").Columns("Orderid"))
ds.Relations.Add(drOrderdetails)
ds.Relations.Remove("EmpOrder")
ds.Tables.Remove("Employees")
Dim strm As New StreamWriter("C:\OrderDetails.xsd", False)
ds.WriteXmlSchema(strm)
Console.WriteLine("The XSD schema is written to C:\OrderDetails.xsd.")
Console.Read()
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.Read()
End Try
End Sub
Build and run the program. The following message appears in the Console window:
No comments:
Post a Comment