XML: відмінності між версіями

[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Incident40 (обговорення | внесок)
Немає опису редагування
м незначні зміни
Рядок 30:
 
== Основні поняття ==
 
; Коректність: Коректний документ ({{lang-en|well-formed document}}) відповідає всім синтаксичним правилам XML. Документ, що не є коректним, не може називатись XML-документом. ''Сумісний синтаксичний аналізатор'' ({{lang-en|Conforming parser}}) не повинен обробляти такі документи. Зокрема, коректний XML-документ має:
:* Лише один елемент у корені.
Рядок 48 ⟶ 47:
 
== Структура ==
 
Приклад XML-документа:
<source lang="xml">
Рядок 71 ⟶ 69:
 
=== Фізична структура ===
 
* [[SGML-сутність|Сутності]] ({{lang-en|Entity}}). Головною сутністю є зміст документа. Інші можливі сутності вказуються за допомогою
** [[Сутності в мовах розмітки|Посилання на сутності]] (<code>''&назва;''</code> в самому документі, та, наприклад <code>''%назва;''</code> у визначені його типу) можуть слугувати в ролі позначень спеціальних символів, посилань на спеціальні символи (вказуючи коди символів <code>&#''десяткове'';</code>, або <code>&#x''шістнадцяткове'';</code>) або окремих документів чи фрагментів тексту.
Рядок 78 ⟶ 75:
 
=== Логічна структура ===
 
XML-документ має ієрархічну логічну структуру, і може представлятись у вигляді дерева. Вузлами цього дерева можуть бути:
* елементи, фізична структура яких складається із:
Рядок 93 ⟶ 89:
 
== Коректність XML-документів ==
 
Залишивши назви, дозволену ієрархію, та значення елементів і атрибутів відкритою та можливою бути визначеною в спеціалізованих ''[[XML schema|схемах]] або [[Document Type Definition|визначеннях типу документа]] (DTD)'', XML утворює синтаксичну основу для створення спеціалізованих, заснованих на XML мовах розмітки даних. Загальний синтаксис таких документів стабільний і наперед визначений&nbsp;— документи мають відповідати базовим вимогам XML, гарантуючи те, що довільне програмне забезпечення з підтримкою XML буде здатне щонайменше зчитати і відтворити відносну структуру інформації, що міститься в них. Схема лише доповнює синтаксичні правила множиною обмежень. Зазвичай схеми обмежують назви елементів та атрибутів, дозволені типи значень і допустиму ієрархію елементів, наприклад, дозволяючи лише елементу з назвою «народження» містити під-елемент з назвою «місяць» та з назвою «день», і кожен із них мусить містити лише літери. Обмеження, вказані в схемі, можуть також включати присвоєння певних [[Тип даних|типів даних]] для впливу на те, як обробляється інформація; наприклад, дані елемента «місяць» можна визначити як такі, що містять лише місяць, як це визначено відповідно до використаної мови схем.
 
Рядок 147 ⟶ 142:
=== Об'єктна модель документа (DOM) ===
{{Main|Об'єктна модель документа}}
 
Об'єктна модель документа ({{lang-en|Document Object Model}}, DOM) є програмним інтерфейсом, який дозволяє здійснювати обхід цілого документа так, наче він є деревом, вузлами якого є об'єкти, що відтворюють зміст документа. Документ DOM може створюватись синтаксичним аналізатором або користувачами (з деякими обмеженнями). Типи даних вузлів DOM-дерев є абстрактними; реалізації мають власні, специфічні для мов програмування типи даних. Реалізації DOM мають тенденцію до інтенсивного використання пам'яті, оскільки зазвичай перед початком роботи документ має бути повністю завантажений, оброблений та перетворений на дерево об'єктів.
 
=== Перетворення документів ===
{{Main|Extensible Stylesheet Language}}
 
Фільтр в родині XSL може перетворювати XML-документи на інші XML-документи{{джерело}}, для перегляду на екрані або друку.
 
Рядок 161 ⟶ 154:
 
=== Активний аналіз ===
 
З точки зору активного аналізу ({{lang-en|Pull parsing}})<ref>[http://www.xml.com/pub/a/2005/07/06/tr.html Push, Pull, Next!] by Bob DuCharme, at XML.com</ref> XML-документ розглядається як послідовність елементів, які зчитуються послідовно, використовуючи [[Шаблони проектування програмного забезпечення|шаблон проектування]] [[ітератор (шаблон проектування)|ітератор]]. Такий підхід дозволяє створення [[рекурсивний спуск|рекурсивних аналізаторів]], у яких структура коду відображає структуру аналізованих XML-документів, проміжні результати аналізу можуть бути використані і розміщені у вигляді локальних змінних в [[підпрограма]]х, що виконують аналіз, передані як параметри до підпрограм нижчого рівня або повернені до підпрограм вищого рівня. До прикладів активних аналізаторів належать [[StAX]] у мові програмування [[Java]], [[SimpleXML]] у [[PHP]] та System.Xml.XmlReader у [[.NET]].
 
Рядок 167 ⟶ 159:
 
=== Зв'язування даних ===
 
Іншим підходом до обробки XML-документів є зв'язування даних ({{lang-en|Data binding}}). Відповідно до цього підходу, XML-дані доступні у вигляді спеціальних, строго типізованих структур даних.
<!--
Рядок 176 ⟶ 167:
 
== Історія ==
 
Специфікації та стандарти XML видаються комітетом W3C, поточний стандарт&nbsp;— версії 1.1 ([http://www.w3.org/TR/2004/REC-xml-20040204/ див.]).
 
Рядок 213 ⟶ 203:
 
== Див. також ==
 
{{Multicol}}
* [[Список позначень символів у XML та HTML]]
Рядок 287 ⟶ 276:
 
== Посилання ==
 
* [http://www.w3.org/XML/ Сторінка, присвячена XML на www.w3.org]
* [http://www.w3.org/TR/2004/REC-xml-20040204/ Технічна рекомендація, XML 1.0]