Практичеcкая реализация XML, введение, правила, конструкция, исходный код

 1.Введение в XML

XML - (англ. eXtensible Markup Language) - это расширяемый

язык разметки, описывающий объекты данных (XML - документы). Основным отличием от офисных документов является то, что XML - документы описывают структуру и дают возможность контроля правильность составления документов. Содержание XML не содержит тэгов, предназначенных для разметки, оно просто определяет порядок их создания.

Процесс создания XML - документа очень прост и требует только базовых знаний

HTML, при использовании XML в качестве языка разметки. При разработке XML строится его структура и создаются связи между элементами, которые необходимы для последующей обработки документа (поиск, анализ, просмотр).Одним из достоинств XML является возможность использования его в качестве универсального языка запросов к хранилищам информации.
XML позволяет также осуществлять контроль за корректностью данных, хранящихся в документах, производить проверки иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные.
Кроме того достоинством XML является то, что программы - обработчики

( парсеры )  XML - документов не сложны и уже сегодня появились и свободно распространяются всевозможные программные продукты, предназначенные для работы с XML-документами.
XML удобно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе.

Сам по себе стандарт XML описывает способ разметки текстового файла, то есть то, как текст "обрамляется" в элементы. Сам же перечень допустимых элементов для определенного типа документов обычно хранится в отдельном XML файле - XML схеме

(XML Schema).


2.Правила создания XML - документа

(Простейший XML - документ)

 

В общем случае XML - документы должны удовлетворять следующим требованиям

- В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация;
- Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника", т.е., в отличие от HTML, нельзя опускать закрывающие тэги;
- В XML учитывается регистр символов ;
- Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки;
- Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов;
- Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования ( т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).

Если XML - документ не нарушает приведенные правила, то он называется формально-правильным и все анализаторы, предназначенные для разбора XML - документов, смогут работать с ним корректно.

3.Конструкция языка XML

Содержимое XML - документа представляет собой набор элементов, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных. Рассмотрим каждый из них подробней.


Элементы данных.
Элемент - это структурная единица XML - документа. Заключая слово rose в в тэги <flower> </flower> , мы определяем непустой элемент, называемый <flower>, содержимым которого является rose. В общем случае в качестве содержимого элементов могут выступать как просто какой-то текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии, - т.е. практически любые части XML- документа. Любой непустой элемент должен состоять из начального, конечного тэгов и данных, между ними заключенных. Пример:
<flower>rose</flower>

Комментарии.
Комментариями является любая область данных, заключенная между последовательностями символов <!-- и --> Комментарии пропускаются анализатором и поэтому при разборе структуры документа в качестве значащей информации не рассматриваются.

Атрибуты.
Если при определении элементов необходимо задать какие-либо параметры, уточняющие его характеристики, то имеется возможность использовать атрибуты эдлемента. Атрибут - это пара "название" = "значение", которую надо задавать при определении элемента в начальном тэге. Пример:
<color RGB="true">#ff08ff</color>

Cпециальные символы.
Для того, чтобы включить в документ символ, используемый для определения каких-либо конструкций языка (например, символ угловой скобки) и не вызвать при этом ошибок в процессе разбора такого документа, нужно использовать его специальный символьный либо числовой идентификатор. Например, &lt; , &gt; &quot; или &#036;(десятичная форма записи), &#x1a (шестнадцатеричная) и т.д. Строковые обозначения спецсиволов могут определяться в XML документе при помощи компонентов (entity).

Директивы анализатора.
Инструкции, предназначенные для анализаторов языка, описываются в XML документе при помощи специальных тэгов - <? и ?>;. Программа клиента использует эти инструкции для управления процессом разбора документа. Наиболее часто инструкции используются при определении типа документа (например, <? Xml version=”1.0”?>) или создании пространства имен.

CDATA.
Чтобы задать область документа, которую при разборе анализатор будет рассматривать как простой текст, игнорируя любые инструкции и специальные символы, но, в отличии от комментариев, иметь возможность использовать их в приложении, необходимо использовать тэги <![CDATA] и ]]>. Внутри этого блока можно помещать любую информацию, которая может понадобится программе- клиенту для выполнения каких-либо действий (в область CDATA, можно помещать, например, инструкции JavaScript). Естественно, надо следить за тем, чтобы в области, ограниченной этими тэгами не было последовательности символов ]].
юди, специализирующиеся на взломе ПО (crackers) предлагают генераторы ключей или модифицированные версии ПО выкладывая их на различных сайтах, посвященных распространению ПО без соблюдений условий лицензия на ПО и обходя использование технические средства защиты авторских прав.

