Помогни ни да направим Uroci.net по - богат! Добави урок

XML Интеграция

bubust   трудност:    видян: 9645


Освен това данните са само - описващи се (self-describing) и лесни за манипулиране в различни формати. XML е идеалния начин за бизнеса да подава и получава данни. Microsoft e направил по - голямата част от .NET XML базирана, и това е очебийно с включването на два класа: XmlReader и XmlWriter. Microsoft е създал два обекта за изпълнение на тези два класа, наречени XmlTextReader и XmlTextWriter. Тези класове могат да бъдат намерени в пространството от имена System.Xml. Работейки заедно, .NET и ADO.NET могат да четат и записват данни по един и същ маниер независимо дали това са XML или релативни данни. Microsoft е създал и обект XmlDataDocument за свързване на релативни данни от DataSet с XML Document Object Model (DOM - документен обектен модел). Ако трябва да работите с XML, XmlDataDocument може да зареди релативни или XML данни и да ги манипулира. Ако XmlDataDocument зарежда релативни данни, той използва DataSet като техен източник. След като релативните данни се заредят от XmlDataDocument, те се достигат чрез .NET XML класове и функции. Това, което ще направи .NET за вас е да валидизира вашият XML според XML схема. Едва когато вашата база данни има схема, дефинираща таблици, колони и т.н. XML схемата дефинира структурата на XML документа. По този начин вие можете да споделите схемата с други и когато те вземат XML документ от вас, ще го сравнят със схемата. Би било чудесно ако всички споделяха една схема, щеше да се получи универсален формат (DataFormat). Но е стъпка в правилната посока.

Забележка

Има няколко типа от XML схеми, включая DTDs (Document Type Definitions). Стандартът XSD е от март 16, 2001, и е това, което произвежда Visual Studio.NET. Вие вече създадохте XML схема; в този случай XSD файл. Фактически, ако погледнете прозореца Solution Explorer, ще видите два XSD файла: dsDascaly.xsd и dsDascaly.xsd. Кликнете два пъти върху файл dsDascaly.xsd, ще видите нова страница (tab) добавена към главната работна област. Първият изглед (view) на XSD е изгледът схема, който показва формата на на данните (DataFormat) изглеждащ също като таблица в база данни. В най-долната част на този прозорец има два бутона: Schema и XML. Виж фигура 102.


Фигура 102 Изглед XSD.

Ако кликнете бутон XML, ще видите актуалната XML схема, която е генерирана за вас от Visual Studio.NET. Ето част от тази схема:

<?xml version="1.0" standalone="yes"?>

<xs:schema id="dsDascaly" targetNamespace="http://www.tempuri.org/dsDascaly.xsd" xmlns:mstns="http://www.tempuri.org/dsDascaly.xsd" xmlns="http://www.tempuri.org/dsDascaly.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">

<xs:element name="dsDascaly" msdata:IsDataSet="true">

<xs:complexType>

<xs:choice maxOccurs="unbounded">

<xs:element name="Dascali">

<xs:complexType>

<xs:sequence>

<xs:element name="FirstName" type="xs:string" minOccurs="0" />

<xs:element name="LastName" type="xs:string" minOccurs="0" />

<xs:element name="HomePhone" type="xs:int" minOccurs="0" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:choice>

</xs:complexType>

</xs:element>

Ако направите анализ на този код, ще забележите името на таблицата (<xsd: element name="Dascaly">) нейните полета и техният тип данни и накрая на този отрязък от код, XSD дефинира първичен ключ.


- Дизайнерът XML Designer

