ОСНОВИ РОБОТИ З XML
11.11.2021 21:53
[1. Information systems and technologies]
Author: Кіш В.В., студент, кафедра системного аналізу і теорії оптимізації, ФМЦТ, ДВНЗ "Ужгородський національний університет"
XML є мовою розмітки, яка була створена для опису даних. Мова розмітки є набором символів або послідовностей, що вставляються в текст для передачі інформації про його виведення або будову. Таким чином, текстовий документ, розмічений за допомогою такої мови, містить не лише сам текст, але і додаткову інформацію про його структуру. До того ж, мова розмітки дає змогу вносити в документ інтерактивні елементи і зміст інших документів. Розмітка розділяється на стилістичну, структурну і семантичну: стилістична розмітка відповідає за зовнішній вигляд документу, структурна розмітка задає структуру документу, семантична дає змогу зобразити логіку представлення даних. XML є підмножиною метамови SGML, розробленою для спрощення процесу машинного розбору документу. Доречно мовити, що він сам є метамовою, через те що не обмежується набором певних тегів і застосовується як засіб для опису граматики інших мов і контролю за правильністю складання документів. XML-документ здебільшого складається з процесингових інструкцій, елементів, атрибутів, сутностей і коментарів [1].
Наведемо приклад використання XML, застосовуючи мову програмування С# .
Розробимо програму для додавання товару для експорту, додавши спочатку інформацію до XML файлу, а потім зчитаємо її.
using System;
using System.Xml;
namespace lab1
{
class Program
{
static void Main(string[] args)
{
string xmlFile = @"*шлях до файлу*";
using (XmlTextWriter writer = new XmlTextWriter(xmlFile, null))
{
writer.Formatting = Formatting.Indented;
writer.Indentation = 3;
writer.WriteStartDocument(true);
writer.WriteStartElement("GoodsList");
//1
writer.WriteStartElement("goods");
writer.WriteAttributeString("ID", "1");
writer.WriteElementString("Title", "Coffee");
writer.WriteElementString("ExportCountry", "Spain");
writer.WriteElementString("Volume", "1000");
writer.WriteElementString("Price", "45");
writer.WriteEndElement();
writer.WriteEndElement();
Console.WriteLine("Created");
}
using (XmlTextReader reader = new XmlTextReader(xmlFile))
{
reader.ReadStartElement("GoodsList");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "goods")
{
reader.ReadStartElement("goods");
var id = reader.GetAttribute("ID");
Console.WriteLine(id);
Console.WriteLine("Title: " + reader.ReadElementString("Title"));
Console.WriteLine("Export Country: " + reader.ReadElementString("ExportCountry"));
Console.WriteLine("Volume: " + reader.ReadElementString("Volume"));
Console.WriteLine("Price: " + reader.ReadElementString("Price"));
Console.WriteLine("Done");
}
}
}
}
}
}
Однак робота з XML є досить поширеною, але у неї є свої недоліки, а саме – проблема обробки надвеликих масивів XML-даних. Джерелом проблеми є архітектура XML-файлів – їх деревоподібна структура та текстовий формат унеможливлюють створення індексів по XMLфайлам у реляційних базах даних, а нереляційні бази даних надають перевагу зберіганню даних у інших форматах.
Література:
1. Педоренко, О. Р. Математичне та програмне забезпечення обробки надвеликих масивів даних у форматі XML : магістерська дис. : 121 Інженерія програмного забезпечення / Педоренко Олег Русланович . - Київ, 2019. - 75 с.
_______________
Науковий керівник: Кіш Н.В., к.п.н., доцент, ДВНЗ "Ужгородський національний університет"