0

ايجاد فايل XML با استفاده از يک بانک اطلاعاتی

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

ايجاد فايل XML با استفاده از يک بانک اطلاعاتی

 

از بانک های اطلاعاتی به منظور ذخيره و مديريت داده ها استفاده می گردد . در صورتی که قصد ارسال داده های ذخيره شده در يک بانک  اطلاعاتی را برای يک سرويس گيرنده داشته باشيم  ، XML گزينه ای  مطلوب در اين رابطه است . با استفاده از XML داده ها در ساختاری ذخيره و سازماندهی می شوند که سرويس گيرندگان با هر نوع پلت فرم قادر به استفاده از آنان با توجه به اهداف عملياتی خود می باشند. در حقيقت ،  XML مکانيزم استانداردی به منظور مبادله داده بين دو نقطه مبداء و مقصد را فراهم می نمايد . بدين ترتيب بخش های متفاوت يک نرم افزار و يا نرم افزارهای مختلف ، قادر به مبادله داده بين خود خواهند بود .
XML در دات نت دارای نقشی محوری و اساسی بوده و نظير چسبی است که تمام بخش های فريمورک دات نت را به يکديگر متصل و مرتبط می نمايد .مثلا"  ADO.NET اساس کار خود را بر روی DataSet استوار نموده که بطور کامل از XML حمايت می نمايد . کلاس DataSet دارای مجموعه وسيعی از متدهای لازم به منظور پردازش اسناد XML است . برخی از متداولترين آنان عبارتند از :

  • ReadXml

  • WriteXml

  • GetXml 

  • GetXmlSchema

  • InferXmlSchema

  • ReadXmlSchema

  • WriteXmlSchema.

در اين مقاله با نحوه ايجاد يک سند XML  که محتويات آن متاثر از اجرای يک query در ارتباط با يک بانک اطلاعاتی می باشد ،  آشنا خواهيم شد. بدين منظور مراحل زير را دنبال خواهيم کرد :

  • مرحله اول :  ايجاد بانک اطلاعاتی (  از يک بانک اطلاعاتی  Access استفاده خواهيم کرد )

  • مرحله دوم : مشخص نمودن يک ساختار برای فايل XML

  • مرحله سوم : ايجاد يک فرم وب که ليست محصولات را در يک DataGrid نمايش داده و کاربر بتواند  با استفاده از Button تعبيه شده بر روی آن اقدام به ايجاد فايل XML و Schema مربوط به آن نمايد .

  • مرحله چهارم : ايجاد يک DataSet و پر نمودن داده در آن با استفاده از يک SQL query ( اين کار را در روتين Page_Load انجام خواهيم داد )

  • مرحله پنجم : نوشتن روتين مربوط به ايجاد فايل XML

مرحله اول : ايجاد بانک اطلاعاتی 
بانک اطلاعاتی Products و جدول OurProducts

مرحله دوم : مشخص نمودن يک ساختار برای فايل XML
فايل XML که قصد ايجاد آن را داريم دارای ساختار زير است :

 

فا يل XML نمونه

<XMLProducts>
<ProductSpec>
     <ProductID>   </ProductID>
     <ProductName>   </ProductName>
      <UnitPrice>   </UnitPrice>
</ProductSpec>
  ...
</XMLProducts>

مرحله سوم : ايجاد يک فرم وب
در فرم وب از دو کنترل DataGrid و Button  استفاده شده است . از کنترل DataGrid به منظور نمايش محتويات Dataset و از کنترل Button به منظور ايجاد فايل XML ، استفاده خواهيم کرد .

 

فرم وب

<%@ Page Language ="VB" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html><head></head><body>
<form runat="server">
<b>ليست محصولات </b> <br/><br/>
<asp:DataGrid id="ProductGrid" runat="server"
  AutoGenerateColumns="False"
  Font-Names="Tahoma"
  Font-Size="8pt"
  CellPadding="1"
  GridLines="Horizontal"
   ...
</asp:DataGrid>
<br/><br/>
<asp:Button id="cmdMakeXML" Text="ايجاد فايل XML " runat="server" onclick="MakeXML"/>
</body></form></html>

مرحله چهارم :  ايجاد يک DataSet و پر نمودن داده در آن 

اين کار از طريق  روتين Page_laod  انجام می شود . در اين روتين پس از ارتباط با بانک اطلاعاتی Products و  اجرای يک query در ارتباط با جدول OurProducts ، داده  مورد نظر در  DataSet  قرار گرفته و در نهايت با نسبت دهی آن به  خصلت DataSource کنترل DataGrid ، داده ها در کنترل DataGrid  نمايش داده می شوند .

روتين Page_Load

Sub Page_Load(s As Object, e As EventArgs)
  If Not Page.IsPostBack Then
    Dim myDataSet As New DataSet("myXMLProduct")
    Dim myConn As New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\Products.mdb")
   Dim mydataAdapter As New OleDbDataAdapter  _
        ("SELECT ProductID,ProductName,UnitPrice FROM OurProducts" ,myConn)
mydataAdapter.Fill(myDataSet,"ProductSpec")
ProductGrid.DataSource=myDataSet.Tables(0)
ProductGrid.DataBind
Session("Ds")=myDataSet
End If
End Sub

 

مرحله پنجم :  روتين MakeXml
در اين مرحله فايل های  myXMLData.xml    و   myXMLData.xsd   ايجاد خواهند شد . بدين منظور يک DataSet ايجاد و داده آن از طريق متغير Session ايجاد شده در روتين Page_Load پر می گردد .

روتين  MakeXml

Sub MakeXML(s As Object, e As EventArgs)
Dim myFs1 As New FileStream (Server.MapPath _
    
("myXMLData.xml") ,FileMode.Create ,FileShare.ReadWrite)
Dim myFs2 As New FileStream(Server.MapPath _
    
("myXMLData.xsd"),FileMode.Create,FileShare.ReadWrite)
Dim myDataSet As New DataSet
myDataSet=Session("Ds")
myDataSet.WriteXml(myFs1)
myFs1.Close()
myDataSet.WriteXmlSchema(myFs2)
myFs2.Close()
End Sub
 

 

پس از ذخيره تمامی کدهای اشاره شده در فايل  MakeXmlFromDataBase.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :  

پس از فعال نمودن دکمه "ايجاد فايل XML " ، فايل های myXMLData.xml  و  myXMLData.xsd  ايجاد می گردند .

فايل myXMLData.xml  

myXMLData.xsd  

 

 

چهارشنبه 8 آذر 1391  8:57 AM
تشکرات از این پست
دسترسی سریع به انجمن ها