Последна актуализация: 21 май 2025

Какво е XML?
XML (Extensible Markup Language) е език за маркиране и файлов формат, използван за съхраняване, предаване и реконструкция на данни. Той предоставя структуриран подход към кодирането на информация, правейки я както четима за хора, така и за машини.
Ключови характеристики на XML
1. Дефинирано от отворени стандарти
- Създадено от World Wide Web Consortium (W3C) през 1998 г. под XML 1.0 Specification.
- Следва стриктни правила, за да осигури структуриран и лесен за интерпретиране данни.
2. Цели на дизайна
- XML е проектирано с простота, общност и удобство за използване върху различни платформи.
- Използва текстов формат, което го прави лесен за четене и редактиране.
3. Поддръжка на Unicode
- XML поддържа Unicode, позволявайки съхранение и обработка на текст на множество езици.
4. Гъвкавост
- Първоначално създадено за документи, XML сега се използва широко за представяне на данни в различни области, включително уеб услуги, API‑та и конфигурационни файлове.
5. Схеми и API
- XML структури могат да бъдат дефинирани чрез Document Type Definition (DTD), XML Schema (XSD) или Relax NG.
- Различни API‑та, като DOM (Document Object Model) и SAX (Simple API for XML), позволяват обработка на XML.
6. Чести употреби на XML
- Обмен на данни между различни системи (например уеб услуги, API‑та).
- Конфигурационни файлове в софтуерни приложения.
- Съхраняване на структурирана информация (например RSS емисии, SVG графики, документни формати като DOCX).
- Уеб разработка (например XHTML, SOAP, AJAX‑базирани приложения).
Сега, след като знаете какво е XML, научете как да четете и редактирате XML файлове с този наръчник за начинаещи.
Преглед на XML
1. Основната цел на XML: Сериализация
Сериализацията в XML означава:
- Съхраняване на данни в структуриран формат.
- Предаване на данни между различни системи.
- Реконструкция на данни в използваема форма.
Когато две системи трябва да обменят информация, XML предоставя стандартизиран файлов формат за съвместимост. Той действа като „lingua franca“ за структуриран обмен на данни.
2. XML като език за маркиране
XML е език за маркиране, което означава, че:
- Маркира данните с тагове за ясна структура.
- Организира информацията йерархично.
- Категоризира данните с метаданни.
Пример:
<book>
<title>XML Basics</title>
<author>John Doe</author>
</book>
Тук <book>, <title> и <author> са тагове, които определят елементите на данните.
3. XML схема (XSD) и валидиране
XML схема (XSD) определя структурните правила за XML документи.
XML документите могат да бъдат:
- Well-formed → Спазва основните синтактични правила (правилно вложени, правилно затворени тагове).
- Valid → Съответства на правилата на схемата (задължителни елементи, правилни типове данни).
Пример за XSD правило:
<xs:element name="title" type="xs:string"/>
Това гарантира, че <title> трябва да съдържа стринг стойност.
4. XML медийни типове (RFC 7303)
IETF RFC 7303 определя XML медийни типове за предаване на данни:
- application/xml → Стандартни XML данни.
- application/xml-external-parsed-entity → Парсирани XML единици.
- application/xml-dtd → XML DTD документи.
За формати, базирани на XML, се използва суфикса +xml (например image/svg+xml за SVG изображения).
5. XML в мрежови приложения (RFC 3470 / IETF BCP 70)
IETF BCP 70 (RFC 3470) описва най‑добри практики за използване на XML в мрежови приложения, осигурявайки безпроблемна съвместимост на данните между системите.
За работа с XML програмно, разгледайте най‑добрите XML парсъри за Python, Java и JavaScript.
1. Приложения на XML
XML е гъвкав език за маркиране, проектиран за обмен на данни в Интернет. Синтаксисът му е повлиял на множество документни формати и комуникационни протоколи, правейки го фундаментална технология в много индустрии.
Чести формати, базирани на XML:
- Уеб емисии: RSS, Atom
- Офис документи: Office Open XML, OpenDocument
- Графика и 3D модели: SVG, COLLADA
- Уеб технологии: XHTML
- Протоколи за обмен на данни: SOAP, XMPP
- AJAX: Използва XML за асинхронен обмен на данни
Отраслови стандарти, използващи XML:
- Здравеопазване: HL7 (Health Level 7)
- Туристическа индустрия: OpenTravel Alliance
- Финанси: FpML (Financial products Markup Language)
- Недвижими имоти и ипотека: MISMO
- Държавен обмен на данни: National Information Exchange Model
XML в науката:
В метеорологията XML се използва за оперативно представяне на метеорологични данни според IWXXM стандартите. По същия начин Darwin Information Typing Architecture (DITA) е XML стандарт, широко използван в издателската дейност.
За практическа реализация, разгледайте нашия урок за как да четете и редактирате XML в Python, Java и JavaScript.
2. Ключова терминология в XML
Разбирането на основната терминология в XML е от съществено значение за ефективната работа с XML документи.
Знак
XML документът е последователност от Unicode знаци. XML 1.1 позволява почти всички Unicode знаци, с изключение на Null знака (U+0000), който е строго забранен.
Процесор и приложение
- XML процесорът (или парсерът) чете и анализира XML маркирането.
- Приложението получава структурираните данни от процесора и ги обработва.
Маркиране и съдържание
XML разделя знаците на маркиране и съдържание:
- Маркиране: Включва елементи, атрибути и ентитети (например
<tag>и&). - Съдържание: Реалните данни вътре в елементите.
- CDATA секции: Позволяват текст, който не трябва да се парсира като маркиране, ограден с
<![CDATA[ ... ]]>.
Тагове и елементи
- Тагове: Маркиращи конструкции, оградени в
< >.<section>(начален таг)</section>(краен таг)<line-break />(тег за празен елемент)
- Елементи: Логически компоненти, дефинирани от таговете.
- Пример:
<greeting>Hello, world!</greeting>
- Пример:
Атрибути
Атрибутите предоставят метаданни за елементите чрез двойки име‑стойност. Пример:
<img src="image.jpg" alt="Description" />
src="image.jpg" и alt="Description" са атрибути на елемента <img>.
3. Знаци и избягване в XML
Валидни Unicode знаци в XML
XML документите разрешават само определени Unicode знаци, за да се гарантира правилното им парсиране.
Разрешени знаци в XML 1.0:
- Контролни знаци:
U+0009(таб)U+000A(нов ред)U+000D(въртен ред)
- Текстови знаци:
U+0020–U+D7FFU+E000–U+FFFDU+10000–U+10FFFF
Подобрения в XML 1.1:
- Позволява всички U+0001–U+001F контролни знаци, но изисква те да бъдат избягвани.
- U+0000 (Null знак) остава забранен.
4. Кодиране в XML
Чести XML кодирания:
XML поддържа Unicode‑базирани кодирания, включително:
- UTF-8 (препоръчително по подразбиране)
- UTF-16 (трябва да се поддържа от всички XML парсъри)
- ASCII, ISO-8859-X (наследени кодирания)
Декларация за кодиране в XML:
XML заглавието може да посочи кодиране:
<?xml version="1.0" encoding="UTF-8"?>
- Ако не е посочено кодиране, UTF-8 се счита за подразбиране.
- UTF-16 изисква BOM (Byte Order Mark) за правилно откриване.
5. Ескейпване на специални знаци в XML
Тъй като XML синтаксисът резервира определени знаци, те трябва да бъдат ескейпнати, за да се избегнат конфликти.
Предефинирани XML ентитети:
| Знак | Ескейпната форма | Пример |
|---|---|---|
< (по‑малко) | < | I <3 XML → I <3 XML |
> (по‑голямо) | > | x > y → x > y |
& (амперсанд) | & | AT&T → AT&T |
' (апостроф) | ' | "O'Reilly" → O’Reilly |
" (кавички) | " | She said "hello" → She said “hello” |
Числови референции към знаци:
За специални знаци, които не могат да се напишат, се използват числови референции:
- Десетичен:
中 <!-- Chinese character "中" --> - Шестнадесетичен:
中 <!-- Chinese character "中" --> - Пример:Показва се като: I <3 Jörg
<message>I <3 Jörg</message>
Обработка на бинарни данни:
XML не поддържа сурови бинарни данни. Вместо това се използва Base64 кодиране.
6. Коментари в XML
Синтаксис за XML коментари:
<!-- This is a valid XML comment -->
Правила за XML коментари:
- Не могат да се появят преди XML декларацията.
- Не могат да съдържат
--(двойно тире) вътре в коментара. - Ентитетите се игнорират в коментарите.
Пример:
<!-- This is a comment with < and & symbols -->
Заключение
XML е съществена технология за структуриран обмен на данни, захранваща уеб емисии, офис документи, научни данни и отраслови стандарти. Разбирането на ключовата терминология, правилата за кодиране и механизмите за избягване осигурява добре оформени XML документи, които функционират правилно в различни системи.
Следвайки най‑добри практики при кодирането на знаци и избягването, разработчиците могат да избягват грешки при парсиране и да гарантират съвместимост в XML‑базирани приложения.