Занятие №4 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- XML
- XSD
- XML в .NET Framework
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...DAVID Academy
Занятие №3 на курса по програмиране за напреднали (2012) провеждан от ДАВИД академия в гр.Казанлък. Включва темите:
- Бази данни
- Системи за управление на бази данни
- ADO.NET
- LINQ to SQL
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...DAVID Academy
Занятие №2 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Бази данни
- Системи за управление на бази данни
- SQL
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...DAVID Academy
Занятие №3 на курса по програмиране за напреднали (2012) провеждан от ДАВИД академия в гр.Казанлък. Включва темите:
- Бази данни
- Системи за управление на бази данни
- ADO.NET
- LINQ to SQL
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...DAVID Academy
Занятие №2 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Бази данни
- Системи за управление на бази данни
- SQL
Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#DAVID Academy
Занятие №1 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Въведение в компютърното програмиране и C#
UAE^IN AJMAN*[☎️+971569875040**]]ABORTION MEDICINE IN AJMAN?//CYTOTEC ABORTIO...proffttega
WHATSAPP +971569875040
We have Abortion Pills / Cytotec Tablets Available in Dubai,abortion pills in KUWAIT,abortion pills MANAMA,ABU DHABI,misoprostol in KUWAIT,abortion pills QATAR,BAHRAIN,DOHA,SALMIYA,Sharjah,cytotec in Abudhabi, abortion pills Ajman, Alain, Fujairah,misoprostol in Ras Al Khaimah, Umm Al Quwain, UAE, buy cytotec in Dubai abortion Pills Cytotec also available Oman Qatar Doha Saudi Arabia Bahrain Above all, Cytotec Abortion Pills are Available In Dubai / UAE, you will be very happy to do abortion in dubai we are providing cytotec 200mg abortion pill in dubai, uae. Medication abortion offers an +971569875040
alternative to Surgical Abortion for women in the early weeks of pregnancy. We only offer abortion pills from 1 week-6 Months. We then advice you to use surgery if it’s beyond 6 months. Our +971569875040 QATAR,KUWAIT.SAUDI ARABIA,JEDDAH,MANAMA,OMAN,Abu Dhabi, Ajman, Alain, Dubai, Fujairah, Ras Al Khaimah (RAK), Sharjah, Umm Al Quwain (UAQ) United Arab Emirates Abortion Clinic provides the safest and most advanced techniques for providing non-surgical, medical and surgical abortion methods for early through late second trimester, including the Abortion By Pill Procedure (RU 486, Mifeprex, Mifepristone, early options French Abortion Pill), Tamoxifen, Methotrexate and Cytotec (Misoprostol). The Abu Dhabi, +971569875040
QATAR,KUWAIT,OMAN,SAUDI ARABIA,United Arab Emirates Abortion Clinic performs Same Day Abortion Procedure using medications that are taken on the first day of the office visit and will cause the abortion to occur generally within 4 to 6 hours (as early as 30 minutes) for patients who are 3 to 12 weeks pregnant. When Mifepristone and Misoprostol are used, 50% of patients complete in 4 to 6 hours; 75% to 80% in 12 hours; and 90% in 24 hours. We use a regimen that allows for +971569875040
completion without the need for surgery 99% of the time. All advanced second trimester and late term pregnancies at our Tampa clinic (17 to 24 weeks or greater) can be completed within 24 hours or less 99% of the time without the need surgery. The procedure is completed with minimal to no complications. +971569875040
Our Women's Health Center located in Abu Dhabi, United Arab Emirates, uses the latest medications for medical abortions (RU486, Mifeprex, Mifegyne, Mifepristone, and early options French abortion pill), Methotrexate and Cytotec (Misoprostol). The safety standards of our Abu Dhabi, United Arab Emirates Abortion Doctors remain unparalleled. +971569875040
They consistently maintain the lowest complication rates throughout the nation. Our Physicians and staff are always available to answer questions and care for women in one of the most difficult times in their life. The decision to have an abortion at the Abortion Clinic in Abu Dhabi, United Arab Emirates, involves moral, ethical, religious, family, financial, health and age considerations. Buy abortion pills in Dubai, Buy abortion pills in Oman, Buy abortion pills in Abu
Курс по уеб програмиране (2015), занятие №2 - CSSDAVID Academy
Kурс по уеб програмиране (2015)
Занятие №2: CSS
--
Въведение в CSS
Селектор, свойство, стойност
Идентификация и групиране на селектори
Цветове и фон
Форматиране на текст, списъци, таблици
CSS Box Model
Border, margin, padding
Позициониране на елементи
Псевдокласове и псевдоелементи
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...DAVID Academy
Занятие №7 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Свойства
- Индексатори
- Наследяване
- Изключения
NoSQL and Windows Azure platform
An introduction to NoSQL database principles, and its main subcategories; An exploration of NoSQL technologies available in the cloud using Windows Azure and SQL Azure; A comparison of NoSQL and relational database approaches, and a discussion about the role of database in clouds' era taking into account the adaptability of each application to the different businesses;
http://www.sqlsaturday.com/152/schedule.aspx
http://www.sqlsaturday.com/viewsession.aspx?sat=152&sessionid=11134
Курс по уеб програмиране (2014), занятие №1 - HTMLDAVID Academy
Kурс по уеб програмиране (2014)
Занятие №1: HTML
--
Въведение в HTML
Елементи и тагове
Мета съдържание
Структуриране на текст
Хипервръзки
Изображения
Таблици
Списъци
Форматиране на таблици
Форми
Въведение в HTML5
Структуриране на страница
Форми и валидиране
Аудио и видео
Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#DAVID Academy
Занятие №1 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Въведение в компютърното програмиране и C#
UAE^IN AJMAN*[☎️+971569875040**]]ABORTION MEDICINE IN AJMAN?//CYTOTEC ABORTIO...proffttega
WHATSAPP +971569875040
We have Abortion Pills / Cytotec Tablets Available in Dubai,abortion pills in KUWAIT,abortion pills MANAMA,ABU DHABI,misoprostol in KUWAIT,abortion pills QATAR,BAHRAIN,DOHA,SALMIYA,Sharjah,cytotec in Abudhabi, abortion pills Ajman, Alain, Fujairah,misoprostol in Ras Al Khaimah, Umm Al Quwain, UAE, buy cytotec in Dubai abortion Pills Cytotec also available Oman Qatar Doha Saudi Arabia Bahrain Above all, Cytotec Abortion Pills are Available In Dubai / UAE, you will be very happy to do abortion in dubai we are providing cytotec 200mg abortion pill in dubai, uae. Medication abortion offers an +971569875040
alternative to Surgical Abortion for women in the early weeks of pregnancy. We only offer abortion pills from 1 week-6 Months. We then advice you to use surgery if it’s beyond 6 months. Our +971569875040 QATAR,KUWAIT.SAUDI ARABIA,JEDDAH,MANAMA,OMAN,Abu Dhabi, Ajman, Alain, Dubai, Fujairah, Ras Al Khaimah (RAK), Sharjah, Umm Al Quwain (UAQ) United Arab Emirates Abortion Clinic provides the safest and most advanced techniques for providing non-surgical, medical and surgical abortion methods for early through late second trimester, including the Abortion By Pill Procedure (RU 486, Mifeprex, Mifepristone, early options French Abortion Pill), Tamoxifen, Methotrexate and Cytotec (Misoprostol). The Abu Dhabi, +971569875040
QATAR,KUWAIT,OMAN,SAUDI ARABIA,United Arab Emirates Abortion Clinic performs Same Day Abortion Procedure using medications that are taken on the first day of the office visit and will cause the abortion to occur generally within 4 to 6 hours (as early as 30 minutes) for patients who are 3 to 12 weeks pregnant. When Mifepristone and Misoprostol are used, 50% of patients complete in 4 to 6 hours; 75% to 80% in 12 hours; and 90% in 24 hours. We use a regimen that allows for +971569875040
completion without the need for surgery 99% of the time. All advanced second trimester and late term pregnancies at our Tampa clinic (17 to 24 weeks or greater) can be completed within 24 hours or less 99% of the time without the need surgery. The procedure is completed with minimal to no complications. +971569875040
Our Women's Health Center located in Abu Dhabi, United Arab Emirates, uses the latest medications for medical abortions (RU486, Mifeprex, Mifegyne, Mifepristone, and early options French abortion pill), Methotrexate and Cytotec (Misoprostol). The safety standards of our Abu Dhabi, United Arab Emirates Abortion Doctors remain unparalleled. +971569875040
They consistently maintain the lowest complication rates throughout the nation. Our Physicians and staff are always available to answer questions and care for women in one of the most difficult times in their life. The decision to have an abortion at the Abortion Clinic in Abu Dhabi, United Arab Emirates, involves moral, ethical, religious, family, financial, health and age considerations. Buy abortion pills in Dubai, Buy abortion pills in Oman, Buy abortion pills in Abu
Курс по уеб програмиране (2015), занятие №2 - CSSDAVID Academy
Kурс по уеб програмиране (2015)
Занятие №2: CSS
--
Въведение в CSS
Селектор, свойство, стойност
Идентификация и групиране на селектори
Цветове и фон
Форматиране на текст, списъци, таблици
CSS Box Model
Border, margin, padding
Позициониране на елементи
Псевдокласове и псевдоелементи
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...DAVID Academy
Занятие №7 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Свойства
- Индексатори
- Наследяване
- Изключения
NoSQL and Windows Azure platform
An introduction to NoSQL database principles, and its main subcategories; An exploration of NoSQL technologies available in the cloud using Windows Azure and SQL Azure; A comparison of NoSQL and relational database approaches, and a discussion about the role of database in clouds' era taking into account the adaptability of each application to the different businesses;
http://www.sqlsaturday.com/152/schedule.aspx
http://www.sqlsaturday.com/viewsession.aspx?sat=152&sessionid=11134
Курс по уеб програмиране (2014), занятие №1 - HTMLDAVID Academy
Kурс по уеб програмиране (2014)
Занятие №1: HTML
--
Въведение в HTML
Елементи и тагове
Мета съдържание
Структуриране на текст
Хипервръзки
Изображения
Таблици
Списъци
Форматиране на таблици
Форми
Въведение в HTML5
Структуриране на страница
Форми и валидиране
Аудио и видео
Курс по уеб програмиране (2015), занятие №1 - HTMLDAVID Academy
Kурс по уеб програмиране (2015)
Занятие №1: HTML
--
Въведение в HTML
Елементи и тагове
Мета съдържание
Структуриране на текст
Хипервръзки
Изображения
Таблици
Списъци
Форматиране на таблици
Форми
Въведение в HTML 5
Структуриране на страница
Форми и валидиране
Аудио и видео
Курс по уеб програмиране (2014), занятие №2 - CSSDAVID Academy
Kурс по уеб програмиране (2014)
Занятие №2: CSS
--
Въведение в CSS
Селектор, свойство, стойност
Идентификация и групиране на селектори
Цветове и фон
Форматиране на текст, списъци, таблици
CSS Box Model
Border, margin, padding
Позициониране на елементи
Псевдокласове и псевдоелементи
Училищен курс по програмиране на C# (2013/2014), занятие №11DAVID Academy
Училищен курс по програмиране на C# (2013/2014)
Занятие №11: Полиморфизъм (част 1): Презаписване на членове. Презаписване на оператори. Предефиниране на членове
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesDAVID Academy
Занятие №5 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- HTTP
- Web Services
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLDAVID Academy
Занятие №3 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- ADO.NET
- LINQ to SQL
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...DAVID Academy
Занятие №1 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Desktop приложения
- Windows Forms
- Windows Presentation Foundation
3. XML
• Какво е „XML“?
– eXtensible Markup Language
– Формален език за съхранение на структурирани
данни
– Сходен с HTML
– Препоръчан от W3C през 1998 г.
4. XML
• Възли (nodes)
–
–
–
–
–
–
–
–
–
Основна структурна единица на XML документ
Организирани в дървовидна структура
Елементи
Атрибути
Текст
CDATA
Коментари
Entity references
Други...
5. XML
• Елементи
– Име
•
•
•
•
•
Поредица от символи
Не съдържа интервали
Не започва с цифра или препинателен знак
Не започва с поредицата xml
Прави се разлика между малки и главни букви
– Отварящ и затварящ таг – заградени в ъглови скоби
– Кратък запис с един таг – може да съдържа
единствено атрибути
– Коренов елемент – единствен
7. XML
• Атрибути
– Име – важат правилата за именоване на елементи;
уникално измежду всички атрибути на елемента
– Включват се в отварящия таг на елемента
– Съдържание – текст или референция към обект
– Съдържанието се поставя в кавички
8. XML
• Атрибути
<library>
<books>
<book author="J. R. R. Tolkien" year="1954">
<title>The Fellowship of the Ring</title>
</book>
<book author="J. K. Rowling" year="1997">
<title>Harry Potter and the Philosopher's Stone</title>
</book>
</books>
<newspapers blackAndWhite="true" />
</library>
9. XML
• Коментари
– Заграждат се между поредиците от символи <!-- и
-->
– Не се обработват от приложенията, които четат XML
документа
<library>
<books>
<!-- Good book! -->
<book author="J. R. R. Tolkien" year="1954">
<title>The Fellowship of the Ring</title>
</book>
<!-<book author="J. K. Rowling" year="1997">
<title>Harry Potter and the Philosopher's Stone</title>
</book>
-->
</books>
</library>
10. XML
• Представяне на неразрешени символи
– Използват се entity references: поредици от символи,
започващи с & и завършващи с ;
– < замества символа <
– > замества символа >
– & замества символа &
– " замества символа "
– Екзотични Unicode символи могат да се запишат чрез
&#nnnn; или &#xhhhh;, където nnnn е десетичен запис
на кода на символа, а hhhh е шестнадесетичен запис
на кода му
11. XML
• CDATA възли
– Служат за описване на текст, който съдържа много
неразрешени символи, така че да не се налага те да се
заместват с entity references навсякъде
– Текстът се загражда между поредиците от символи
<![CDATA[ и ]]>
<codeSamples>
<codeSample>
<![CDATA[
public void FilterNumbers(int[] numbers)
{
return numbers.Where(n => n > 0 && n < 1000);
}
]]>
</codeSample>
</codeSamples>
12. XML
• XML декларация
– Поставя се в началото на XML документа, преди
кореновия елемент
– Указва версията на XML спецификацията, описваща
формата на документа; кодирането на символите в
документа (UTF-8, ANSI code page 1251 и т.н.) както и
това дали документът е независим от външни
източници
<?xml version="1.0" encoding="utf-8" ?>
13. XML
• Пространства от имена
– Произволни низове
– Служат за различаване на елементи или атрибути със
съвпадащи имена (подобно на пространствата от
имена в .NET)
– Указват се в рамките на елемент с помощта на
служебни атрибути xmlns или xmlns:prefix, където
prefix е произволна поредица от символи,
отговаряща на изискванията за валидно име на
елемент
– Указаните пространства от имена са валидни в цялото
поддърво от елементи на текущия елемент
14. XML
• Пространства от имена
– Пространството от имена по подразбиране се
определя от xmlns атрибута
– Префиксите се поставят преди името на
елемента/атрибута, следвани от двоеточие
<library xmlns="http://david.bg/xml/library"
xmlns:p="http://david.bg/xml/persons">
<books>
<book author="J. R. R. Tolkien" year="1954">
<title>The Fellowship of the Ring</title>
<checkedOutBy>
<p:person firstName="Alexander" lastName="Dalemski" />
</checkedOutBy>
</book>
</books>
</library>
15. XML Schema Definition
• Какво е „XML Schema Definition“?
– Вид XML документ
– Служи за формално описване на структурата на други
XML документи
– Налага ограничения върху допустимите възли в
документа
– Използва се за валидиране на XML документи
– XSD файлове
16. XML Schema Definition
• Основни характеристики и компоненти на XML
схема
–
–
–
–
Целево пространство от имена
Декларации на типове данни (прости и сложни)
Декларации на елементи
Декларации на атрибути
17. XML Schema Definition
• Целево пространство от имена
– Указва пространството от имена по подразбиране,
чиито елементи/атрибути се описват от схемата
– Обикновено всички елементи и атрибути, описвани в
схемата, принадлежат на едно и също пространство
от имена
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://david.bg/xml/library">
</xs:schema>
18. XML Schema Definition
• Прости типове данни
– Вградени типове данни
– Потребителски дефинирани прости типове данни
• Изброени типове
• Типове, получени чрез ограничаване на дефиниционното
множество на друг тип данни
• Типове, получени чрез обединение на дефиниционните
множества на други типове данни
<xs:simpleType name="bgdate">
<xs:restriction base="xs:string">
<xs:pattern value="d{2}.d{2}.d{4}" />
</xs:restriction>
</xs:simpleType>
19. XML Schema Definition
• Сложни типове данни
– Описват групи от елементи
– Може да се посочи поредност
– Може да се укажат минимален и максимален брой
повторения
<xs:complexType name="book">
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="genre" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
20. XML Schema Definition
• Декларации на елементи
– Описват съдържанието на елементите на съответното
място в дървото на XML документа, които имат
съответното име
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="genre" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
21. XML Schema Definition
• Декларации на атрибути
– Описват типа на данните, които се съхраняват в
съответните атрибути, както и дали са задължителни
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="genre" type="xs:string" minOccurs="0" />
</xs:sequence>
<xs:attribute name="author" type="xs:string" />
<xs:attribute name="year" type="xs:int" use="optional" />
</xs:complexType>
</xs:element>
22. XML Schema Definition
• Обвързване на XML документ със схема
– Осъществява се чрез атрибута schemaLocation от
пространството от имена
http://www.w3.org/2001/XMLSchema-instance
<library xmlns="http://david.bg/xml/library"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://david.bg/xml/library
http://david.bg/schemas/library.xsd">
<books>
<book author="J. R. R. Tolkien" year="1954">
<title>The Fellowship of the Ring</title>
</book>
</books>
</library>
23. XML Schema Definition
• Валидиране на XML документ
– Документът се валидира спрямо схемата (или
схемите), с която е обвързан
– Visual Studio
– Външни инструменти
– При прочитане на документа в .NET Framework
24. Приложения на XML
• Какви са приложенията на XML?
–
–
–
–
Съхранение на данни
Интеграция на софтуерни системи
Уеб услуги
Езици, специфични за предметната област (domainspecific languages, DSL)
25. Приложения на XML
• Съхранение на данни
–
–
–
–
Данните се сериализират в XML документ
Структурираност и еднозначност
Възможност за валидация
Заема повече място от двоично сериализирани данни
26. Приложения на XML
• Интеграция на софтуерни системи
– Различните системи боравят с различно форматирани
данни
– Универсален формат за данните, базиран на XML
– Трансформация от вътрешното представяне на
данните в системата към универсалния формат и
обратно
27. Приложения на XML
• Уеб услуги
– Универсален, строго дефиниран стандарт
– Възможност за предаване през HTTP
– Библиотеки за работа с XML документи във всякакви
операционни системи/платформи
– Разширяемост на структурата на данните
28. Приложения на XML
• Езици, специфични за предметната област
–
–
–
–
–
XSD
XSLT
XAML
DBML
XHTML
29. XmlDocument
• Класът System.Xml.XmlDocument
– Дефиниран в асемблито System.Xml
– Служи за зареждане на XML документ в паметта и
манипулации с възлите му
– Може да се използва за създаване на XML документи
и записването им във файлове
– Методът Load(…)
– Методът Save(…)
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(@"C:test.xml");
xmlDocument.Save(@"C:test2.xml");
30. XmlDocument
• Създаване на XML документи
XmlDocument xmlDocument = new XmlDocument();
XmlDeclaration xmlDeclaration =
xmlDocument.CreateXmlDeclaration("1.0", "utf-8", "yes");
xmlDocument.AppendChild(xmlDeclaration);
XmlElement libraryElement = xmlDocument.CreateElement("library");
xmlDocument.AppendChild(libraryElement);
XmlElement booksElement = xmlDocument.CreateElement("books");
libraryElement.AppendChild(booksElement);
XmlElement bookElement = xmlDocument.CreateElement("book");
booksElement.AppendChild(bookElement);
XmlAttribute authorAttribute = xmlDocument.CreateAttribute("author");
authorAttribute.Value = "J. R. R. Tolkien";
bookElement.Attributes.Append(authorAttribute);
XmlElement titleElement = xmlDocument.CreateElement("title");
XmlText titleText = xmlDocument.CreateTextNode("The Two Towers");
titleElement.AppendChild(titleText);
bookElement.AppendChild(titleElement);
xmlDocument.Save(@"C:library.xml");
31. XmlDocument
• Прочитане на XML документи
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(@"C:library.xml");
XmlElement libraryElement = xmlDocument["library"];
XmlElement booksElement = libraryElement["books"];
XmlNodeList bookElements = booksElement.GetElementsByTagName("book");
foreach (XmlElement bookElement in bookElements)
{
XmlAttribute authorAttribute = bookElement.Attributes["author"];
XmlElement titleElement = bookElement["title"];
Console.WriteLine("Title: {0}; Author: {1}",
titleElement.InnerText, authorAttribute.Value);
}
Console.ReadLine();
32. LINQ to XML
• Какво е „LINQ to XML“?
– Част от .NET Framework
– Имплементация на LINQ
– Допълнителни разширителни методи за работа с
колекции от XML възли
– Улеснява боравенето с XML документи
– Асемблито System.Xml.Linq
– Пространството от имена System.Xml.Linq
33. LINQ to XML
• Създаване на XML документи
XDocument xmlDocument = new XDocument();
xmlDocument.Declaration = new XDeclaration("1.0", "utf-8", "yes");
XElement libraryElement = new XElement("library");
xmlDocument.Add(libraryElement);
XElement booksElement = new XElement("books");
libraryElement.Add(booksElement);
XElement bookElement = new XElement("book");
booksElement.Add(bookElement);
XAttribute authorAttribute = new XAttribute("author", "J. R. R. Tolkien");
XElement titleElement = new XElement("title", "The Two Towers");
bookElement.Add(authorAttribute, titleElement);
xmlDocument.Save(@"C:library.xml");
34. LINQ to XML
• Създаване на XML документи
XAttribute authorAttribute = new XAttribute("author", "J. R. R. Tolkien");
XElement titleElement = new XElement("title", "The Two Towers");
XElement bookElement = new XElement("book", authorAttribute, titleElement);
XElement booksElement = new XElement("books", bookElement);
XElement libraryElement = new XElement("library", booksElement);
XDeclaration xmlDeclaration = new XDeclaration("1.0", "utf-8", "yes");
XDocument xmlDocument = new XDocument(xmlDeclaration, libraryElement);
xmlDocument.Save(@"C:library.xml");
35. LINQ to XML
• Прочитане на XML документи
XDocument xmlDocument = XDocument.Load(@"C:library2.xml");
var books =
from e in xmlDocument.Element("library").Element("books")
.Elements("book")
where e.Attribute("author") != null
select new
{
Title = e.Element("title").Value,
Author = e.Attribute("author").Value,
};
foreach (var book in books)
{
Console.WriteLine("Title: {0}; Author: {1}", book.Title, book.Author);
}
36. Сериализиране на обекти към XML
• Сериализиране към XML
– Вградена поддръжка в .NET Framework
– Пространството от имена System.Xml.Serialization
в асемблито System.Xml
– Сериализират се единствено публичните свойства на
обекта
– Атрибути за управление сериализирането на класове
и свойства
– Класът XmlSerializer
37. Сериализиране на обекти към XML
• Сериализиране по подразбиране
– По подразбиране всички свойства се сериализират
като елементи
– Името на елементите по подразбиране съвпада с
името на свойството
– Ако се сериализира колекция от елементи, по
подразбиране се създава един елемент с името на
колекцията и в него се поставят по един елемент за
всеки от обектите в колекцията; имената на
вътрепните елементи се определят от името на типа
на обектите
38. Сериализиране на обекти към XML
• Управление на сериализирането
–
–
–
–
–
Атрибутът XmlRoot
Атрибутът XmlElement
Атрибутът XmlAttribute
Атрибутът XmlArray
Атрибутът XmlArrayItem
39. Сериализиране на обекти към XML
• Управление на сериализирането
[XmlRoot("library")]
public class Library
{
[XmlArray("books")]
[XmlArrayItem("book")]
public List<Book> Books { get; set; }
}
public class Book
{
[XmlAttribute("author")]
public string Author { get; set; }
[XmlElement("title")]
public string Title { get; set; }
}
40. Сериализиране на обекти към XML
• Класът XmlSerializer
– В конструктора му се подава тип, който ще бъде
сериализиран или десериализиран
– Методът Serialize(…)
– Методът Deserialize(…)
41. Сериализиране на обекти към XML
• Сериализиране на обект към XML
var book = new Book
{
Author = "J. R. R. Tolkien",
Title = "The Two Towers",
};
var library = new Library
{
Books = new List<Book> { book },
};
var xmlSerializer = new XmlSerializer(typeof(Library));
using (FileStream stream = File.Create(@"C:library.xml"))
{
xmlSerializer.Serialize(stream, library);
}
42. Сериализиране на обекти към XML
• Десериализиране на обект от XML
Library library;
var xmlSerializer = new XmlSerializer(typeof(Library));
using (FileStream stream = File.OpenRead(@"C:library.xml"))
{
library = (Library)xmlSerializer.Deserialize(stream);
}
foreach (Book book in library.Books)
{
Console.WriteLine("Title: {0}; Author: {1}", book.Title, book.Author);
}