4.Практическое использование

парсеры и компоненты для XML

ALXmlDoc;
BSXmlRpc;
Delphi XML Component Persistence;
DIXml;
ECXML;
Https post of XML file;
janXMLParser2;
JvSimpleXml;
LibXML2Obj;
MSXML;
NativeXml;
Open XML;
PAD XML Information Retrieval Tool;
SimpleXML;
TechWriter for XML Schemas;
TGmXml;
TjanXMLParser;
TSimploXML;
TXMLDocument;


Advanced XML Converter;
FastXML;
Convert XML to Any Data Format;

 

 

 // ****** Windows Mobile, С#, работа с XML ******

1. для работы с XML не забудьте добавить библиотеки

   using System.Xml;
   using System.Xml.Linq;
   using System.IO;
// объявляем переменные
string num = \"01\";
string summa = \"50 копеек\";
string adress = \"пр. Мира д.1 кв.1\";

2. процедура создания xml файла

   private void CreateXmlDocument(string filepath)
        {
            XmlTextWriter xtw = new XmlTextWriter
            (filepath, Encoding.UTF8);// кодировка
            xtw.WriteStartDocument();
            xtw.WriteStartElement(\"users\"); // начальный элемент \"users\"
            xtw.WriteEndDocument();
            xtw.Close();
        }

3. процедура записи в xml

 private void WriteToXMLDocument(string filepath)
        {
            XmlDocument xd = new XmlDocument();
            FileStream fs = new FileStream(filepath, FileMode.Open);
            xd.Load(fs);
 // Создаем новую запись \"projects\"
         XmlElement projects = xd.CreateElement(\"projects\");
// ******************************** СОЗДАЕМ PROJECTS ***********************************
            XmlElement nu = xd.CreateElement(\"num\");
            XmlElement summ = xd.CreateElement(\"summa\");
            XmlElement adres = xd.CreateElement(\"adress\");
            // Создаем записи
            XmlText tnum = xd.CreateTextNode(num);
            XmlText tsumma = xd.CreateTextNode(summa);
            XmlText tadress = xd.CreateTextNode(adress);
            // заносим значения
            nu.AppendChild(tnum);
            summ.AppendChild(tsumma);
            adres.AppendChild(tadress);
            projects.AppendChild(nu);
            projects.AppendChild(summ);
            projects.AppendChild(adres);
            // Закрываем элемент, добавляем запись в документ
            xd.DocumentElement.AppendChild(projects);
// ******************************** ЗАКОНЧИЛИ PROJECTS ********************************
           fs.Close(); // Закрываем поток
           xd.Save(filepath);// Сохраняем файл
            }

4.процедура чтения из xml

         private void ReadXMLDocument(string filepath, string pid)
        {
            // Объявляем и забиваем файл в документ  
            XmlDocument xd = new XmlDocument();
            FileStream fs = new FileStream(filepath, FileMode.Open);
            xd.Load(fs);

// ******************************** ЧИТАЕМ PROJECTS ***********************************
            XmlElement tnum = (XmlElement)xd.GetElementsByTagName(\"num\")[0];
            num = tnum.InnerText;
            XmlElement tsumma = (XmlElement)xd.GetElementsByTagName(\"summa\")[0];
            summa = tsumma.InnerText;
            XmlElement tadress = (XmlElement)xd.GetElementsByTagName(\"adress\")[0];
            adress = tadress.InnerText;[/color]
// ******************************** ЗАКОНЧИЛИ PROJECTS ********************************
            fs.Close();

        }

5.пример полученного XML файла

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<users>
  <projects>
    <num>01</num>
    <summa>50 копеек</summa>
    <adress>пр. Мира д.1 кв.1</adress>
  </projects>
</users>

 

 

<На главную>

 

 

 

 

 

Расширения для Joomla

Облако тегов