Можете да създадете XSD схема от стартовата линия, използвайки XML Designer. Във вашия проект IzuchavaneVBDanni, кликнете върху бутон Add New Item. В диалоговия прозорец Add New Item, се уверете, че е селектирано Local Project Items и след това изберете XML Schema. Именовайте схемата University.xsd. Ще ви поздрави празна форма. Ако кликнете в Toolbox, ще забележите, че съществува страница (tab) с етикет XSD Schema. Довлечете простия тип (Type) над дизайнера. Това ще прибави графично представяне на простия тип. Прост тип (simple type) е само тип базиран на базата на типовете в XML, като strings, time, integers. При деклариране на прост тип има лимити като размер на полето например. Сменете името на простия тип, който току що добавихте, на stState. Оставете типа като стринг (string), и в прозореца отдолу stState, изберете дължина. Нека дължината да е 2. Сега вече имаме стандартен стрингов тип с лимит два символа. Сега кликнете и довлечете комплексен тип (Type) от лентата с инструменти Toolbox. Комплексен тип (complex type) действа основно като подтип, който може да бъде използван и от други елементи в схемата. Именовайте комплексния тип Person. Добавете атрибут Name (виждате A за "attribute") от тип стринг. Добавете атрибути Address и City, двата от тип стринг. Накрая, добавете атрибут State, но този път от тип stState, който е простия тип, който създадохте. Сега е време да създадете релативна таблица (relational table). Довлечете елемент от Toolbox към дизайнера. Именовайте елемента Student. Сега трябва да дефинирате полетата на таблицата. Person беше създадена като комплексен тип, защото таблица Professor ще използва същата структура на Person. Сменете A в първата колона на E за елемент, и след това напишете StudentID, и го направете от тип int. След това добавете друг елемент с име StudentInfo, но го направете тип Person. Дизайнерът автоматично ще добави референция към елемента с име StudentInfo. Фигура 103 показва как изглежда Designer.

Това e много лесен начин да си създадете схема, нали? О да, ако имате съществуваща таблица в базата данни. Просто създавате нова XSD схема във вашия проект, и чрез влачене и пускане на таблица от Server Explorer го правите. Всъщност Server Explorer генерира XSD за вас от дефиницията на таблицата. Какво можете да правите с тази XSD схема, след като вече я имате? Може да я заредите както DataSet. Фактически ако сте дали правилния път (path) в кода и го стартирате, системата ще ви докладва, че името на DataSet е University. След това бихте могли да добавите записи към таблицата в паметта, или да съедините данните от друго DataSet , което актуално подава данните от подлежащата база данни.



Dim xdd As New XmlDataDocument()

xdd.LoadDataSetMapping("c:...University.xsd")

MsgBox(xdd.DataSet.DataSetName.ToString)



OSQL -S IK-NK0YFP6JWVL1VSdotNET -E/i db_attachpayables.sql

Log_shipping_databases



Разгледайте кода на програма SqlXMLExample:


- Код на Form1.vb:

Imports System

Imports System.Data.SqlClient



Public Class Form1

Inherits System.Windows.Forms.Form

Dim bDataAdded As Boolean = False

#Region " Windows Form Designer generated code "



Фигура103 Дизайнер XML Designer след като сте създали вашата схема.


Private Sub btnPoluchavam_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnPoluchavam.Click

If bDataAdded = True Then Exit Sub

Try

SqlDataAdapter1.Fill(DataSet11, "Vendors")



With dgDataGrid

.CaptionText = "Examining XML"

.DataSource = DataSet11

.AllowSorting = True

.AlternatingBackColor = System.Drawing.Color.Bisque

.SetDataBinding(DataSet11, "Vendors")

End With


'--актуализиране (Update) на XML tab

txtXML.Text = DataSet11.GetXml



'-- актуализиране (Update) на XML Schema tab

txtXMLSchema.Text = DataSet11.GetXmlSchema



bDataAdded = True



Catch ex As Exception

Console.WriteLine(ex.ToString())

End Try

End Sub



Private Sub btnActualization_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualization.Click



Try

dgDataGrid.Update()

SqlDataAdapter1.Update(DataSet11)

Catch ex As SystemException

MessageBox.Show(ex.Message)

End Try

End Sub



Private Sub btnZapisXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZapisXML.Click



DataSet11.WriteXml("C:VB .NET ProjectsGlava10XMLData _ SQLXML.xml", XmlWriteMode.WriteSchema)

DataSet11.WriteXml("C:VB .NET ProjectsGlava10XMLData _ SQLChanges.xml ", XmlWriteMode.DiffGram)

End Sub

End Class


Страници: 1 2 »

Коментари (2)

kbasedata на 21.03 2012 в 17:51ч.
Привет,

има ли вариант някои да ми прати този проектен файл заедно с кода?
kbasedata на 21.03 2012 в 22:33ч.
Привет,

има ли вариант някои да ми прати кода + проектния файл, за по-добро разбиране, че така ми е трудно .. Благодаря предварително.

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com