Въведение в XML

Въведение в XML

Настоящата статия представлява въведение в езика XML .
Разглежда се синтаксисът на един XML документ и се обсъжда приложението на XML езика.

Увод – що е то XML ?

Известно е, че съществуват множество различни формати за съхраняване на данните.
В различните софтуерни продукти се използват различни формати и начини за представяне на информация :
съществуват текстови формати с форматиране или без форматиране на текста,
различни видове бази данни, таблици за таблични процесори, мултимедийни формати, и други.
В съвременния свят на информационните технологии ,
необходимостта от комуникация,
от предаване на данните от едно място на друго посредством Интернет, от конвертиране на данните
от един формат в друг с цел използването им в друга софтуерна или
хардуерна среда, нараства чувствително.
Ето защо, бе създаден езикът XML (eXtensible Markup Language),
език, който се стреми да стандартизира, уеднакви, начините на съхранение и предаване
на различни видове данни.Това е език, чрез който може да се кодира специфичната структура на даден
документ, в която да се включат и данните.

Структурата на един XML документ
Езикът XML представлява език за маркировка, базиран на SGML.
Този език е предназначен да описва данни в текстов вид, по един неутрален по отношение
на платформата и операционната система начин.
Той използва тагове, които силно приличат на HTML таговете. Един XML документ представлява всъщност
един текстов файл, в който се съдържат различни XML декларации и тагове,
както и текст.
Ето един примерен XML документ (файл с име forum.xml) :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!—- This document describes some topics in a forum -->
<forum>
<topic user = “Milen” title = “ XML books”>
<body> I search good XML books. Please, help</body>
</topic>
<topic user = “Pesho” title = “HTML vs XML “>
<body> What’s the difference anyway? </body>
</topic>
</forum>


Както виждаме, данните са представени в йерархична структура от вмъкнати един в друг тагове.
Тази структура е дървовидна (йерархична ) :

forum
|-------topic
| |
| |-----body
|
| -------topic
|
|----body



XML директиви и XML елементи
Директивата в началото представлява специална XML директива, която указва че това е файл,
отговарящ на спецификацията на XML 1.0,и кодиран в кодировката ISO-8859-1 ( английски език ).
Всеки един раздел от структурата, който се нарича също така възел или елемент ( XML node, XML element )
се бележи с тагове – отварящ и затварящ .
На всеки един отварящ таг съответства затварящ таг, със същото име, но предхождано от наклонена черта
( <body>………….</body>). Между тези два тага се намира съдържанието, т.е. данните, които са включени в
съответния раздел. Трябва да има един основен елемент, в който да се намират всички останали елементи.
Той се нарича Document Root.
В примера това е елементът forum. Всеки един елемент може да има и атрибути, които описват някакво
свойство на това “парче” от данни, както в примера са заглавията на темите в форума.
Както и в HTML, в XML могат да се пишат коментари , оградени с <!—- и -->,
които не се взимат под внимание при компютърна обработка на файла от дадена програма.
При именуването на елементите се спазват следните правила :


-> Имената могат да съдържат букви, цифри, и някои други символи (подчертавка).
-> Имената не могат да започват с число или пунктуационен знак.
-> Имената не могат да започват с низа “xml”.
-> Имената не могат да съдържат интервали или символа двоеточие.

Разлики между XML и HTML

-> Имената на таговете и атрибутите са произволни, не са предварително определени.
Съответно произволен е и основният възел ( Document Root) на целия документ, не се изисква той
да бъде <html>.
-> Големите и малките букви имат значение : <body> и <BODY> са 2 различни неща.
-> Стойностите на атрибутите се записва винаги с кавички, даже и когато стойността е число :
<replique name = “Anne” age = “16”>Hi</replique>


-> Ako даден таг не съдържа в себе си текст или други тагове, може да се запише без затварящ таг
, но с наклонена черичка в края на тага :
<users>
<user name = “Anne” age = “16”/>
<user name = “Peter” age = “23”/>
</users>

-> Типът на документа се определя чрез специалана XML директива (XML processing instruction : <?xml …..?>


XML – Разширяем език за маркировка
XML означава “Разширяем език за маркировка”.И наистина, във всеки един момент можем да добавим нови данни
в структурата на един XML документ, като дефинираме нови имена на елементи или атрибути :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!—- This document describes some topics in a forum -->
<forum>
<topic user = “Milen” title = “ XML books”>
<body> I search good XML books. Please, help</body>
<reply user = “Niki” title = “”>
<body> I have one. Write me a PM ! </body>
</reply>
</topic>
<topic user = “Pesho” title = “HTML vs XML “>
<body> What’s the difference anyway?</body>
<reply user = “Ian” title = “”>
<body> Read my article in the “Articles” section!</body>
<reply>
</topic>
</forum>


Тук добавяме елемент reply, който винаги е подчинен на topic, a всеки topic е подчинен на forum.
Така ние дефинирахме малък език за описание на дискусията в един форум, който си има
свои правила и формализми.Ако сложим един елемент reply като елемент-дете на forum,
това би било грешка, тъй като не може да има отговор
на тема без тема, нали? Вижте този пример :


<?xml version="1.0" encoding="ISO-8859-1"?>
<!—- This document describes some topics in a forum -->
<forum>
<topic user = “Milen” title = “ XML books”>
<body> I search good XML books. Please, help</body>
<reply user = “Niki” title = “”>
<body> I have one. Write me a PM ! </body>
</reply>
</topic>
<topic user = “Pesho” title = “HTML vs XML “>
<body> What’s the difference anyway?</body>
<reply user = “Ian” title = “”>
<body> Read my article in the “Articles” section!</body>
<reply>
</topic>
<reply user = “Ian” title = “error”>
<body> Wow, that’s an error!</body>
</reply>
</forum>



/ Трябва да сте регистриран за да напишете коментар /