<!DOCTYPE html>
<html class="client-nojs" lang="ru" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>XML</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="./_res_/favicon.png">
    <link rel="canonical" href="https://ru.wikipedia.org/wiki/XML"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.styles.legacy.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    <link href="./_mw_/ext.gadget.common-site.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.gadget.logo.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="./_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="./_res_/vector.css">
  </head>

  <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-XML rootpage-XML skin-vector action-view">
    <div id="content" class="mw-body" role="main">
      <a id="top"></a>
      <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">XML</span></h1>
      <div id="bodyContent" class="vector-body">
        <div id="contentSub">
          <div id="mw-content-subtitle"></div>
        </div>
        <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="ru" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="ru" dir="ltr"><table class="infobox infobox-7d64c06403bca174" style="" data-name="Файловый формат"><tbody><tr><th colspan="2" scope="colgroup" class="infobox-above" style="">XML (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">eXtensible Markup Language</span>) расширяемый язык разметки</th></tr><tr><td colspan="2" class="infobox-image" style=""> <span data-wikidata-claim-id="Q2115$b6910765-4203-12e9-b066-fc47816a304a" class="wikidata-claim" data-wikidata-property-id="P154"><span class="wikidata-snak wikidata-main-snak"><span typeof="mw:File/Frameless"><img alt="Изображение логотипа" src="./_assets_/0c70a452f799bfe840676ee341124611/Extensible_Markup_Language_(XML)_logo.svg.png" decoding="async" width="193" height="80" class="mw-file-element" data-file-width="123" data-file-height="51" loading="lazy"></span></span></span> </td></tr><tr><td colspan="2" class="infobox-image" style=""> <span data-wikidata-claim-id="Q2115$6D7F3DF8-E981-46CE-ACE3-1CEBFE2F8D3D" class="wikidata-claim" data-wikidata-property-id="P18"><span class="wikidata-snak wikidata-main-snak"><span typeof="mw:File/Frameless"><img src="./_assets_/0c70a452f799bfe840676ee341124611/Example_of_SVG_code.png" decoding="async" width="274" height="212" class="mw-file-element" data-file-width="982" data-file-height="759" loading="lazy"></span></span></span> </td></tr>
<tr>
<td colspan="2" class="plainlist" style="text-align:center;">
<span data-wikidata-claim-id="Q2115$51b5edd1-4034-7ca4-556b-6d4e047231ad" class="wikidata-claim" data-wikidata-property-id="P2910"><span class="wikidata-snak wikidata-main-snak"><span typeof="mw:File/Frameless"><img src="./_assets_/0c70a452f799bfe840676ee341124611/XML.svg.png" decoding="async" width="70" height="80" class="mw-file-element" data-file-width="293" data-file-height="333" loading="lazy"></span></span></span></td>
</tr>
<tr>
<th scope="row" class="plainlist"><a href="%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0" title="Расширение имени файла">Расширение</a></th>
<td class="plainlist">
<span data-wikidata-property-id="P1195" class="no-wikidata"><code>.xml</code></span></td>
</tr>
<tr>
<th scope="row" class="plainlist"><a href="MIME" title="MIME">MIME</a>-тип</th>
<td class="plainlist">
<span data-wikidata-property-id="P1163" class="no-wikidata">application/xml<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>, text/xml<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> (deprecated in an expired draft)<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></span></td>
</tr>
<tr>
<th scope="row" class="plainlist">Разработчик</th>
<td class="plainlist">
<span data-wikidata-property-id="P178" class="no-wikidata"><a href="%D0%9A%D0%BE%D0%BD%D1%81%D0%BE%D1%80%D1%86%D0%B8%D1%83%D0%BC_%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D1%8B" title="Консорциум Всемирной паутины">Консорциум Всемирной паутины</a></span></td>
</tr>
<tr>
<th scope="row" class="plainlist">Опубликован</th>
<td class="plainlist">
<span data-wikidata-property-id="P577" class="no-wikidata">1998</span></td>
</tr>
<tr>
<th scope="row" class="plainlist">Тип формата</th>
<td class="plainlist">
<span data-wikidata-property-id="P31" class="no-wikidata"><a href="%D0%AF%D0%B7%D1%8B%D0%BA_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8" title="Язык разметки">язык разметки</a></span></td>
</tr>
<tr>
<th scope="row" class="plainlist">Расширен из</th>
<td class="plainlist">
<span data-wikidata-property-id="P144" class="no-wikidata"><a href="SGML" title="SGML">SGML</a></span></td>
</tr>
<tr>
<th scope="row" class="plainlist">Развит в</th>
<td class="plainlist">
<a href="XHTML" title="XHTML">XHTML</a>, <a href="RSS" title="RSS">RSS</a>, <a href="Atom" title="Atom">Atom</a>, <a href="KML" title="KML">KML</a>, <a href="SVG" title="SVG">SVG</a> и множество других форматов</td>
</tr>
<tr>
<th scope="row" class="plainlist">Стандарт(ы)</th>
<td class="plainlist">
1.0 (Fifth Edition), <a href="26_%D0%BD%D0%BE%D1%8F%D0%B1%D1%80%D1%8F" title="26 ноября">26 ноября</a> <a href="2008_%D0%B3%D0%BE%D0%B4" title="2008 год">2008 года</a><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><br>1.1 (Second Edition), <a href="16_%D0%B0%D0%B2%D0%B3%D1%83%D1%81%D1%82%D0%B0" title="16 августа">16 августа</a> <a href="2006_%D0%B3%D0%BE%D0%B4" title="2006 год">2006 года</a><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></td>
</tr>
<tr>
<th scope="row" class="plainlist"><a href="%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82" title="Открытый формат">Открытый формат</a>?</th>
<td class="plainlist">
да</td>
</tr>
<tr>
<th scope="row" class="plainlist">Сайт</th>
<td class="plainlist">
<span data-wikidata-claim-id="Q2115$15BA6246-A3A0-4711-B797-A4CBDB8D1F12" class="wikidata-claim" data-wikidata-property-id="P856"><span class="wikidata-snak wikidata-main-snak"><a rel="nofollow" class="external text" href="http://www.w3.org/XML">w3.org/XML</a>&nbsp;<span class="ref-info" title="на английском языке" style="cursor:help;">(англ.)</span></span></span></td>
</tr><tr><td colspan="2" class="infobox-below" style=";"><span data-wikidata-claim-id="q2115$B7A2D952-6FF9-43B2-8175-11A74F0B2D95" class="wikidata-claim" data-wikidata-property-id="P373"><span class="wikidata-snak wikidata-main-snak"><span typeof="mw:File"><a href="https://commons.wikimedia.org/wiki/Category:XML" title="commons:Category:XML" class="external"><img alt="Логотип Викисклада" src="./_assets_/0c70a452f799bfe840676ee341124611/Commons-logo.svg.png" decoding="async" width="15" height="20" class="mw-file-element" data-file-width="1024" data-file-height="1376" loading="lazy"></a></span>&nbsp;<a href="https://commons.wikimedia.org/wiki/Category:XML" class="extiw external" title="commons:Category:XML">Медиафайлы на Викискладе</a></span></span></td></tr>
</tbody></table>
<p><b>XML</b> (<small><a href="%D0%9C%D0%A4%D0%90" class="mw-redirect" title="МФА">МФА</a></small>: [<span class="IPA"><a href="%D0%97%D0%BD%D0%B0%D0%BA_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%83%D0%B4%D0%B0%D1%80%D0%B5%D0%BD%D0%B8%D1%8F" title="Знак дополнительного ударения">ˌ</a><a href="%D0%9D%D0%B5%D0%BE%D0%B3%D1%83%D0%B1%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B3%D0%BB%D0%B0%D1%81%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D1%80%D1%8F%D0%B4%D0%B0_%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B5-%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%B5%D0%B3%D0%BE_%D0%BF%D0%BE%D0%B4%D1%8A%D1%91%D0%BC%D0%B0" title="Неогублённый гласный переднего ряда средне-верхнего подъёма">e</a><a href="%D0%93%D0%BB%D1%83%D1%85%D0%BE%D0%B9_%D0%B2%D0%B5%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B9_%D0%B2%D0%B7%D1%80%D1%8B%D0%B2%D0%BD%D0%BE%D0%B9_%D1%81%D0%BE%D0%B3%D0%BB%D0%B0%D1%81%D0%BD%D1%8B%D0%B9" title="Глухой велярный взрывной согласный">k</a><a href="%D0%93%D0%BB%D1%83%D1%85%D0%BE%D0%B9_%D0%B0%D0%BB%D1%8C%D0%B2%D0%B5%D0%BE%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B9_%D1%81%D0%B8%D0%B1%D0%B8%D0%BB%D1%8F%D0%BD%D1%82" title="Глухой альвеолярный сибилянт">s</a><a href="%D0%9C%D0%B5%D0%B6%D0%B4%D1%83%D0%BD%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D1%84%D0%BE%D0%BD%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82#Супрасегментные_средства" title="Международный фонетический алфавит">.</a><a href="%D0%9D%D0%B5%D0%BE%D0%B3%D1%83%D0%B1%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B3%D0%BB%D0%B0%D1%81%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D1%80%D1%8F%D0%B4%D0%B0_%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B5-%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%B5%D0%B3%D0%BE_%D0%BF%D0%BE%D0%B4%D1%8A%D1%91%D0%BC%D0%B0" title="Неогублённый гласный переднего ряда средне-верхнего подъёма">e</a><a href="%D0%93%D1%83%D0%B1%D0%BD%D0%BE-%D0%B3%D1%83%D0%B1%D0%BD%D0%BE%D0%B9_%D0%BD%D0%BE%D1%81%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%BE%D0%B3%D0%BB%D0%B0%D1%81%D0%BD%D1%8B%D0%B9" title="Губно-губной носовой согласный">m</a><a href="%D0%97%D0%BD%D0%B0%D0%BA_%D1%83%D0%B4%D0%B0%D1%80%D0%B5%D0%BD%D0%B8%D1%8F_(%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB_%D0%9C%D0%A4%D0%90)" title="Знак ударения (символ МФА)">ˈ</a><a href="%D0%9D%D0%B5%D0%BE%D0%B3%D1%83%D0%B1%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B3%D0%BB%D0%B0%D1%81%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D1%80%D1%8F%D0%B4%D0%B0_%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B5-%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%B5%D0%B3%D0%BE_%D0%BF%D0%BE%D0%B4%D1%8A%D1%91%D0%BC%D0%B0" title="Неогублённый гласный переднего ряда средне-верхнего подъёма">e</a><a href="%D0%9F%D0%B5%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D1%8F%D0%B7%D1%8B%D1%87%D0%BD%D1%8B%D0%B9_%D0%BB%D0%B0%D1%82%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BF%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BD%D1%82" title="Переднеязычный латеральный аппроксимант">l</a></span>], <a href="%D0%90%D0%B1%D0%B1%D1%80%D0%B5%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B0" title="Аббревиатура">аббр.</a> от <a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">e<b>X</b>tensible <b>M</b>arkup <b>L</b>anguage</span>)&nbsp;— «расширяемый <a href="%D0%AF%D0%B7%D1%8B%D0%BA_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8" title="Язык разметки">язык разметки</a>». Рекомендован <a href="W3C" class="mw-redirect" title="W3C">Консорциумом Всемирной паутины</a> (W3C). Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным <a href="%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" title="Синтаксис (программирование)">синтаксисом</a>, <b>удобный</b> для <b>создания</b> и <b>обработки</b> документов как <b>программами,</b> так и <b>человеком</b>, с акцентом на использование в Интернете. 
</p><p>Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка. <i>Расширение XML</i>&nbsp;— это конкретная <a href="%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0" title="Формальная грамматика">грамматика</a>, созданная на базе XML и представленная словарём тегов и их атрибутов, а также набором правил, определяющих, какие атрибуты и элементы могут входить в состав других элементов. Сочетание простого формального синтаксиса, удобства для человека, расширяемости, а также базирование на кодировках <a href="%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4" title="Юникод">Юникод</a> для представления содержания документов привело к широкому использованию как, собственно, XML, так и множества производных специализированных языков на базе XML в самых разнообразных программных средствах.
</p><p>XML является подмножеством <a href="SGML" title="SGML">SGML</a>.<style data-mw-deduplicate="TemplateStyles:r141254988">
/* start https://ru.wikipedia.org/ */


.mw-parser-output .ts-fix-template{font-style:normal;font-weight:normal;white-space:nowrap}.mw-parser-output .ts-fix-error{font-size:inherit}@media screen{.mw-parser-output .ts-fix-text{border:1px solid var(--border-color-base,#a2a9b1);box-decoration-break:clone;margin:0 -0.1em;padding:0 0.1em;transition:background 0.1s}.mw-parser-output .ts-fix-text:hover{background:#fee7e6}html.skin-theme-clientpref-night .mw-parser-output .ts-fix-text:hover{background:#4f1312}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .ts-fix-text:hover{background:#4f1312}}@media screen and (hover:hover){.mw-parser-output .ts-fix-comment,.mw-parser-output .ts-fix-commented>a:not(:hover){border-bottom:1px dotted;text-decoration:none}}


/* end   https://ru.wikipedia.org/ */
</style>
</p><p>На основе XML создаются специализированные форматы для хранения диаграмм, <a href="%D0%9A%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BA%D0%B0%D1%80%D1%82%D0%B0" title="Концептуальная карта">концептуальных карт</a> и других моделей данных.
</p>

<div class="mw-heading mw-heading2"><h2 id="Язык_XML"><span id=".D0.AF.D0.B7.D1.8B.D0.BA_XML"></span>Язык XML</h2></div>
<p>Спецификация XML описывает язык и ряд вопросов, касающихся кодировки и обработки документов. Материал секции представляет собой сокращённое изложение описания языка в Спецификации XML, адаптированное для настоящей статьи.
</p><p>Нормативным считается английский вариант документа, поэтому основные термины приводятся с их английскими оригиналами.
</p><p>Перевод основных терминов в основном следует доступному в интернете переводу Спецификации на русский язык, исключение составляют термины <i>tag</i> и <i>declaration</i>. Для термина tag здесь используется перевод <i>тег</i>. Для термина declaration отдано предпочтение распространённому переводу <i>объявление</i> (против также распространённой кальки <i>декларация</i>).
</p><p>В литературе и интернете могут встречаться и иные переводы основных терминов.
</p>
<div class="mw-heading mw-heading3"><h3 id="Физическая_и_логическая_структуры_документа"><span id=".D0.A4.D0.B8.D0.B7.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B0.D1.8F_.D0.B8_.D0.BB.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B0.D1.8F_.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D1.8B_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0"></span>Физическая и логическая структуры документа</h3></div>
<p>С физической точки зрения документ состоит из <i><a href="%D0%A1%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)" title="Сущность (информатика)">сущностей</a></i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">entities</span>), из которых каждая может ссылаться на другую сущность. Единственный <i><b>корневой элемент</b></i>&nbsp;— <b>документная сущность</b>.
Содержание сущностей&nbsp;— символы.
</p><p>С логической точки зрения документ состоит из <i>комментариев</i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">comments</span>), <i>объявлений</i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">declarations</span>), <i>элементов </i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">elements</span>), <i>ссылок</i> на сущности (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">character references</span>) и <i>инструкций обработки</i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">processing instructions</span>). Всё это в документе структуризуется <i>разметкой </i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">markup</span>).
</p>
<div class="mw-heading mw-heading4"><h4 id="Физическая_структура"><span id=".D0.A4.D0.B8.D0.B7.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B0.D1.8F_.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0"></span>Физическая структура</h4></div>
<p><b>Сущность</b>&nbsp;— мельчайшая часть в документе. Все сущности что-нибудь содержат, и у всех них есть имя (существуют исключения, напр. <b>документная сущность</b>). Проще говоря, термин «сущность» описывает «сущую вещь», «<b>что-то</b>»<sup id="cite_ref-autogenerated1_6-0" class="reference"><a href="#cite_note-autogenerated1-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>.
</p><p>Документ состоит из сущностей, содержание которых&nbsp;— символы. Все символы разделены на два типа: символы данных (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">character data</span>) и символы разметки.
К разметке относятся: 
</p>
<ol><li>теги (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">tags</span>) - обозначают границы элементов;</li>
<li>объявления и инструкции обработки, включая их <i>атрибуты</i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">attributes</span>);</li>
<li>ссылки на сущности;</li>
<li>комментарии;</li>
<li>последовательности символов, обрамляющие секции «<a href="CDATA" title="CDATA">CDATA</a>».</li></ol>
<p>Часть документа, не принадлежащая разметке, составляет символьные данные документа.
</p>
<div class="mw-heading mw-heading4"><h4 id="Логическая_структура"><span id=".D0.9B.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B0.D1.8F_.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0"></span>Логическая структура</h4></div>
<p>Все составляющие части документа обобщаются в <i>пролог</i> и <b>корневой элемент</b>.
<b>Корневой элемент</b>&nbsp;— обязательная часть документа, составляющая всю его суть (пролог, вообще говоря, может отсутствовать). Корневой элемент может включать (а может не включать) вложенные в него элементы, символьные данные и комментарии. Вложенные в корневой элемент элементы, в свою очередь, могут включать вложенные в них элементы, символьные данные и комментарии, и так далее.
<b>Пролог</b> может включать <b>объявления</b>, <b>инструкции обработки</b>, <b>комментарии</b>. Его следует начинать с <i>объявления XML</i>, хотя в определённой ситуации допускается отсутствие этого объявления.
</p><p>Элементы документа должны быть <i>правильно вложены</i>: любой элемент, начинающийся внутри другого элемента (то есть любой элемент документа, кроме корневого), должен заканчиваться внутри элемента, в котором он начался.
Символьные данные могут встречаться внутри элементов как непосредственно так и в специальных <i>секциях «CDATA»</i>.
Объявления, инструкции обработки и элементы могут иметь связанные с ними атрибуты. Атрибуты используются для связывания с логической единицей текста пар <i>«</i>имя-значение<i>»</i>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Символы_разметки"><span id=".D0.A1.D0.B8.D0.BC.D0.B2.D0.BE.D0.BB.D1.8B_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.82.D0.BA.D0.B8"></span>Символы разметки</h3></div>
<p>Разметка всегда начинается символом <code>&lt;</code> и заканчивается символом <code>&gt;</code>.
</p><p>Наряду с символами <code>&lt;</code> и <code>&gt;</code>, специальную роль для разметки играет также символ <code>&amp;</code>. Угловые скобки обозначают границы элементов, инструкций обработки и некоторых других последовательностей. <a href="%D0%90%D0%BC%D0%BF%D0%B5%D1%80%D1%81%D0%B0%D0%BD%D0%B4" title="Амперсанд">Амперсанд</a> позволяет выполнить замену текста при помощи <i>сущностей</i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">entities</span>)<sup id="cite_ref-autogenerated1_6-1" class="reference"><a href="#cite_note-autogenerated1-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Решение_проблемы_неоднозначности_разметки"><span id=".D0.A0.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D1.8B_.D0.BD.D0.B5.D0.BE.D0.B4.D0.BD.D0.BE.D0.B7.D0.BD.D0.B0.D1.87.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.82.D0.BA.D0.B8"></span>Решение проблемы неоднозначности разметки</h3></div>
<p>Употребление разметочных символов в символьных данных затрудняет распознавание конструкций разметки и может создать проблему неоднозначности структуры. В XML эта проблема решается следующим образом: &lt;, &gt; и &amp; не могут присутствовать в символьных данных и в значениях атрибутов в их непосредственном виде, для их представления в этих случаях зарезервированы специальные <i>сущности</i>:
</p>
<table class="wikitable">
<tbody><tr>
<th>Символ</th>
<th>Замена
</th></tr>
<tr>
<td><b>&lt;</b></td>
<td>&amp;lt;
</td></tr>
<tr>
<td><b>&gt;</b></td>
<td>&amp;gt;
</td></tr>
<tr>
<td><b>&amp;</b>
</td>
<td>&amp;amp;
</td></tr></tbody></table>
<p>Кроме того, для употребления апострофов и кавычек внутри значений атрибутов используются следующие <i>сущности</i>:
</p>
<table class="wikitable">

<tbody><tr>
<td><b>'</b></td>
<td>&amp;apos;
</td></tr>
<tr>
<td><b>"</b></td>
<td>&amp;quot;
</td></tr>
</tbody></table>
<p>Правило замены разметочных символов на их обозначающие <i>сущности</i> не распространяется на символьные данные в секциях «CDATA», зато выполняется во <b>всех</b> остальных местах документа.
</p>
<div class="mw-heading mw-heading3"><h3 id="Числовые_ссылки_на_символы"><span id=".D0.A7.D0.B8.D1.81.D0.BB.D0.BE.D0.B2.D1.8B.D0.B5_.D1.81.D1.81.D1.8B.D0.BB.D0.BA.D0.B8_.D0.BD.D0.B0_.D1.81.D0.B8.D0.BC.D0.B2.D0.BE.D0.BB.D1.8B"></span>Числовые ссылки на символы</h3></div>
<p>Числовые ссылки на символы указывают кодовую позицию символа в наборе символов документа. Числовые ссылки на символы могут принимать две формы<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>:
</p>
<ol><li>синтаксис «<b>&amp;#D;</b>», где D&nbsp;— <a href="%D0%94%D0%B5%D1%81%D1%8F%D1%82%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" title="Десятичная система счисления">десятичное</a> число;</li>
<li>синтаксис «<b>&amp;#xH;</b>» или «<b>&amp;#XH;</b>», где H&nbsp;— шестнадцатеричное число (<a href="%D0%A8%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D0%B4%D1%86%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" title="Шестнадцатеричная система счисления">шестнадцатеричные</a> числа в числовых символьных ссылках не чувствительны к регистру).</li></ol>
<p>Примеры числовых ссылок на символы:
</p>
<ul><li><b>&amp;#229;</b>&nbsp;— (в десятичной форме) представляет букву «а» с маленьким кружком над ней (используется, например, в норвежском языке);</li>
<li><b>&amp;#xE5;</b>&nbsp;— (в шестнадцатеричном) представляет собой тот же символ;</li>
<li><b>&amp;#Xe5;</b>&nbsp;— (в шестнадцатеричном) также представляет тот же символ;</li>
<li><b>&amp;#1048;</b>&nbsp;— (в десятичной форме) представляет заглавную букву кириллицы «I»;</li>
<li><b>&amp;#x6C34;</b>&nbsp;— (в шестнадцатеричном) представляет китайский иероглиф «вода»;</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Имена"><span id=".D0.98.D0.BC.D0.B5.D0.BD.D0.B0"></span>Имена</h3></div>
<p>В языке XML все имена должны начинаться с буквы, символа подчёркивания (_) и продолжаться только допустимыми для имён символами, а именно: они могут содержать только буквы, входящие в секцию букв кодировки Unicode, арабские цифры, дефисы, знаки подчёркивания, точки. Так как буквы не ограничены исключительно символами <a href="ASCII" title="ASCII">ASCII</a>, то в именах можно использовать буквы из любого языка.
</p>
<div class="mw-heading mw-heading3"><h3 id="Пролог"><span id=".D0.9F.D1.80.D0.BE.D0.BB.D0.BE.D0.B3"></span>Пролог</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Объявление_XML"><span id=".D0.9E.D0.B1.D1.8A.D1.8F.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_XML"></span>Объявление XML</h4></div>
<p>Объявление XML указывает версию языка, на которой написан документ. Поскольку интерпретация содержимого документа зависит от версии языка, спецификация предписывает начинать документ с объявления XML. В первой (1.0) версии языка использование объявления не было обязательным, в последующих версиях оно обязательно. Если объявление отсутствует, версия языка считается равной 1.0.
</p><p>Кроме версии XML, объявление может содержать информацию о <i>кодировке</i> документа и атрибут <code>standalone</code>.
</p><p>Примеры:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.1" encoding="UTF-8"?&gt;</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="windows-1251"?&gt;</span>
</pre></div>
<p>Атрибут <code>standalone</code> указывает, требуется ли для корректной обработки документа использование внешних деклараций.  
</p>
<ul><li><code>standalone="yes"</code> — документ должен интерпретироваться корректно без обращения к внешней DTD.</li>
<li><code>standalone="no"</code> — документ может использовать внешние декларации.</li></ul>
<p>Если атрибут отсутствует, его значение по умолчанию считается равным <code>no</code><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>.
</p><p>Примеры с использованием атрибута:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="Объявление_типа_документа"><span id=".D0.9E.D0.B1.D1.8A.D1.8F.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.82.D0.B8.D0.BF.D0.B0_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0"></span>Объявление типа документа</h4></div>
<p>Для объявления типа документа существует специальная инструкция <code>!DOCTYPE</code>. Она позволяет задать при помощи языка DTD, какие в документ входят элементы, каковы их атрибуты, какие сущности могут использоваться и кое-что ещё.
</p><p>Например, вот корректный документ:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0"?&gt;</span>
<span class="nt">&lt;greeting&gt;</span>Hello,<span class="w"> </span>world!<span class="nt">&lt;/greeting&gt;</span>
</pre></div>
<p>В нём есть корневой элемент <code>&lt;greeting&gt;Hello, world!&lt;/greeting&gt;</code>, и с логической точки зрения документ существует. Однако он недействителен (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;"> not valid</span>)<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>.
</p><p>При помощи Объявления типа документа (DTD) возможно описывать его содержание и логическую структуру, а также связывать с определённым элементом пару «имя&nbsp;— значение».
Вот как выглядит пролог в <a href="%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%91%D1%8D%D0%BA%D1%83%D1%81%D0%B0_%E2%80%94_%D0%9D%D0%B0%D1%83%D1%80%D0%B0" title="Расширенная форма Бэкуса — Наура">записи Бэкуса&nbsp;— Наура</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>:
</p>
<pre>prolog       &nbsp;::= XMLDecl? Misc* (doctypedecl Misc*)?
XMLDecl      &nbsp;::= '&lt;?xml' VersionInfo EncodingDecl? SDDecl? S? '?&gt;'
VersionInfo  &nbsp;::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"')
Eq           &nbsp;::= S? '=' S?
VersionNum   &nbsp;::= '1.' [0-9]+
Misc         &nbsp;::= Comment | PI | S
doctypedecl  &nbsp;::= '&lt;!DOCTYPE' S Name (S ExternalID)? S? ('[' intSubset ']' S?)? '&gt;'
DeclSep      &nbsp;::= PEReference | S
intSubset    &nbsp;::= (markupdecl | DeclSep)*
markupdecl   &nbsp;::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment
extSubset    &nbsp;::= TextDecl? extSubsetDecl
extSubsetDecl&nbsp;::= ( markupdecl | conditionalSect | DeclSep)*
</pre>
<p>После XML-объявления могут следовать комментарии, инструкции обработки или же пустые пространства<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>, но затем идёт Объявления типа документа, где «Name»&nbsp;— имя корневого <a href="%D0%A2%D0%B5%D0%B3" class="mw-disambig" title="Тег">тега</a>, «ExternalID»&nbsp;— внешний идентификатор, а «intSubset»&nbsp;— объявление разметки или же ссылка на сущность. Как гласит спецификация, если внешний идентификатор объявляется вместе с внутренним объявлением, то последнее идёт перед первым<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>.
</p><p>Например:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0"?&gt;</span>
<span class="cp">&lt;!DOCTYPE greeting SYSTEM "hello.dtd"&gt;</span>
<span class="nt">&lt;greeting&gt;</span>Hello,<span class="w"> </span>world!<span class="nt">&lt;/greeting&gt;</span>
</pre></div>
<p>Здесь «<code>SYSTEM "hello.dtd"</code>»&nbsp;— внешний идентификатор: адрес «hello.dtd» позволяет задействовать данные в документе «hello.dtd» как объявления разметки.
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"&nbsp;?&gt;</span>
<span class="cp">&lt;!DOCTYPE greeting [</span>
<span class="cp">  &lt;!ELEMENT greeting (#PCDATA)&gt;</span>
]&gt;
<span class="nt">&lt;greeting&gt;</span>Hello,<span class="w"> </span>world!<span class="nt">&lt;/greeting&gt;</span>
</pre></div>
<p>Здесь же разметка была объявлена локально в инструкции <code>!DOCTYPE</code>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Инструкция_обработки"><span id=".D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.86.D0.B8.D1.8F_.D0.BE.D0.B1.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8"></span>Инструкция обработки</h4></div>
<p>Инструкции обработки (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">processing instruction, PI</span>), позволяют размещать в документе инструкции для приложений.
В следующем примере показана инструкция обработки xml-stylesheet, передающая xml-stylesheet-приложению (например, браузеру) инструкции в файле my-style.css посредством атрибута href:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml-stylesheet type="text/css" href="my-style.css"?&gt;</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="Комментарий"><span id=".D0.9A.D0.BE.D0.BC.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.80.D0.B8.D0.B9"></span>Комментарий</h4></div>
<p>Комментарии (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">comment</span>) не относятся к символьным данным документа.
Комментарий начинается последовательностью «&lt;!--» и заканчивается последовательностью «--&gt;», внутри не может встречаться комбинация символов «--». Символ &amp; не используется внутри комментария в качестве разметки.
</p><p>Пример:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cm">&lt;!-- это комментарий --&gt;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Корневой_элемент"><span id=".D0.9A.D0.BE.D1.80.D0.BD.D0.B5.D0.B2.D0.BE.D0.B9_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82"></span>Корневой элемент</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Элемент_и_его_разметка"><span id=".D0.AD.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82_.D0.B8_.D0.B5.D0.B3.D0.BE_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.82.D0.BA.D0.B0"></span>Элемент и его разметка</h4></div>
<p>Элемент (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">element</span>) является понятием логической структуры документа. Каждый документ содержит один или несколько элементов. Границы элементов представлены <i>начальным</i> и <i>конечным</i> <i>тегами</i>. Имя элемента в начальном и конечном тегах элемента должно совпадать. Элемент может быть также представлен тегом <i>пустого элемента</i>, то есть не включающего в себя другие элементы и символьные данные.
</p><p>Тег (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">tag</span>)&nbsp;— конструкция разметки, которая содержит имя элемента.
</p><p>Начальный тег: <code>&lt;element1&gt;</code>
</p><p>Конечный тег: <code>&lt;/element1&gt;</code>
</p><p>Тег пустого элемента: <code>&lt;empty_element1 /&gt;</code>
</p><p>В элементе атрибуты могут использоваться только в начальном теге и теге пустого элемента.
</p><p>Пример кулинарного рецепта, размеченного с помощью XML:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
<span class="cp">&lt;!DOCTYPE recipe&gt;</span>
<span class="nt">&lt;recipe</span><span class="w"> </span><span class="na">name=</span><span class="s">"хлеб"</span><span class="w"> </span><span class="na">preptime=</span><span class="s">"5min"</span><span class="w"> </span><span class="na">cooktime=</span><span class="s">"180min"</span><span class="nt">&gt;</span>
<span class="w">   </span><span class="nt">&lt;title&gt;</span>
<span class="w">      </span>Простой<span class="w"> </span>хлеб
<span class="w">   </span><span class="nt">&lt;/title&gt;</span>
<span class="w">   </span><span class="nt">&lt;composition&gt;</span>
<span class="w">      </span><span class="nt">&lt;ingredient</span><span class="w"> </span><span class="na">amount=</span><span class="s">"3"</span><span class="w"> </span><span class="na">unit=</span><span class="s">"стакан"</span><span class="nt">&gt;</span>Мука<span class="nt">&lt;/ingredient&gt;</span>
<span class="w">      </span><span class="nt">&lt;ingredient</span><span class="w"> </span><span class="na">amount=</span><span class="s">"0.25"</span><span class="w"> </span><span class="na">unit=</span><span class="s">"грамм"</span><span class="nt">&gt;</span>Дрожжи<span class="nt">&lt;/ingredient&gt;</span>
<span class="w">      </span><span class="nt">&lt;ingredient</span><span class="w"> </span><span class="na">amount=</span><span class="s">"1.5"</span><span class="w"> </span><span class="na">unit=</span><span class="s">"стакан"</span><span class="nt">&gt;</span>Тёплая<span class="w"> </span>вода<span class="nt">&lt;/ingredient&gt;</span>
<span class="w">   </span><span class="nt">&lt;/composition&gt;</span>
<span class="w">   </span><span class="nt">&lt;instructions&gt;</span>
<span class="w">     </span><span class="nt">&lt;step&gt;</span>
<span class="w">        </span>Смешать<span class="w"> </span>все<span class="w"> </span>ингредиенты<span class="w"> </span>и<span class="w"> </span>тщательно<span class="w"> </span>замесить.<span class="w"> </span>
<span class="w">     </span><span class="nt">&lt;/step&gt;</span>
<span class="w">     </span><span class="nt">&lt;step&gt;</span>
<span class="w">        </span>Закрыть<span class="w"> </span>тканью<span class="w"> </span>и<span class="w"> </span>оставить<span class="w"> </span>на<span class="w"> </span>один<span class="w"> </span>час<span class="w"> </span>в<span class="w"> </span>тёплом<span class="w"> </span>помещении.<span class="w"> </span>
<span class="w">     </span><span class="nt">&lt;/step&gt;</span>
<span class="w">     </span><span class="cm">&lt;!-- </span>
<span class="cm">        &lt;step&gt;</span>
<span class="cm">           Почитать вчерашнюю газету. </span>
<span class="cm">        &lt;/step&gt;</span>
<span class="cm">         - это сомнительный шаг...</span>
<span class="cm">      --&gt;</span>
<span class="w">     </span><span class="nt">&lt;step&gt;</span>
<span class="w">        </span>Замесить<span class="w"> </span>ещё<span class="w"> </span>раз,<span class="w"> </span>положить<span class="w"> </span>на<span class="w"> </span>противень<span class="w"> </span>и<span class="w"> </span>поставить<span class="w"> </span>в<span class="w"> </span>духовку.
<span class="w">     </span><span class="nt">&lt;/step&gt;</span>
<span class="w">   </span><span class="nt">&lt;/instructions&gt;</span>
<span class="nt">&lt;/recipe&gt;</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="Секция_CDATA"><span id=".D0.A1.D0.B5.D0.BA.D1.86.D0.B8.D1.8F_CDATA"></span>Секция CDATA</h4></div>
<p>Секция <a href="CDATA" title="CDATA">CDATA</a> используется для включения фрагментов текста, в которых символы <code>&lt;</code>, <code>&gt;</code> и <code>&amp;</code> должны интерпретироваться как обычные символы, а не как разметка.  
Секция может встречаться в любом месте документа, где допускаются символьные данные. Она начинается последовательностью <code>&lt;![CDATA[</code> и завершается последовательностью <code>]]&gt;</code>.  
Между этими ограничителями может находиться любой текст, который будет обработан как символьные данные, без интерпретации встроенных разметочных символов<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Корректный_документ"><span id=".D0.9A.D0.BE.D1.80.D1.80.D0.B5.D0.BA.D1.82.D0.BD.D1.8B.D0.B9_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82"></span>Корректный документ</h3></div>
<p><i>Корректный</i> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">well-formed</span>) документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу: правильная структура документа, совпадение имен в начальном и конечном теге элемента и&nbsp;т.&nbsp;п. Документ, который неправильно построен, не может считаться документом XML.
</p>
<div class="mw-heading mw-heading3"><h3 id="Пространства_имён"><span id=".D0.9F.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D1.81.D1.82.D0.B2.D0.B0_.D0.B8.D0.BC.D1.91.D0.BD"></span>Пространства имён</h3></div>
<p>Пример документа:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
<span class="cm">&lt;!-- login screen --&gt;</span>
<span class="nt">&lt;edsscript&gt;</span>
<span class="w">   </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"start"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">         </span>btn*
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">         </span>msg_generic
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"disablenbb"</span><span class="nt">&gt;</span>
<span class="w">         </span>all
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"setscrtext"</span><span class="nt">&gt;</span>
<span class="w">         </span>@@Sisteme<span class="w"> </span>Giriş@@
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"enablenbb"</span><span class="nt">&gt;</span>
<span class="w">         </span>forward,mainmenu
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"switchmsgtarget"</span><span class="nt">&gt;</span>
<span class="w">         </span>LOGIN_DLG
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"sendmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>start
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"jump"</span><span class="nt">&gt;</span>
<span class="w">         </span>step2
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">   </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"step2"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"waittrigger"</span><span class="nt">&gt;</span>
<span class="w">         </span>btnforward
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">         </span>login*
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"disablenbb"</span><span class="nt">&gt;</span>
<span class="w">         </span>all
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"sendmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>check
<span class="w">      </span><span class="nt">&lt;/action&gt;</span>
<span class="w">   </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"login_succeded"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"appmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>login_succeeded
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"endscript"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"login_unknownuser"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"appmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>login_unknownuser
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"login_unknownuser"</span><span class="nt">&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"disablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>all
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"setscrtext"</span><span class="nt">&gt;</span>
<span class="w">            </span>@@Hata@@
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"showhtml"</span><span class="nt">&gt;</span>
<span class="w">            </span>generic_neg.htm,@@Yanlış<span class="w"> </span>kullanıcı<span class="w"> </span>ismi@@,@@Lütfen<span class="w"> </span>kullanıcı<span class="w"> </span>ismini<span class="w"> </span>doğru<span class="w"> </span>giriniz.@@
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"enablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>back
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"waittrigger"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnback
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"jump"</span><span class="nt">&gt;</span>
<span class="w">            </span>start
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"login_incorrectpwd"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"appmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>login_incorrectpwd
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"login_incorrectpwd"</span><span class="nt">&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"disablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>all
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"setscrtext"</span><span class="nt">&gt;</span>
<span class="w">            </span>@@Hata@@
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"showhtml"</span><span class="nt">&gt;</span>
<span class="w">            </span>generic_neg.htm,@@Hatalı<span class="w"> </span>parola@@,@@Lütfen<span class="w"> </span>parolanızı<span class="w"> </span>doğru<span class="w"> </span>giriniz.@@
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"enablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>back
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"waittrigger"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnback
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"jump"</span><span class="nt">&gt;</span>
<span class="w">             </span>start
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="cm">&lt;!-- generic triggers --&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnback"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"buttonclick"</span><span class="nt">&gt;</span>
<span class="w">         </span>back
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnback"</span><span class="nt">&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnback
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnforward"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"buttonclick"</span><span class="nt">&gt;</span>
<span class="w">        </span>forward
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnforward"</span><span class="nt">&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnforward
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnmainmenu"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"buttonclick"</span><span class="nt">&gt;</span>
<span class="w">         </span>mainmenu
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"jumpscript"</span><span class="nt">&gt;</span>
<span class="w">            </span><span class="nt">&lt;value</span><span class="w"> </span><span class="na">label=</span><span class="s">"mainmenuscript"</span><span class="w"> </span><span class="na">scope=</span><span class="s">"local"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnquitapp"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"buttonclick"</span><span class="nt">&gt;</span>
<span class="w">         </span>quitapplication
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"btnquitapp"</span><span class="nt">&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"callscript"</span><span class="nt">&gt;</span>
<span class="w">            </span>quitapp.xml
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"jump"</span><span class="nt">&gt;</span>
<span class="w">            </span>start
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"error_generic"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"appmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>error*
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"showhtml"</span><span class="nt">&gt;</span>
<span class="w">            </span>errdsc_null.htm,@@Hata@@
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"disablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>all
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"enablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>forward
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"waittrigger"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnforward
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"endscript"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"msg_generic"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"appmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>msg_generic
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"showhtml"</span><span class="nt">&gt;</span>
<span class="w">            </span>generic_msg.htm
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">            </span>msg_generic
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="w">   </span><span class="cm">&lt;!-- An unhandled exception is thrown from the hard code side. --&gt;</span>
<span class="w">   </span><span class="nt">&lt;trigger</span><span class="w"> </span><span class="na">name=</span><span class="s">"error_hardcodeside"</span><span class="nt">&gt;</span>
<span class="w">      </span><span class="nt">&lt;condition</span><span class="w"> </span><span class="na">type=</span><span class="s">"appmsg"</span><span class="nt">&gt;</span>
<span class="w">         </span>error_hardcodeside
<span class="w">      </span><span class="nt">&lt;/condition&gt;</span>
<span class="w">      </span><span class="nt">&lt;sequence&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeroff"</span><span class="nt">&gt;</span>
<span class="w">            </span>*
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnmainmenu
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"triggeron"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnquitapp
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"disablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>all
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"enablenbb"</span><span class="nt">&gt;</span>
<span class="w">            </span>mainmenu
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"showhtml"</span><span class="nt">&gt;</span>
<span class="w">            </span>errdsc_null.htm,Hata,<span class="w"> </span>@@İşlem<span class="w"> </span>sırasında<span class="w"> </span>bir<span class="w"> </span>hata<span class="w"> </span>meydana<span class="w"> </span>geldi.@@
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">         </span><span class="nt">&lt;action</span><span class="w"> </span><span class="na">cmd=</span><span class="s">"waittrigger"</span><span class="nt">&gt;</span>
<span class="w">            </span>btnmainmenu
<span class="w">         </span><span class="nt">&lt;/action&gt;</span>
<span class="w">      </span><span class="nt">&lt;/sequence&gt;</span>
<span class="w">   </span><span class="nt">&lt;/trigger&gt;</span>
<span class="nt">&lt;/edsscript&gt;</span>
</pre></div>

<div class="mw-heading mw-heading2"><h2 id="Регламентация_работы_с_документами:_правила,_языки,_программные_интерфейсы"><span id=".D0.A0.D0.B5.D0.B3.D0.BB.D0.B0.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_.D1.81_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D0.BC.D0.B8:_.D0.BF.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.B0.2C_.D1.8F.D0.B7.D1.8B.D0.BA.D0.B8.2C_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.BD.D1.8B.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.8B"></span>Регламентация работы с документами: правила, языки, программные интерфейсы</h2></div>
<p>Этот раздел содержит изложение некоторых положений рекомендаций W3C, касающихся работы с документами. Соответствующие рекомендации могут относиться как к документам XML, так и к более широкому классу документов. Ссылки, как правило, даются на средства работы с документами, рекомендованные W3C.
</p>
<div class="mw-heading mw-heading3"><h3 id="Кодировка_документов"><span id=".D0.9A.D0.BE.D0.B4.D0.B8.D1.80.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2"></span>Кодировка документов</h3></div>
<p>Спецификация требует, чтобы обрабатывающие программы поддерживали по крайней мере две кодировки Юникод: <a href="UTF-8" title="UTF-8">UTF-8</a> и <a href="UTF-16" title="UTF-16">UTF-16</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="XML-процессор_и_приложение"><span id="XML-.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81.D0.BE.D1.80_.D0.B8_.D0.BF.D1.80.D0.B8.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5"></span>XML-процессор и приложение</h3></div>
<p>Спецификация XML определяет понятия <i>XML-процессор</i> и <i>приложение</i>.
XML-процессор (<a href="%D0%9F%D0%B0%D1%80%D1%81%D0%B5%D1%80" class="mw-redirect" title="Парсер">парсер</a>)&nbsp;— программа, анализирующая разметку и передающая информацию о структуре документа другой программе&nbsp;— приложению.
</p><p>Спецификация XML налагает определённые требования на процессор, не касаясь требований к приложению.
</p>
<div class="mw-heading mw-heading3"><h3 id="Действительный_документ._Проверяющие_и_непроверяющие_процессоры"><span id=".D0.94.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B9_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82._.D0.9F.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D1.8F.D1.8E.D1.89.D0.B8.D0.B5_.D0.B8_.D0.BD.D0.B5.D0.BF.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D1.8F.D1.8E.D1.89.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81.D0.BE.D1.80.D1.8B"></span>Действительный документ. Проверяющие и непроверяющие процессоры</h3></div>
<p>Документ является <i>действительным</i>, если с ним связано <a href="DTD" title="DTD">определение типа документа</a> и если этот документ отвечает представленным в определении типа документа ограничениям.
</p><p>XML-процессоры делятся на два класса: проверяющие и непроверяющие.
</p><p>Проверяющие процессоры проверяют действительность документа и должны сообщать (по выбору пользователя) о нарушении ограничений, сформулированных в определении типа документа.
</p><p>Непроверяющие процессоры не проверяют действительность документа, но обязанности по предварительной обработке документа, упомянутые выше, остаются за ними.
</p>
<div class="mw-heading mw-heading3"><h3 id="Описание_типов_документов:_языки_схем"><span id=".D0.9E.D0.BF.D0.B8.D1.81.D0.B0.D0.BD.D0.B8.D0.B5_.D1.82.D0.B8.D0.BF.D0.BE.D0.B2_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2:_.D1.8F.D0.B7.D1.8B.D0.BA.D0.B8_.D1.81.D1.85.D0.B5.D0.BC"></span>Описание типов документов: языки схем</h3></div>
<p>Для описания типов документов используются языки схем (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">schema language</span>).
Поскольку XML является подмножеством языка <a href="SGML" title="SGML">SGML</a>, то он унаследовал разработанный для SGML язык Document Type Definition (<a href="DTD" title="DTD">DTD</a>).
Позднее были разработаны и другие языки схем, наиболее известны из которых <a href="XML_Schema" class="mw-redirect" title="XML Schema">XML Schema</a>, <a href="RELAX_NG" title="RELAX NG">RELAX NG</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Преобразование_документа_XML"><span id=".D0.9F.D1.80.D0.B5.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0_XML"></span>Преобразование документа XML</h3></div>
<p>Для решения задачи преобразования документа XML в другую схему или другой формат предназначен язык <a href="XSLT" title="XSLT">XSLT</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Формат_для_визуализации_документа"><span id=".D0.A4.D0.BE.D1.80.D0.BC.D0.B0.D1.82_.D0.B4.D0.BB.D1.8F_.D0.B2.D0.B8.D0.B7.D1.83.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0"></span>Формат для визуализации документа</h3></div>
<p>Для форматированного документа (документа, подготовленного к визуализации) предназначен формат <a href="XSL-FO" title="XSL-FO">XSL-FO</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Языки_запросов"><span id=".D0.AF.D0.B7.D1.8B.D0.BA.D0.B8_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.BE.D0.B2"></span>Языки запросов</h3></div>
<p><a href="XPath" title="XPath">XPath</a>&nbsp;— синтаксис для адресации содержимого документа, представленного в форме дерева. Выражения XPath используются в языке <i>XQuery</i>.
Выражения XPath, вообще говоря, могут использоваться в любом контексте, где уместно использовать формальные ссылки на элементы дерева, в частности, в качестве параметров методов интерфейсов доступа к документу.
</p><p><a href="XQuery" title="XQuery">XQuery</a>&nbsp;— язык программирования, ориентированный на работу с документами.
</p>
<div class="mw-heading mw-heading3"><h3 id="Чтение_XML:_три_варианта_API"><span id=".D0.A7.D1.82.D0.B5.D0.BD.D0.B8.D0.B5_XML:_.D1.82.D1.80.D0.B8_.D0.B2.D0.B0.D1.80.D0.B8.D0.B0.D0.BD.D1.82.D0.B0_API"></span>Чтение XML: три варианта API</h3></div>
<style data-mw-deduplicate="TemplateStyles:r148513636">
/* start https://ru.wikipedia.org/ */


.mw-parser-output .ambox{align-items:center;border:1px solid var(--border-color-base,#a2a9b1);border-left:10px solid #36c;background:var(--background-color-neutral-subtle,#f8f9fa);box-sizing:border-box;display:flex;margin:0 10%}html body.mediawiki.skin-minerva .mw-parser-output .ambox{border-width:0 0 0 4px}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid var(--border-color-error,#b32424);background-color:var(--background-color-error-subtle,#fee7e6)}.mw-parser-output .ambox-delete{border-left:10px solid var(--border-color-error,#b32424)}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid var(--color-warning,#edab00)}.mw-parser-output .ambox-good{border-left:10px solid #66cc44}.mw-parser-output .ambox-discussion{border-left:10px solid #339966}.mw-parser-output .ambox-merge{border-left:10px solid #9932cc}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}.mw-parser-output .ambox .mbox-textsmall-div{font-size:90%}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(max-width:1366px){.mw-parser-output .ambox{margin-left:6%;margin-right:6%}}@media(max-width:719px){.mw-parser-output .ambox{margin-left:0;margin-right:0}}


/* end   https://ru.wikipedia.org/ */
</style>
<p>Для чтения XML есть три варианта <a href="API" title="API">API</a><sup id="cite_ref-malinthasa_14-0" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>.
</p><p><b>Событийный API</b> (<i>event-driven API, push-style API</i>)&nbsp;— XML-процессор читает XML; при определённом событии (появлении открывающего или закрывающего тега, текстовой строки, атрибута) вызывается <a href="Callback_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" title="Callback (программирование)">callback</a>-функция.
</p>
<ul><li>+ Расходует мало памяти<sup id="cite_ref-malinthasa_14-1" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>.</li>
<li>+ При обработке огромного XML есть стандартная точка, позволяющая мгновенно остановить обработчик<sup id="cite_ref-malinthasa_14-2" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>.</li>
<li>− Крайне сложен для прикладного программиста: приходится держать в памяти информацию, в каком месте документа мы находимся.</li>
<li>+ Библиотека проста в программировании.</li>
<li>− Только последовательный доступ к XML<sup id="cite_ref-oracle3_15-0" class="reference"><a href="#cite_note-oracle3-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>, это затрудняет разбор перекрёстных ссылок и «почти правильных» XML с перепутанным порядком элементов.</li>
<li>− API только для чтения, для записи потребуется другой API<sup id="cite_ref-oracle2_16-0" class="reference"><a href="#cite_note-oracle2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>.</li>
<li>± Естественный выбор, когда из огромного XML надо извлечь немного данных<sup id="cite_ref-malinthasa_14-3" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>.</li>
<li>± Естественный выбор, когда XML надо преобразовать в структуру предметной отрасли<sup id="cite_ref-malinthasa_14-4" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>.</li>
<li>Примеры библиотек: <a href="SAX" title="SAX">SAX</a>, <a href="Expat" title="Expat">Expat</a>.</li></ul>
<style data-mw-deduplicate="TemplateStyles:r142621938">
/* start https://ru.wikipedia.org/ */


.mw-parser-output .ts-Скрытый_блок{margin:0;overflow:hidden;border-collapse:collapse;box-sizing:border-box}.mw-parser-output .ts-Скрытый_блок-title{text-align:center;font-weight:bold;line-height:1.6em;min-height:1.2em}.mw-parser-output .ts-Скрытый_блок .mw-collapsible-content{overflow-x:auto;overflow-y:hidden;clear:both}.mw-parser-output .ts-Скрытый_блок::before,.mw-parser-output .ts-Скрытый_блок .mw-collapsible-toggle{padding-top:.1em;width:6em;font-weight:normal;font-size:calc(90%/0.95)}.mw-parser-output .ts-Скрытый_блок-rightHideLink .mw-collapsible-toggle{float:right;text-align:right}.mw-parser-output .ts-Скрытый_блок-leftHideLink .mw-collapsible-toggle{float:left;text-align:left}.mw-parser-output .ts-Скрытый_блок-gray{padding:2px;border:1px solid var(--border-color-base,#a2a9b1)}.mw-parser-output .ts-Скрытый_блок-transparent{border:none}.mw-parser-output .ts-Скрытый_блок-gray .ts-Скрытый_блок-title{background:var(--background-color-neutral,#eaecf0);padding:.1em 6em;padding-right:0}.mw-parser-output .ts-Скрытый_блок-transparent .ts-Скрытый_блок-title{background:transparent;padding:.1em 5.5em;padding-right:0}.mw-parser-output .ts-Скрытый_блок-gray .mw-collapsible-content{padding:.25em 1em}.mw-parser-output .ts-Скрытый_блок-transparent .mw-collapsible-content{padding:.25em 0}.mw-parser-output .ts-Скрытый_блок-gray.ts-Скрытый_блок-rightHideLink .mw-collapsible-toggle{padding-right:1em}.mw-parser-output .ts-Скрытый_блок-transparent.ts-Скрытый_блок-rightHideLink .mw-collapsible-toggle{padding-right:0}.mw-parser-output .ts-Скрытый_блок-gray.ts-Скрытый_блок-leftHideLink .mw-collapsible-toggle{padding-left:1em}.mw-parser-output .ts-Скрытый_блок-transparent.ts-Скрытый_блок-leftHideLink .mw-collapsible-toggle{padding-left:0}.mw-parser-output .ts-Скрытый_блок-gray.ts-Скрытый_блок-rightHideLink .ts-Скрытый_блок-title-leftTitle{padding-left:1em}.mw-parser-output .ts-Скрытый_блок-gray.ts-Скрытый_блок-leftHideLink .ts-Скрытый_блок-title-leftTitle{padding-left:6.5em}.mw-parser-output .ts-Скрытый_блок-gray.ts-Скрытый_блок-leftHideLink .ts-Скрытый_блок-title-rightTitle{padding-right:1em}.mw-parser-output .ts-Скрытый_блок-transparent.ts-Скрытый_блок-rightHideLink .ts-Скрытый_блок-title-rightTitle,.mw-parser-output .ts-Скрытый_блок-transparent.ts-Скрытый_блок-rightHideLink .ts-Скрытый_блок-title-leftTitle{padding-left:0}.mw-parser-output .ts-Скрытый_блок-transparent.ts-Скрытый_блок-leftHideLink .ts-Скрытый_блок-title-rightTitle,.mw-parser-output .ts-Скрытый_блок-transparent.ts-Скрытый_блок-leftHideLink .ts-Скрытый_блок-title-leftTitle{padding-right:0}.mw-parser-output .ts-Скрытый_блок+.ts-Скрытый_блок,.mw-parser-output .ts-Скрытый_блок+link+.ts-Скрытый_блок{border-top-style:hidden}


/* end   https://ru.wikipedia.org/ */
</style><div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Все пять примеров работают с таким XML<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"&nbsp;?&gt;</span>
<span class="nt">&lt;document&gt;</span>
<span class="w">  </span><span class="nt">&lt;thing</span><span class="w"> </span><span class="na">name=</span><span class="s">"A"</span><span class="nt">&gt;</span>Alpha<span class="nt">&lt;/thing&gt;</span>
<span class="w">  </span><span class="nt">&lt;thing</span><span class="w"> </span><span class="na">name=</span><span class="s">"B"</span><span class="nt">&gt;</span>Bravo<span class="nt">&lt;/thing&gt;</span>
<span class="nt">&lt;/document&gt;</span>
</pre></div>
</div></div>
<div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Пример кода (C++, выдуманный API)<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">enum</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Place</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">ROOT</span><span class="p">,</span><span class="w"> </span><span class="n">DOCUMENT</span><span class="p">,</span><span class="w"> </span><span class="n">THING</span><span class="p">,</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="p">}</span>

<span class="n">Place</span><span class="w"> </span><span class="n">parentPlace</span><span class="p">[</span><span class="k">static_cast</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">Place</span><span class="o">::</span><span class="n">N</span><span class="p">)]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">ROOT</span><span class="p">,</span><span class="w"> </span><span class="n">ROOT</span><span class="p">,</span><span class="w"> </span><span class="n">DOCUMENT</span><span class="w"> </span><span class="p">};</span>

<span class="k">class</span><span class="w"> </span><span class="nc">MyEvent</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">Xml</span><span class="o">::</span><span class="n">Event</span>
<span class="p">{</span>
<span class="k">private</span><span class="o">:</span>
<span class="w">  </span><span class="n">Place</span><span class="w"> </span><span class="n">place</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Place</span><span class="o">::</span><span class="n">ROOT</span><span class="p">;</span>
<span class="w">  </span><span class="n">Thing</span><span class="o">*</span><span class="w"> </span><span class="n">currThing</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">nullptr</span><span class="p">;</span>
<span class="k">public</span><span class="o">:</span>
<span class="w">  </span><span class="c1">/// @return  true — тег нужен;  false — пропустить его и всё, что внутри</span>
<span class="w">  </span><span class="kt">bool</span><span class="w"> </span><span class="n">onTagOpen</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aName</span><span class="p">)</span><span class="w"> </span><span class="k">override</span><span class="p">;</span>
<span class="w">  </span><span class="kt">void</span><span class="w"> </span><span class="nf">onTagClose</span><span class="p">()</span><span class="w"> </span><span class="k">override</span><span class="p">;</span>
<span class="w">  </span><span class="kt">void</span><span class="w"> </span><span class="nf">onAttr</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aName</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aValue</span><span class="p">)</span><span class="w"> </span><span class="k">override</span><span class="p">;</span>
<span class="w">  </span><span class="kt">void</span><span class="w"> </span><span class="nf">onText</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aText</span><span class="p">)</span><span class="w"> </span><span class="k">override</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">bool</span><span class="w"> </span><span class="n">MyEvent</span><span class="o">::</span><span class="n">onTagOpen</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aName</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">  </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">place</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="k">case</span><span class="w"> </span><span class="no">Place</span><span class="o">::</span><span class="no">ROOT</span><span class="p">:</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">aName</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"document"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">place</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Place</span><span class="o">::</span><span class="n">DOCUMENT</span><span class="p">;</span>
<span class="w">      </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">    </span><span class="k">break</span><span class="p">;</span>
<span class="w">  </span><span class="k">case</span><span class="w"> </span><span class="no">Place</span><span class="o">::</span><span class="no">DOCUMENT</span><span class="p">:</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">aName</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"thing"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">place</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Place</span><span class="o">::</span><span class="n">THING</span><span class="p">;</span>
<span class="w">      </span><span class="n">currThing</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">things</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">();</span>
<span class="w">      </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">    </span><span class="k">break</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">void</span><span class="w"> </span><span class="n">MyEvent</span><span class="o">::</span><span class="n">onTagClose</span><span class="p">()</span>
<span class="p">{</span>
<span class="w">  </span><span class="n">place</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">parentPlace</span><span class="p">[</span><span class="n">place</span><span class="p">];</span>
<span class="p">}</span>

<span class="kt">void</span><span class="w"> </span><span class="n">MyEvent</span><span class="o">::</span><span class="n">onAttr</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aName</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aValue</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">place</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">Place</span><span class="o">::</span><span class="n">THING</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">aName</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"name"</span><span class="p">)</span>
<span class="w">    </span><span class="n">currThing</span><span class="o">-&gt;</span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">aValue</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">void</span><span class="w"> </span><span class="n">MyEvent</span><span class="o">::</span><span class="n">onText</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">aText</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">place</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">Place</span><span class="o">::</span><span class="n">THING</span><span class="p">)</span>
<span class="w">    </span><span class="n">currThing</span><span class="o">-&gt;</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">aText</span><span class="p">;</span>
<span class="p">}</span>

<span class="n">xml</span><span class="o">::</span><span class="n">eventDrivenRead</span><span class="p">(</span><span class="s">"in.xml"</span><span class="p">,</span><span class="w"> </span><span class="n">MyEvent</span><span class="p">());</span>
</pre></div>
</div></div>
<p><b>Потоковый API</b> (также <i>pull-style API</i>)&nbsp;— устроен на манер <a href="%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="Поток данных">потоков ввода-вывода</a>. Прикладной код запрашивает у процессора части XML, тот умеет только двигаться по XML вперёд, забывая уже пройденные части.
</p>
<ul><li>+ Расходует мало памяти.</li>
<li>+ Информация, в каком месте документа мы находимся, неявно задаётся местом в <a href="%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F" title="Поток выполнения">потоке выполнения</a>. Это серьёзно упрощает работу прикладного программиста<sup id="cite_ref-oracle2_16-1" class="reference"><a href="#cite_note-oracle2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-oracle_17-0" class="reference"><a href="#cite_note-oracle-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>. На продуманных API объём кода приближается к таковому для DOM.</li>
<li>− Библиотека сложна в программировании.</li>
<li>+ Позволяет одновременный доступ к двум XML-документам<sup id="cite_ref-oracle_17-1" class="reference"><a href="#cite_note-oracle-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>.</li>
<li>− Только последовательный доступ к XML<sup id="cite_ref-oracle2_16-2" class="reference"><a href="#cite_note-oracle2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>, это затрудняет разбор перекрёстных ссылок и «почти правильных» XML с перепутанным порядком элементов.</li>
<li>− API только для чтения, для записи потребуется другой API. (StAX, хоть относится и к потоковым, содержит отдельный API прямой записи<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>.)</li>
<li>Примеры библиотек: StAX.</li></ul>
<div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Пример кода (C++, выдуманный API)<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="n">xml</span><span class="o">::</span><span class="n">StreamReader</span><span class="w"> </span><span class="n">reader</span><span class="p">(</span><span class="s">"in.xml"</span><span class="p">);</span>
<span class="n">reader</span><span class="p">.</span><span class="n">enterTag</span><span class="p">(</span><span class="s">"document"</span><span class="p">);</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">reader</span><span class="p">.</span><span class="n">getTag</span><span class="p">(</span><span class="s">"thing"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="n">Thing</span><span class="w"> </span><span class="n">thing</span><span class="p">;</span>
<span class="w">  </span><span class="n">thing</span><span class="p">.</span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">reader</span><span class="p">.</span><span class="n">requireStringAttr</span><span class="p">(</span><span class="s">"name"</span><span class="p">);</span>
<span class="w">  </span><span class="n">reader</span><span class="p">.</span><span class="n">enterTag</span><span class="p">();</span>
<span class="w">  </span><span class="n">thing</span><span class="p">.</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">reader</span><span class="p">.</span><span class="n">getText</span><span class="p">();</span>
<span class="w">  </span><span class="n">reader</span><span class="p">.</span><span class="n">leaveTag</span><span class="p">();</span>

<span class="w">  </span><span class="n">things</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">thing</span><span class="p">));</span><span class="w"> </span>
<span class="p">}</span>
</pre></div>
</div></div>
<p><b>Объектный API</b> (<a href="Document_Object_Model" title="Document Object Model">Document Object Model</a>, DOM, «объектная модель документа»)&nbsp;— считывает XML и воссоздаёт его в памяти в виде объектной структуры.
</p>
<ul><li>− Расходует много памяти&nbsp;— намного больше, чем сам XML занимает на диске. На pugixml расход памяти втрое и более превышает длину XML.</li>
<li>+ Прост для прикладного программиста.</li>
<li>+ Библиотека проста в программировании.</li>
<li>+ Рекордные реализации вроде pugixml написаны в этом стиле.</li>
<li>+ Позволяет произвольный доступ к XML<sup id="cite_ref-malinthasa_14-5" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>. Это, например, упрощает работу с перекрёстными ссылками. Зачастую удаётся распознать «почти верные» XML с перепутанным порядком тегов. Возможен доступ одновременно к двум XML-документам.</li>
<li>+ Общий API для чтения и записи<sup id="cite_ref-oracle2_16-3" class="reference"><a href="#cite_note-oracle2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>.</li>
<li>± Естественный выбор, когда объектом предметной области является сам XML: в веб-<a href="%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80" title="Браузер">браузере</a><sup id="cite_ref-malinthasa_14-6" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>, XML-редакторе, в импортёре к программе-<a href="%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F" title="Локализация программного обеспечения">локализатору</a>, который извлекает строки из XML произвольной структуры.</li>
<li>± Естественный выбор, когда нужно загрузить XML, слегка переработать и сохранить<sup id="cite_ref-malinthasa_14-7" class="reference"><a href="#cite_note-malinthasa-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-oracle2_16-4" class="reference"><a href="#cite_note-oracle2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>. Те части, которые трогать не нужно, не требуют никакого кода.</li>
<li>Примеры библиотек: <a href="JDOM" title="JDOM">JDOM</a>, TinyXML, pugixml</li></ul>
<div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Пример кода (C++, pugixml)<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;iostream&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;vector&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">"pugixml.hpp"</span>

<span class="k">struct</span><span class="w"> </span><span class="nc">Thing</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">;</span>
<span class="p">};</span>

<span class="c1">// Если какая-то сущность pugixml конвертируется в bool как false — выкинуть ошибку!</span>
<span class="k">template</span><span class="w"> </span><span class="o">&lt;</span><span class="k">class</span><span class="w"> </span><span class="nc">T</span><span class="o">&gt;</span>
<span class="kr">inline</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="n">need</span><span class="p">(</span><span class="n">T</span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">val</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">errmsg</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">val</span><span class="p">)</span><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">logic_error</span><span class="p">(</span><span class="n">errmsg</span><span class="p">);</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">forward</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">(</span><span class="n">val</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">int</span><span class="w"> </span><span class="n">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="w">    </span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">Thing</span><span class="o">&gt;</span><span class="w"> </span><span class="n">things</span><span class="p">;</span>

<span class="w">    </span><span class="n">pugi</span><span class="o">::</span><span class="n">xml_document</span><span class="w"> </span><span class="n">doc</span><span class="p">;</span>
<span class="w">    </span><span class="n">need</span><span class="p">(</span><span class="n">doc</span><span class="p">.</span><span class="n">load_file</span><span class="p">(</span><span class="s">"in.xml"</span><span class="p">),</span><span class="w"> </span><span class="s">"Cannot load XML!"</span><span class="p">);</span>

<span class="w">    </span><span class="k">auto</span><span class="w"> </span><span class="n">elDocument</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">need</span><span class="p">(</span><span class="n">doc</span><span class="p">.</span><span class="n">root</span><span class="p">().</span><span class="n">child</span><span class="p">(</span><span class="s">"document"</span><span class="p">),</span><span class="w"> </span><span class="s">"Need &lt;document&gt;"</span><span class="p">);</span>
<span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">pugi</span><span class="o">::</span><span class="n">xml_node</span><span class="w"> </span><span class="n">elThing</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">elDocument</span><span class="p">.</span><span class="n">children</span><span class="p">(</span><span class="s">"thing"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="k">auto</span><span class="w"> </span><span class="n">attrName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">need</span><span class="p">(</span><span class="n">elThing</span><span class="p">.</span><span class="n">attribute</span><span class="p">(</span><span class="s">"name"</span><span class="p">),</span><span class="w"> </span><span class="s">"Need &lt;thing&gt;.name!"</span><span class="p">);</span>
<span class="w">        </span><span class="n">things</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="w"> </span><span class="n">Thing</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">attrName</span><span class="p">.</span><span class="n">as_string</span><span class="p">(),</span><span class="w"> </span><span class="n">elThing</span><span class="p">.</span><span class="n">text</span><span class="p">().</span><span class="n">as_string</span><span class="p">()</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span>

<span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">auto</span><span class="w"> </span><span class="o">&amp;</span><span class="n">v</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">things</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">v</span><span class="p">.</span><span class="n">name</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">"="</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">v</span><span class="p">.</span><span class="n">value</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span>
<span class="w">    </span><span class="p">}</span>

<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div></div>
<p>Бывают и гибридные API: внешние и маловажные части читаются потоковым методом, а внутренние и важные&nbsp;— объектным.
</p>
<div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Пример кода (C++, выдуманный API)<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="n">xml</span><span class="o">::</span><span class="n">StreamReader</span><span class="w"> </span><span class="n">reader</span><span class="p">(</span><span class="s">"in.xml"</span><span class="p">);</span>
<span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">;</span>
<span class="n">reader</span><span class="p">.</span><span class="n">enterTag</span><span class="p">(</span><span class="s">"document"</span><span class="p">);</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">reader</span><span class="p">.</span><span class="n">getTag</span><span class="p">(</span><span class="s">"thing"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="n">xml</span><span class="o">::</span><span class="n">Element</span><span class="o">*</span><span class="w"> </span><span class="n">elThing</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">reader</span><span class="p">.</span><span class="n">readEntireSubtree</span><span class="p">();</span>
<span class="w">  </span><span class="n">things</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">();</span>
<span class="w">  </span><span class="n">Thing</span><span class="o">&amp;</span><span class="w"> </span><span class="n">thing</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">things</span><span class="p">.</span><span class="n">back</span><span class="p">();</span>
<span class="w">  </span><span class="n">thing</span><span class="p">.</span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">elThing</span><span class="p">.</span><span class="n">requireStringAttr</span><span class="p">(</span><span class="s">"name"</span><span class="p">);</span>
<span class="w">  </span><span class="n">thing</span><span class="p">.</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">elThing</span><span class="p">.</span><span class="n">text</span><span class="p">();</span>
<span class="p">}</span>
</pre></div>
</div></div>
<div class="mw-heading mw-heading3"><h3 id="Запись_XML:_два_варианта_API"><span id=".D0.97.D0.B0.D0.BF.D0.B8.D1.81.D1.8C_XML:_.D0.B4.D0.B2.D0.B0_.D0.B2.D0.B0.D1.80.D0.B8.D0.B0.D0.BD.D1.82.D0.B0_API"></span>Запись XML: два варианта API</h3></div>
<p><b>API прямой записи</b> записывает XML тег за тегом, атрибут за атрибутом.
</p>
<ul><li>+ Быстр, нет промежуточных объектов.</li>
<li>− Примитивная библиотека может делать неоптимальный XML (например, <code>&lt;tag&gt;&lt;/tag&gt;</code> вместо <code>&lt;tag /&gt;</code>). Работающая оптимально сложнее в программировании.</li>
<li>− Непригоден для отдельных специфических задач.</li>
<li>− Если структуры предметной области работают ненадёжно, без специальных мер (записать в память или в другой файл, потом переименовать) можно остаться с «упавшей» программой и потерянным файлом.</li>
<li>− При ошибке программиста может получиться синтаксически некорректный XML.</li>
<li>− API только для записи, для чтения потребуется другой API.</li>
<li>Примеры библиотек: StAX.</li></ul>
<div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Пример кода (C++, выдуманный API)<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="n">xml</span><span class="o">::</span><span class="n">Writer</span><span class="w"> </span><span class="n">wri</span><span class="p">(</span><span class="s">"out.xml"</span><span class="p">);</span>
<span class="n">wri</span><span class="p">.</span><span class="n">openTag</span><span class="p">(</span><span class="s">"document"</span><span class="p">);</span>
<span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">auto</span><span class="w"> </span><span class="o">&amp;</span><span class="n">v</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">things</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="n">wri</span><span class="p">.</span><span class="n">openTag</span><span class="p">(</span><span class="s">"thing"</span><span class="p">);</span>
<span class="w">  </span><span class="n">wri</span><span class="p">.</span><span class="n">writeAttr</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p">.</span><span class="n">name</span><span class="p">);</span>
<span class="w">  </span><span class="n">wri</span><span class="p">.</span><span class="n">writeText</span><span class="p">(</span><span class="n">v</span><span class="p">.</span><span class="n">value</span><span class="p">);</span>
<span class="w">  </span><span class="n">wri</span><span class="p">.</span><span class="n">closeTag</span><span class="p">(</span><span class="s">"thing"</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">wri</span><span class="p">.</span><span class="n">closeTag</span><span class="p">(</span><span class="s">"document"</span><span class="p">);</span>
</pre></div>
</div></div>
<p><b>Объектный API</b>, он же <a href="Document_Object_Model" title="Document Object Model">Document Object Model</a>.
</p>
<ul><li>− Создаёт объектную структуру для XML, что может отнять памяти больше, чем структура предметной отрасли.</li>
<li>± Универсален (впрочем, в большинстве задач преимущества над хорошо проработанным API прямой записи нет&nbsp;— в отличие от чтения).</li>
<li>+ Даже если структуры предметной области работают ненадёжно, а программист не предусмотрел никакой «защиты», единственный сценарий, когда файл перезаписывается на неполный&nbsp;— ошибка ввода-вывода (в частности, нехватка места на диске).</li>
<li>+ При правильно написанном API невозможно создать синтаксически некорректный XML.</li>
<li>+ Общий API для записи и чтения.</li>
<li>Примеры библиотек: те же, что и для чтения XML методом DOM.</li></ul>
<div class="mw-collapsible mw-collapsed ts-Скрытый_блок ts-Скрытый_блок-gray ts-Скрытый_блок-rightHideLink" style=""><div class="ts-Скрытый_блок-title" style="">Пример кода (C++, pugixml)<div class="mw-collapsible-toggle-placeholder"></div></div><div class="mw-collapsible-content" style="">
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">"pugixml.hpp"</span>

<span class="k">struct</span><span class="w"> </span><span class="nc">Thing</span><span class="w"> </span><span class="p">{</span><span class="w">  </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">;</span><span class="w"> </span><span class="p">};</span>

<span class="n">Thing</span><span class="w"> </span><span class="n">things</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="s">"A"</span><span class="p">,</span><span class="w"> </span><span class="s">"Alpha"</span><span class="p">,</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="s">"B"</span><span class="p">,</span><span class="w"> </span><span class="s">"Bravo"</span><span class="p">,</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="s">"C"</span><span class="p">,</span><span class="w"> </span><span class="s">"Charlie"</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">};</span>

<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="w">    </span><span class="n">pugi</span><span class="o">::</span><span class="n">xml_document</span><span class="w"> </span><span class="n">doc</span><span class="p">;</span>
<span class="w">    </span><span class="k">auto</span><span class="w"> </span><span class="n">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">doc</span><span class="p">.</span><span class="n">append_child</span><span class="p">(</span><span class="s">"document"</span><span class="p">);</span>
<span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">auto</span><span class="o">&amp;</span><span class="w"> </span><span class="n">thing</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">things</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="k">auto</span><span class="w"> </span><span class="n">node</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">append_child</span><span class="p">(</span><span class="s">"thing"</span><span class="p">);</span>
<span class="w">        </span><span class="n">node</span><span class="p">.</span><span class="n">append_attribute</span><span class="p">(</span><span class="s">"name"</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">thing</span><span class="p">.</span><span class="n">name</span><span class="p">.</span><span class="n">c_str</span><span class="p">();</span>
<span class="w">        </span><span class="n">node</span><span class="p">.</span><span class="n">append_child</span><span class="p">(</span><span class="n">pugi</span><span class="o">::</span><span class="n">node_pcdata</span><span class="p">).</span><span class="n">set_value</span><span class="p">(</span><span class="n">thing</span><span class="p">.</span><span class="n">value</span><span class="p">.</span><span class="n">c_str</span><span class="p">());</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">    </span><span class="n">doc</span><span class="p">.</span><span class="n">save_file</span><span class="p">(</span><span class="s">"test.xml"</span><span class="p">);</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div></div>
<div class="mw-heading mw-heading2"><h2 id="Инструменты_работы_с_документами:_парсеры,_средства_создания_и_визуализации,_системы_баз_данных"><span id=".D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_.D1.81_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D0.BC.D0.B8:_.D0.BF.D0.B0.D1.80.D1.81.D0.B5.D1.80.D1.8B.2C_.D1.81.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B2.D0.B0_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B8_.D0.B2.D0.B8.D0.B7.D1.83.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8.2C_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D0.B1.D0.B0.D0.B7_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85"></span>Инструменты работы с документами: парсеры, средства создания и визуализации, системы баз данных</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Реализации_парсеров"><span id=".D0.A0.D0.B5.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8_.D0.BF.D0.B0.D1.80.D1.81.D0.B5.D1.80.D0.BE.D0.B2"></span>Реализации парсеров</h3></div>
<p>XML имеет реализации <a href="%D0%9F%D0%B0%D1%80%D1%81%D0%B5%D1%80" class="mw-redirect" title="Парсер">парсеров</a> для всех современных языков программирования<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Веб-браузеры_как_инструмент_визуализации_документа"><span id=".D0.92.D0.B5.D0.B1-.D0.B1.D1.80.D0.B0.D1.83.D0.B7.D0.B5.D1.80.D1.8B_.D0.BA.D0.B0.D0.BA_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82_.D0.B2.D0.B8.D0.B7.D1.83.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0"></span>Веб-браузеры как инструмент визуализации документа</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Визуализация_без_использования_стилей_CSS"><span id=".D0.92.D0.B8.D0.B7.D1.83.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.B1.D0.B5.D0.B7_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B8.D0.BB.D0.B5.D0.B9_CSS"></span>Визуализация без использования стилей CSS</h4></div>
<p>Без использования <a href="CSS" title="CSS">CSS</a> или <a href="XSL" title="XSL">XSL</a> XML-документ отображается как простой текст в большинстве веб-браузеров. Некоторые браузеры, такие как <a href="Internet_Explorer" title="Internet Explorer">Internet Explorer</a>, <a href="Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a> и <a href="Opera" title="Opera">Opera</a> (встроенный инструмент Opera Dragonfly) отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.
</p>
<div class="mw-heading mw-heading4"><h4 id="Применение_стилей_CSS"><span id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D1.81.D1.82.D0.B8.D0.BB.D0.B5.D0.B9_CSS"></span>Применение стилей CSS</h4></div>
<p>Процесс аналогичен применению <a href="CSS" title="CSS">CSS</a> к <a href="HTML" title="HTML">HTML</a>-документу для отображения.
Для применения CSS при отображении в браузере, XML-документ должен содержать специальную ссылку на таблицу стилей. Например:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml-stylesheet type="text/css" href="myStyleSheet.css"?&gt;</span>
</pre></div>
<p>Это отличается от подхода HTML, где используется элемент &lt;link&gt;.
</p>
<div class="mw-heading mw-heading4"><h4 id="Применение_преобразований_к_формату_XSL-FO"><span id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.B5.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B9_.D0.BA_.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.82.D1.83_XSL-FO"></span>Применение преобразований к формату XSL-FO</h4></div>
<p>Современные браузеры принадлежат к числу программных средств, способных выполнять преобразования XSLT. В браузере такое преобразование выполняется, как правило, для форматирования документа (преобразования документа в формат XSL-FO).
Следующая инструкция в прологе документа XML предписывает браузеру выполнить XSLT-преобразование, описанное в файле transform.xsl:
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">&lt;?xml-stylesheet type="text/xsl" href="transform.xsl"?&gt;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Редакторы_XML"><span id=".D0.A0.D0.B5.D0.B4.D0.B0.D0.BA.D1.82.D0.BE.D1.80.D1.8B_XML"></span>Редакторы XML</h3></div>
<p>С документом XML можно работать в обычном <a href="%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80" title="Текстовый редактор">текстовом редакторе</a>, однако обычные редакторы не поддерживают структуру документа. Существуют специальные <a href="%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_XML" title="Редактор XML">редакторы XML</a>, которые делают работу с документом более удобной и эффективной.
</p>
<div class="mw-heading mw-heading3"><h3 id="Системы_управления_базами_данных,_работающие_с_данными_в_формате_XML"><span id=".D0.A1.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.83.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B1.D0.B0.D0.B7.D0.B0.D0.BC.D0.B8_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85.2C_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B0.D1.8E.D1.89.D0.B8.D0.B5_.D1.81_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D0.BC.D0.B8_.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.82.D0.B5_XML"></span>Системы управления базами данных, работающие с данными в формате XML</h3></div>
<p><a href="%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="Система управления базами данных">Система управления базами данных</a> <a href="IBM_DB2" class="mw-redirect" title="IBM DB2">DB2</a> позволяет хранить данные в формате XML и предоставляет доступ к таким данным с помощью языка XQuery.
</p>
<div class="mw-heading mw-heading3"><h3 id="Поддержка_на_аппаратном_уровне"><span id=".D0.9F.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.BA.D0.B0_.D0.BD.D0.B0_.D0.B0.D0.BF.D0.BF.D0.B0.D1.80.D0.B0.D1.82.D0.BD.D0.BE.D0.BC_.D1.83.D1.80.D0.BE.D0.B2.D0.BD.D0.B5"></span>Поддержка на аппаратном уровне</h3></div>
<p>XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Конвертация_XML"><span id=".D0.9A.D0.BE.D0.BD.D0.B2.D0.B5.D1.80.D1.82.D0.B0.D1.86.D0.B8.D1.8F_XML"></span>Конвертация XML</h3></div>
<p>XML можно конвертировать в другие форматы, включая <a href="JSON" title="JSON">JSON</a>, <a href="HTML" title="HTML">HTML</a>, <a href="CSV" title="CSV">CSV</a> и <a href="YAML" title="YAML">YAML</a>. Для конвертации можно использовать программы EasyDataTransform, PDFElement и Advanced XML Converter.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Область_применения,_ограничения,_перспективы_развития"><span id=".D0.9E.D0.B1.D0.BB.D0.B0.D1.81.D1.82.D1.8C_.D0.BF.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F.2C_.D0.BE.D0.B3.D1.80.D0.B0.D0.BD.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D1.8F.2C_.D0.BF.D0.B5.D1.80.D1.81.D0.BF.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D1.8B_.D1.80.D0.B0.D0.B7.D0.B2.D0.B8.D1.82.D0.B8.D1.8F"></span>Область применения, ограничения, перспективы развития</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Эффективность_использования_XML"><span id=".D0.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_XML"></span>Эффективность использования XML</h3></div>
<p>XML&nbsp;— язык разметки, другими словами, средство описания документа. Именно в нише документов, текстов, где доля разнотипных символьных данных велика, а доля разметки мала&nbsp;— XML успешен. С другой стороны, обмен данными в открытых системах не сводится к обмену документами. Избыточность разметки XML (а в целях разработки языка прямо указано, что лаконичность не является приоритетом проекта) сказывается в ситуациях, когда данные не вписываются в традиционную модель документа. Лента новостей, например, оформляемая с использованием синтаксиса XML (форматы <a href="RSS" title="RSS">RSS</a>, <a href="Atom" title="Atom">Atom</a>), представляет собой не документ в традиционном понимании, а поток однотипных мини-документов&nbsp;— многословная и избыточная разметка в этом случае составляет существенную часть передаваемых данных.
</p><p><a href="W3C" class="mw-redirect" title="W3C">W3C</a> озабочен эффективностью применения XML, и соответствующие рабочие группы занимаются этой проблемой (к началу 2013 года нормативные документы не разработаны).
</p><p>Другая ситуация, когда форматы XML могут оказаться не лучшим решением&nbsp;— работа с данными с простой структурой и небольшим объёмом символьных данных (поля данных). В этом случае доля разметки в общем объёме велика, а программная обработка XML может оказаться неоправданно затратной по сравнению с работой с данными более простой структуры. В этой области разработчики рассматривают средства, изначально ориентированные на данные, такие как <a href="INI" title="INI">INI</a>, <a href="YAML" title="YAML">YAML</a>, <a href="JSON" title="JSON">JSON</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="См._также"><span id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5"></span>См. также</h2></div>
<ul><li><a href="XML-RPC" title="XML-RPC">XML-RPC</a></li>
<li><a href="XML_Schema" class="mw-redirect" title="XML Schema">XML Schema</a></li>
<li><a href="SOAP" title="SOAP">SOAP</a> (<a href="%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Английский язык">англ.</a>&nbsp;<span lang="en" style="font-style:italic;">Simple Object Access Protocol</span>)&nbsp;— протокол передачи данных, в котором для сообщений используется формат XML.</li>
<li><a href="REST" title="REST">REST</a></li>
<li><a href="XHTML" title="XHTML">XHTML</a>&nbsp;— версия <a href="HTML" title="HTML">HTML</a>, отвечающая синтаксическим требованиям XML.</li>
<li><a href="XML_Schema" class="mw-redirect" title="XML Schema">XSD</a>&nbsp;— язык описания структуры XML-документов.</li>
<li><a href="FB2" class="mw-redirect" title="FB2">FB2</a>&nbsp;— формат описания книг, основанный на XML</li>
<li><a href="Document_Object_Model" title="Document Object Model">W3C DOM</a></li>
<li><a href="DITA" title="DITA">DITA</a></li>
<li><a href="WDDX" title="WDDX">WDDX</a></li>
<li><a href="APML" title="APML">APML</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Примечания"><span id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F"></span>Примечания</h2></div>
<div class="reflist columns" style="list-style-type: decimal;">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/rfc3023#section-3.2">XML Media Types, RFC 3023</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span> 9–11. IETF (январь 2001). Дата обращения: 4 января 2010. <a rel="nofollow" class="external text" href="https://www.webcitation.org/617ELzbTm?url=http://tools.ietf.org/html/rfc3023#section-3.2">Архивировано</a> 22 августа 2011 года.</span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/rfc3023#section-3.1">XML Media Types, RFC 3023</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span> 7–9. IETF (январь 2001). Дата обращения: 4 января 2010. <a rel="nofollow" class="external text" href="https://www.webcitation.org/617ELzbTm?url=http://tools.ietf.org/html/rfc3023#section-3.1">Архивировано</a> 22 августа 2011 года.</span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="citation"><i>M. Murata, D. Kohn, and C. Lilley.</i> <span lang="und"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/draft-murata-kohn-lilley-xml-03">Internet Drafts: XML Media Types</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. IETF (24 сентября 2009). Дата обращения: 10 июня 2010. <a rel="nofollow" class="external text" href="https://www.webcitation.org/617EMYg12?url=http://tools.ietf.org/html/draft-murata-kohn-lilley-xml-03">Архивировано</a> 22 августа 2011 года.</span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/2008/REC-xml-20081126/">Extensible Markup Language (XML) 1.0 (Fifth Edition)</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 6 июля 2011. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090401070153/http://www.w3.org/TR/2008/REC-xml-20081126/">Архивировано</a> 1 апреля 2009 года.</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/2006/REC-xml11-20060816/">Extensible Markup Language (XML) 1.1 (Second Edition)</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 6 июля 2011. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110703052919/http://www.w3.org/TR/2006/REC-xml11-20060816/">Архивировано</a> 3 июля 2011 года.</span></span>
</li>
<li id="cite_note-autogenerated1-6"><span class="mw-cite-backlink">↑ <a href="#cite_ref-autogenerated1_6-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-autogenerated1_6-1"><sup><i><b>2</b></i></sup></a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/REC-xml/#dt-entity">Объяснение слова «entity» во спецификации языка XML.</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span> Дата обращения: 12 апреля 2014. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200110151249/http://www.w3.org/TR/REC-xml/#dt-entity">Архивировано</a> 10 января 2020 года.</span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://www.w3.org/TR/html4/charset.html#entities">HTML Document Representation</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. www.w3.org. Дата обращения: 27 ноября 2019. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20191223091744/http://www.w3.org/TR/html4/charset.html#entities">Архивировано</a> 23 декабря 2019 года.</span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://www.w3.org/TR/xml/#sec-rmd">Extensible Markup Language (XML) 1.0 (Fifth Edition), §2.9 Standalone Document Declaration</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. W3C (26 ноября 2008). Дата обращения: 18 августа 2025.</span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/REC-xml/#dt-valid">Объяснение слова «valid» в спецификации.</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span> Дата обращения: 12 апреля 2014. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200110151249/http://www.w3.org/TR/REC-xml/#dt-valid">Архивировано</a> 10 января 2020 года.</span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/REC-xml/#sec-notation">Использование формы Бэкуса&nbsp;— Наура во спецификации.</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span> Дата обращения: 12 апреля 2014. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200110151249/http://www.w3.org/TR/REC-xml/#sec-notation">Архивировано</a> 10 января 2020 года.</span></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/REC-xml/#NT-S">Запись пустого пространства в форме Бэкуса&nbsp;— Наура.</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span> Дата обращения: 12 апреля 2014. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200110151249/http://www.w3.org/TR/REC-xml/#NT-S">Архивировано</a> 10 января 2020 года.</span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text">If both the external and internal subsets are used, the internal subset MUST be considered to occur before the external subset.</span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://www.w3.org/TR/xml/#sec-cdata-sect">Extensible Markup Language (XML) 1.0 (Fifth Edition), §2.7 CDATA Sections</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. W3C (26 ноября 2008). Дата обращения: 18 августа 2025.</span></span>
</li>
<li id="cite_note-malinthasa-14"><span class="mw-cite-backlink">↑ <a href="#cite_ref-malinthasa_14-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-malinthasa_14-1"><sup><i><b>2</b></i></sup></a> <a href="#cite_ref-malinthasa_14-2"><sup><i><b>3</b></i></sup></a> <a href="#cite_ref-malinthasa_14-3"><sup><i><b>4</b></i></sup></a> <a href="#cite_ref-malinthasa_14-4"><sup><i><b>5</b></i></sup></a> <a href="#cite_ref-malinthasa_14-5"><sup><i><b>6</b></i></sup></a> <a href="#cite_ref-malinthasa_14-6"><sup><i><b>7</b></i></sup></a> <a href="#cite_ref-malinthasa_14-7"><sup><i><b>8</b></i></sup></a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://www.slideshare.net/malinthasa/xml-parsing-53861146">Xml parsing</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 30 августа 2019. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220316061354/https://www.slideshare.net/malinthasa/xml-parsing-53861146">Архивировано</a> 16 марта 2022 года.</span></span>
</li>
<li id="cite_note-oracle3-15"><span class="mw-cite-backlink"><a href="#cite_ref-oracle3_15-0">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://docs.oracle.com/cd/E19316-01/819-3669/bnbdx/index.html">Streaming versus DOM (The Java EE 5 Tutorial)</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 9 апреля 2022. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220409161723/https://docs.oracle.com/cd/E19316-01/819-3669/bnbdx/index.html">Архивировано</a> 9 апреля 2022 года.</span></span>
</li>
<li id="cite_note-oracle2-16"><span class="mw-cite-backlink">↑ <a href="#cite_ref-oracle2_16-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-oracle2_16-1"><sup><i><b>2</b></i></sup></a> <a href="#cite_ref-oracle2_16-2"><sup><i><b>3</b></i></sup></a> <a href="#cite_ref-oracle2_16-3"><sup><i><b>4</b></i></sup></a> <a href="#cite_ref-oracle2_16-4"><sup><i><b>5</b></i></sup></a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://docs.oracle.com/cd/E19316-01/819-3669/bnbea/index.html">Comparing StAX to Other JAXP APIs (The Java EE 5 Tutorial)</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 9 апреля 2022. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220409161722/https://docs.oracle.com/cd/E19316-01/819-3669/bnbea/index.html">Архивировано</a> 9 апреля 2022 года.</span></span>
</li>
<li id="cite_note-oracle-17"><span class="mw-cite-backlink">↑ <a href="#cite_ref-oracle_17-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-oracle_17-1"><sup><i><b>2</b></i></sup></a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://docs.oracle.com/cd/E19316-01/819-3669/bnbdy/index.html">Pull Parsing versus Push Parsing (The Java EE 5 Tutorial)</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 9 апреля 2022. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220409161736/https://docs.oracle.com/cd/E19316-01/819-3669/bnbdy/index.html">Архивировано</a> 9 апреля 2022 года.</span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://docs.oracle.com/javase/tutorial/jaxp/stax/api.html">StAX API (The Java™ Tutorials &gt; Java API for XML Processing (JAXP) &gt; Streaming API for XML)</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 9 апреля 2022. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220409162411/https://docs.oracle.com/javase/tutorial/jaxp/stax/api.html">Архивировано</a> 9 апреля 2022 года.</span></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a></span> <span class="reference-text"><span class="citation"><span lang="und"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090303060556/http://www.xml.com/pub/rg/XML_Parsers">XML Parsers</a></span><span class="hidden-ref" style="display:none;">&nbsp;</span>. Дата обращения: 11 марта 2009. Архивировано из <a rel="nofollow" class="external text" href="http://www.xml.com/pub/rg/XML_Parsers">оригинала</a> 3 марта 2009 года.</span></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://cache-www.intel.com/cd/00/00/31/30/313072_313072.pdf">Intel XML Accelerator</a>&nbsp;<small class="ref-info">(недоступная ссылка)</small></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a></span> <span class="reference-text"><span class="citation"><span lang="ru"><a rel="nofollow" class="external text" href="https://www.azfiles.ru/extensions/xml-xml-file">XML — чем открыть файл в формате XML (XML File)?</a></span><span class="hidden-ref" style="display:none;">&nbsp;&nbsp;<span class="ref-info" title="на русском языке" style="cursor:help;">(рус.)</span></span> <i>www.azfiles.ru</i>. Дата обращения: 4 декабря 2024. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20241207114433/https://www.azfiles.ru/extensions/xml-xml-file">Архивировано</a> 7 декабря 2024 года.</span></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Литература"><span id=".D0.9B.D0.B8.D1.82.D0.B5.D1.80.D0.B0.D1.82.D1.83.D1.80.D0.B0"></span>Литература</h2></div>
<ul><li><style data-mw-deduplicate="TemplateStyles:r150646110">
/* start https://ru.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"«""»""„""“"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a::after,.mw-parser-output .id-lock-limited a::after,.mw-parser-output .id-lock-registration a::after,.mw-parser-output .id-lock-subscription a::after,.mw-parser-output .cs1-ws-icon a::after{content:"";width:1.1em;height:1.1em;display:inline-block;vertical-align:middle;background-position:center;background-repeat:no-repeat;background-size:contain}.mw-parser-output .id-lock-free.id-lock-free a::after{background-image:url("./_mw_/Lock-green.svg")}.mw-parser-output .id-lock-limited.id-lock-limited a::after,.mw-parser-output .id-lock-registration.id-lock-registration a::after{background-image:url("./_mw_/Lock-gray-alt-2.svg")}.mw-parser-output .id-lock-subscription.id-lock-subscription a::after{background-image:url("./_mw_/Lock-red-alt-2.svg")}.mw-parser-output .cs1-ws-icon a::after{background-image:url("./_mw_/Wikisource-logo.svg")}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}html.skin-theme-clientpref-night .mw-parser-output .id-lock-free a::after,html.skin-theme-clientpref-night .mw-parser-output .id-lock-limited a::after,html.skin-theme-clientpref-night .mw-parser-output .id-lock-registration a::after,html.skin-theme-clientpref-night .mw-parser-output .id-lock-subscription a::after{filter:invert(1)hue-rotate(180deg)}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}html.skin-theme-clientpref-os .mw-parser-output .id-lock-free a::after,html.skin-theme-clientpref-os .mw-parser-output .id-lock-limited a::after,html.skin-theme-clientpref-os .mw-parser-output .id-lock-registration a::after,html.skin-theme-clientpref-os .mw-parser-output .id-lock-subscription a::after{filter:invert(1)hue-rotate(180deg)}}


/* end   https://ru.wikipedia.org/ */
</style><span class="citation no-wikidata" data-wikidata-property-id="P1343"><i>Дэвид Хантер, Джефф Рафтер, Джо Фаусетт, Эрик ван дер Влист, и др.</i> XML. Работа с XML, 4-е издание = Beginning XML, 4th Edition.&nbsp;— <abbr title="Москва">М.</abbr>: «Диалектика», 2009.&nbsp;— 1344&nbsp;с.&nbsp;— ISBN 978-5-8459-1533-7.</span></li>
<li><span class="citation no-wikidata" data-wikidata-property-id="P1343"><i>Дэвид Хантер, Джефф Рафтер и др.</i> XML. Базовый курс = Beginning XML.&nbsp;— <abbr title="Москва">М.</abbr>: Вильямс, 2009.&nbsp;— 1344&nbsp;с.&nbsp;— ISBN 978-5-8459-1533-7.</span></li>
<li><span class="citation no-wikidata" data-wikidata-property-id="P1343"><i>Роберт Тейбор.</i> <a rel="nofollow" class="external text" href="https://archive.org/details/microsoftnetxmlw0000tabo">Реализация XML Web-служб на платформе Microsoft .NET</a> = Microsoft .NET XML Web Services.&nbsp;— <abbr title="Москва">М.</abbr>: Вильямс, 2002.&nbsp;— 464&nbsp;с.&nbsp;— ISBN 0-672-32088-6.</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Ссылки"><span id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"></span>Ссылки</h2></div>
<style data-mw-deduplicate="TemplateStyles:r137903846">
/* start https://ru.wikipedia.org/ */


.mw-parser-output .ts-Родственные_проекты{clear:right;float:right;width:19em;box-sizing:border-box;margin:0 0 .5em 1em;padding:.4em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);font-size:90%}.mw-parser-output .ts-Родственные_проекты-header{margin-bottom:.2em;padding:.2em .6em;font-size:110%}.mw-parser-output .ts-Родственные_проекты-item{display:flex;padding:.2em .6em}.mw-parser-output .ts-Родственные_проекты-image{min-width:24px;display:inline-block;margin-right:.4em;flex:none;vertical-align:top;text-align:center}.mw-parser-output .ts-Родственные_проекты-image img{vertical-align:middle}.mw-parser-output .ts-Родственные_проекты-label{align-self:center}@media(max-width:719px){.mw-parser-output .ts-Родственные_проекты{clear:none;float:none;width:auto;margin-left:0;margin-right:0}}


/* end   https://ru.wikipedia.org/ */
</style>
<ul><li><a rel="nofollow" class="external text" href="http://w3.org/XML">XML</a> на сайте Консорциума Всемирной паутины (W3C)</li>
<li><a rel="nofollow" class="external text" href="http://www.w3.org/TR/REC-xml">Официальная спецификация стандарта XML 1.0</a>&nbsp;<span class="ref-info" title="на английском языке" style="cursor:help;">(англ.)</span></li>
<li><a rel="nofollow" class="external text" href="http://www.w3.org/TR/xml11">Официальная спецификация стандарта XML 1.1</a>&nbsp;<span class="ref-info" title="на английском языке" style="cursor:help;">(англ.)</span></li>
<li><a rel="nofollow" class="external text" href="http://khpi-iip.mipk.kharkiv.edu/library/extent/prog/iipXML/xmlintro.html">Doug Tidwell. Введение в XML</a>&nbsp;<small class="ref-info">(недоступная ссылка)</small></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080616093446/http://www-128.ibm.com/developerworks/ru/xml/">Документация по XML на сайте IBM</a> статьи, форумы</li>
<li><a rel="nofollow" class="external text" href="https://codebeautify.org/xmlviewer">Просмотр XML</a> Просмотр и редактирование данных XML&nbsp;<span class="ref-info" title="на английском языке" style="cursor:help;">(англ.)</span></li>
<li><a rel="nofollow" class="external text" href="https://www.jsonformatting.com/xmlformat">Форматирование XML</a> Машина для онлайн-форматирования XML&nbsp;<span class="ref-info" title="на английском языке" style="cursor:help;">(англ.)</span></li></ul>
<style data-mw-deduplicate="TemplateStyles:r148666732">
/* start https://ru.wikipedia.org/ */


.mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .mbox-textsmall-div{font-size:100%;margin-top:.5em}.mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .mbox-multiple_list-div{margin:.25em 0}.mw-parser-output .ambox-multiple_issues .ambox,.mw-parser-output .ambox-multiple_issues .ombox{border:none;border-collapse:collapse;background:transparent;margin:0 0 .25em 1.6em;padding:0;width:auto;display:block}.mw-parser-output .ambox-multiple_issues .ambox .mbox-image,.mw-parser-output .ambox-multiple_issues .ambox .mbox-imageright,.mw-parser-output .ambox-multiple_issues .ambox .mbox-empty-cell,.mw-parser-output .ambox-multiple_issues .ambox .mbox-textsmall-div .hide-when-compact,.mw-parser-output .ambox-multiple_issues .ombox .mbox-image,.mw-parser-output .ambox-multiple_issues .ombox .mbox-imageright,.mw-parser-output .ambox-multiple_issues .ombox .mbox-empty-cell,.mw-parser-output .ambox-multiple_issues .ombox .mbox-textsmall-div .hide-when-compact{display:none}.mw-parser-output .ambox-multiple_issues .ambox .mbox-text,.mw-parser-output .ambox-multiple_issues .ombox .mbox-text{display:list-item;line-height:1.5em;padding:0;margin:0}.mw-parser-output .skin-monobook .ambox-multiple_issues .ambox .mbox-text,.mw-parser-output .skin-monobook .ambox-multiple_issues .ombox .mbox-text{list-style-type:square}.mw-parser-output .ambox-multiple_issues .ambox .mbox-text .mbox-text-div,.mw-parser-output .ambox-multiple_issues .ambox .mbox-text .mbox-textsmall-div,.mw-parser-output .ambox-multiple_issues .ombox .mbox-text .mbox-text-div,.mw-parser-output .ambox-multiple_issues .ombox .mbox-text .mbox-textsmall-div{display:inline}body.skin-minerva .mw-parser-output .ambox-multiple_issues .mw-collapsible{width:98%}body.skin-minerva .mw-parser-output .ambox-multiple_issues .mw-collapsible .mw-collapsible-toggle{margin-right:1em}html.client-js body.skin-minerva .mw-parser-output .ambox-multiple_issues .mw-collapsible-content{display:block}body.skin-minerva .mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .ambox{padding-left:2em!important}body.skin-minerva .mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .mbox-text-div.mbox-text-div,body.skin-minerva .mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .mbox-text.mbox-text{height:inherit;max-height:inherit;padding-left:1em!important;margin-bottom:0!important}body.skin-minerva .mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .mbox-multiple_list-div .mbox-text.mbox-text{display:list-item;line-height:1.5em;padding:.25em 0!important;list-style-type:disc}body.skin-minerva .mw-parser-output .ambox-multiple_issues.ambox-multiple_issues .mbox-multiple_list-div .mbox-text-div.mbox-text-div{padding:0 2em 0 0!important}


/* end   https://ru.wikipedia.org/ */
</style>
<div role="navigation" class="navbox" aria-labelledby="Консорциум_Всемирной_паутины_(W3C)" data-name="Стандарты W3C"><table class="nowraplinks collapsible collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="colgroup" class="navbox-title" colspan="2"><span class="navbox-gear" style="float:left;text-align:left;width:5em;margin-right:0.5em"></span><div id="Консорциум_Всемирной_паутины_(W3C)" style="font-size:114%;margin:0 5em"><a href="%D0%9A%D0%BE%D0%BD%D1%81%D0%BE%D1%80%D1%86%D0%B8%D1%83%D0%BC_%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D1%8B" title="Консорциум Всемирной паутины">Консорциум Всемирной паутины (W3C)</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1px">Продукты<br>и&nbsp;стандарты</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1px"><a href="%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_W3C" title="Рекомендации W3C">Рекомендации</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="ActivityPub" title="ActivityPub">ActivityPub</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Activity Streams (format)">Activity Streams</span></li>
<li><a href="WAI-ARIA" title="WAI-ARIA">ARIA</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Canonical XML">Canonical XML</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Compound Document Format">CDF</span></li>
<li><a href="CSS" title="CSS">CSS</a></li>
<li><a href="Document_Object_Model" title="Document Object Model">DOM</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="W3C Geolocation API">Geolocation API</span></li>
<li><a href="HTML" title="HTML">HTML</a>
<ul><li><a href="HTML5" title="HTML5">HTML5</a></li></ul></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Internationalization Tag Set">ITS</span></li>
<li><a href="JSON-LD" title="JSON-LD">JSON-LD</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Linked Data Notifications">Linked Data Notifications</span></li>
<li><a href="MathML" title="MathML">MathML</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="(protocol)">Micropub</span></li>
<li><a href="Web_Ontology_Language" title="Web Ontology Language">OWL</a></li>
<li>PLS</li>
<li><a href="Resource_Description_Framework" title="Resource Description Framework">RDF</a>
<ul><li><a href="RDFS" title="RDFS">RDFS</a></li></ul></li>
<li>SISR</li>
<li><a href="SKOS" title="SKOS">SKOS</a></li>
<li><a href="SMIL" title="SMIL">SMIL</a></li>
<li><a href="SOAP" title="SOAP">SOAP</a></li>
<li>SRGS</li>
<li>SRI</li>
<li><a href="Speech_Synthesis_Markup_Language" title="Speech Synthesis Markup Language">SSML</a></li>
<li><a href="SVG" title="SVG">SVG</a>
<ul><li>Filter Effects</li></ul></li>
<li><span data-interwiki-lang="en" data-interwiki-article="SCXML">SCXML</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="SHACL">SHACL</span></li>
<li><a href="SPARQL" title="SPARQL">SPARQL</a></li>
<li><a href="Timed_text" title="Timed text">Timed text</a></li>
<li><a href="VoiceXML" title="VoiceXML">VoiceXML</a></li>
<li><a href="Web_Storage" title="Web Storage">Web Storage</a></li>
<li><a href="WSDL" title="WSDL">WSDL</a></li>
<li>Webmention</li>
<li>WebSub</li>
<li><a href="XHTML" title="XHTML">XHTML</a>
<ul><li>+RDFa</li></ul></li>
<li><a class="mw-selflink selflink">XML</a>
<ul><li>XML Base</li>
<li><a href="XML_Encryption" title="XML Encryption">XML Encryption</a></li>
<li>XML Events</li>
<li>XML Information Set</li>
<li><a href="%D0%9F%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%BE_%D0%B8%D0%BC%D1%91%D0%BD_(XML)" title="Пространство имён (XML)">XML namespace</a></li>
<li><a href="XML_Schema_(W3C)" title="XML Schema (W3C)">XML Schema</a></li>
<li>XML Signature</li>
<li><a href="XForms" title="XForms">XForms</a></li>
<li><a href="XInclude" title="XInclude">XInclude</a></li>
<li><a href="XLink" title="XLink">XLink</a></li>
<li>XOP</li>
<li><a href="XPath" title="XPath">XPath</a>
<ul><li>1.0</li>
<li>2.0</li></ul></li>
<li><a href="XPointer" title="XPointer">XPointer</a></li>
<li><a href="XProc" title="XProc">XProc</a></li>
<li><a href="XQuery" title="XQuery">XQuery</a></li>
<li><a href="XSL" title="XSL">XSL</a></li>
<li><a href="XSL-FO" title="XSL-FO">XSL-FO</a></li>
<li><a href="XSLT" title="XSLT">XSLT</a>
<ul><li>элементы</li></ul></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px"><abbr title="Оконечное оборудование сетевого офиса (Network Office Terminating Equipment)">ООСО</abbr></th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="IndieAuth">IndieAuth</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="XAdES">XAdES</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="XBL">XBL</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="XHTML+SMIL">XHTML+SMIL</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Extensible User Interface Protocol">XUP</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Рабочие проекты</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="Call Control eXtensible Markup Language">CCXML</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="CURIE">CURIE</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Encrypted Media Extensions">EME</span></li>
<li><a href="InkML" title="InkML">InkML</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Media Source Extensions">MSE</span></li>
<li><a href="Rule_Interchange_Format" title="Rule Interchange Format">RIF</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="SMIL Timesheets">SMIL Timesheets</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="sXBL">sXBL</span></li>
<li><a href="WebGPU" title="WebGPU">WebGPU</a></li>
<li><a href="WebXR" class="mw-redirect" title="WebXR">WebXR</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Web Integration Compound Document">WICD</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Extensible Forms Description Language">XFDL</span></li>
<li><a href="XFrames" title="XFrames">XFrames</a></li>
<li><a href="XMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Руководства</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="Web Content Accessibility Guidelines">Руководящие принципы доступности веб-контента</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Инициативы</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="W3C Markup Validation Service">Markup Validation Service</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Web Accessibility Initiative">Web Accessibility Initiative</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="WebPlatform.org">WebPlatform</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Выведенные<br>из&nbsp;использования</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="CHTML" title="CHTML">CHTML</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Handheld Device Markup Language">HDML</span></li>
<li><a href="JavaScript_Style_Sheets" title="JavaScript Style Sheets">JSSS</a></li>
<li><a href="PGML" title="PGML">PGML</a></li>
<li><a href="VML" title="VML">VML</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="XHTML+MathML+SVG">XHTML+MathML+SVG</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Устаревшие</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="P3P" title="P3P">P3P</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Организации</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="World_Wide_Web_Foundation" title="World Wide Web Foundation">World Wide Web Foundation</a></li>
<li><a href="WHATWG" title="WHATWG">WHATWG</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Рабочие группы</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="Technical Architecture Group">TAG</span></li>
<li><a href="CSS_Working_Group" title="CSS Working Group">CSS</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="SVG Working Group">SVG</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Web Authentication Working Group">WebAuthn</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Группы сообщества и&nbsp;бизнеса</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="Improving Web Advertising Business Group">Web Advertising BG</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Закрывшиеся группы</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><span data-interwiki-lang="en" data-interwiki-article="W3C Device Description Working Group">Device Description (DDWG)</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="HTML Working Group">HTML</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="W3C MMI">Multimodal Interaction Activity (MMI)</span></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px"><a href="%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" title="Программное обеспечение"><abbr title="Программное_обеспечение">ПО</abbr></a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="CERN_httpd" title="CERN httpd">CERN httpd</a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Libwww">Libwww</span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px"><a href="%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80" title="Браузер">Браузеры</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="Line_Mode_Browser" title="Line Mode Browser">Line Mode <span style="font-size:90%;">(1991–)</span></a></li>
<li><a href="Arena_(%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80)" title="Arena (браузер)">Arena <span style="font-size:90%;">(1993–98)</span></a></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Agora (web browser)">Agora <span style="font-size:90%;">(1994–97)</span></span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="Argo (web browser)">Argo <span style="font-size:90%;">(1994–97)</span></span></li>
<li><a href="Amaya" title="Amaya">Amaya <span style="font-size:90%;">(браузер/редактор, 1996–2012)</span></a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Конференции</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="World_Wide_Web_Conference" title="World Wide Web Conference">International World Wide Web Conference (IW3C)</a>
<ul><li><span data-interwiki-lang="en" data-interwiki-article="International World Wide Web Conference Committee">Steering Committee (IW3C2)</span></li>
<li><span data-interwiki-lang="en" data-interwiki-article="First International Conference on the World-Wide Web">First conference ("WWW1", 1994)</span></li></ul></li></ul>
</div></td></tr></tbody></table></div>
<div role="navigation" class="navbox" aria-labelledby="Семантическая_паутина" data-name="Семантическая паутина"><table class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="colgroup" class="navbox-title" colspan="2"><span class="navbox-gear" style="float:left;text-align:left;width:5em;margin-right:0.5em"></span><div id="Семантическая_паутина" style="font-size:114%;margin:0 5em"><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D0%B0" title="Семантическая паутина">Семантическая паутина</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1px">Основы</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D0%B0" title="Всемирная паутина">Всемирная паутина</a></li>
<li><a href="%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82" title="Интернет">Интернет</a></li>
<li><a href="%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82" title="Гипертекст">Гипертекст</a></li>
<li><a href="%D0%91%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="База данных">Базы данных</a></li>
<li><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C" title="Семантическая сеть">Семантические сети</a></li>
<li><a href="%D0%9E%D0%BD%D1%82%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)" title="Онтология (информатика)">Онтологии</a></li>
<li><a href="%D0%94%D0%B5%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0" title="Дескрипционная логика">Дескрипционная логика</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Подразделы</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="Linked_data" title="Linked data">Linked data</a></li>
<li>Data Web</li>
<li>Hyperdata</li>
<li><a href="%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB" title="Сервер исполнения бизнес-правил">Сервер исполнения бизнес-правил</a></li>
<li>Data Spaces</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Приложения</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B2%D0%B8%D0%BA%D0%B8" title="Семантическая вики">Семантическая вики</a></li>
<li><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F" title="Семантическая публикация">Семантическая  публикация</a></li>
<li><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA" title="Семантический поиск">Семантический поиск</a></li>
<li><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" title="Семантические вычисления">Семантические вычисления</a></li>
<li>Semantic advertising</li>
<li><a href="%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%B7%D0%BC_%D1%80%D0%B0%D1%81%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B9" title="Семантический механизм рассуждений">Семантический механизм рассуждений</a></li>
<li>Semantic matching</li>
<li>Semantic mapper</li>
<li>Semantic broker</li>
<li>Semantic analytics</li>
<li>Semantic service oriented architecture</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Связанные темы</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="%D0%A4%D0%BE%D0%BB%D0%BA%D1%81%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F" title="Фолксономия">Фолксономия</a></li>
<li><a href="%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_2.0" title="Библиотека 2.0">Библиотека 2.0</a></li>
<li><a href="%D0%92%D0%B5%D0%B1_2.0" title="Веб 2.0">Веб 2.0</a></li>
<li><a href="%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" title="Ссылка (программирование)">Ссылки</a></li>
<li><a href="%D0%9C%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%BC%D0%B5%D0%BD%D1%82_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9" title="Менеджмент знаний">Управление знаниями</a></li>
<li><a href="%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82" title="Коллективный интеллект">Коллективный интеллект</a></li>
<li><a href="%D0%A2%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BA%D0%B0%D1%80%D1%82%D0%B0" title="Тематическая карта">Тематические карты</a></li>
<li><a href="%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D1%81%D0%B2%D1%8F%D0%B7%D0%B5%D0%B9" title="Диаграмма связей">Mindmapping</a></li>
<li><a href="%D0%9C%D0%B5%D1%82%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5" title="Метаданные">Метаданные</a></li>
<li><a href="%D0%93%D0%B5%D0%BE%D1%82%D0%B5%D0%B3%D0%B8%D0%BD%D0%B3" title="Геотегинг">Геотегинг</a></li>
<li><a href="Web_science" title="Web science">Web science</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Стандарты</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><i>Синтаксис</i>: <a href="Resource_Description_Framework" title="Resource Description Framework">RDF</a>
<ul><li><small><a href="RDF/XML" title="RDF/XML">RDF/XML</a></small></li>
<li><small><a href="%D0%9D%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F_3" title="Нотация 3">Нотация 3</a></small></li>
<li><small><a href="Turtle" title="Turtle">Turtle</a></small></li>
<li><small><a href="N-Triples" title="N-Triples">N-Triples</a></small></li>
<li><small><a href="JSON-LD" title="JSON-LD">JSON-LD</a></small></li></ul></li>
<li><a href="SPARQL" title="SPARQL">SPARQL</a></li>
<li><a href="URI" title="URI">URI</a></li>
<li><a href="HTTP" title="HTTP">HTTP</a></li>
<li><a class="mw-selflink selflink">XML</a></li></ul>
<ul><li><i>Схемы, онтологии</i>: <a href="RDFS" title="RDFS">RDFS</a></li>
<li><a href="Web_Ontology_Language" title="Web Ontology Language">OWL</a></li>
<li><a href="Rule_Interchange_Format" title="Rule Interchange Format">Rule Interchange Format</a></li>
<li>Semantic Web Rule Language</li>
<li><a href="NGSI-LD" title="NGSI-LD">NGSI-LD</a></li>
<li><a href="Common_Logic" title="Common Logic">Common Logic</a></li>
<li><a href="Schema.org" title="Schema.org">Schema.org</a></li></ul>
<ul><li><i>Семантическое аннотирование</i>: RDFa</li>
<li>eRDF</li>
<li><a href="GRDDL" title="GRDDL">GRDDL</a></li>
<li><a href="%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82" title="Микроформат">Микроформаты</a></li>
<li><a href="%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5" title="Микроданные">Микроданные</a></li></ul>
<ul><li><i>Словари</i>: <a href="DOAP" title="DOAP">DOAP</a></li>
<li><a href="FOAF" title="FOAF">FOAF</a></li>
<li><a href="SIOC" title="SIOC">SIOC</a></li>
<li><a href="%D0%94%D1%83%D0%B1%D0%BB%D0%B8%D0%BD%D1%81%D0%BA%D0%BE%D0%B5_%D1%8F%D0%B4%D1%80%D0%BE" title="Дублинское ядро">Дублинское ядро</a></li>
<li><a href="SKOS" title="SKOS">SKOS</a></li>
<li>UMBEL</li></ul>
<ul><li><i>История</i>: Plain Old Semantic HTML</li>
<li>DAML+OIL</li></ul>
</div></td></tr></tbody></table></div>
<div role="navigation" class="navbox" aria-labelledby="Языки_разметки_документов" data-name="Языки разметки документов"><table class="nowraplinks collapsible collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="colgroup" class="navbox-title" colspan="2"><span class="navbox-gear" style="float:left;text-align:left;width:5em;margin-right:0.5em"></span><div id="Языки_разметки_документов" style="font-size:114%;margin:0 5em"><a href="%D0%AF%D0%B7%D1%8B%D0%BA_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8" title="Язык разметки">Языки разметки документов</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1px">Офисные<br> документы</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li>Compound Document Format</li>
<li><a href="Office_Open_XML" title="Office Open XML">OOXML</a> (SpreadsheetML, PresentationML, WordprocessingML)</li>
<li><a href="OpenDocument" title="OpenDocument">ODF</a></li>
<li><a href="Uniform_Office_Format" title="Uniform Office Format">UOF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Общеизвестные</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="CSV" title="CSV">CSV</a></li>
<li><a href="HTML" title="HTML">HTML</a></li>
<li><a class="mw-selflink selflink">XML</a></li>
<li><a href="XHTML" title="XHTML">XHTML</a></li>
<li><a href="MathML" title="MathML">MathML</a></li>
<li><a href="Rich_Text_Format" title="Rich Text Format">RTF</a></li>
<li><a href="TeX" title="TeX">TeX</a></li>
<li><a href="LaTeX" title="LaTeX">LaTeX</a></li>
<li><a href="Markdown" title="Markdown">Markdown</a></li>
<li><a href="%D0%92%D0%B8%D0%BA%D0%B8-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B0" title="Вики-разметка">Вики-разметка</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1px">Менее<br> известные</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="AsciiDoc" title="AsciiDoc">AsciiDoc</a></li>
<li><a href="Chemical_Markup_Language" title="Chemical Markup Language">CML</a></li>
<li><a href="CHTML" title="CHTML">C-HTML</a></li>
<li><a href="ConTeXt" title="ConTeXt">ConTeXt</a></li>
<li>Crossmark</li>
<li><a href="DITA" title="DITA">DITA</a></li>
<li><a href="DocBook" title="DocBook">DocBook</a></li>
<li>eLML</li>
<li>EAD</li>
<li>Enriched text</li>
<li>FHTML</li>
<li>GML</li>
<li>GuideML</li>
<li>HDML</li>
<li>HyTime</li>
<li>HyperTeX</li>
<li>IPF</li>
<li><a href="FictionBook" title="FictionBook">FictionBook</a></li>
<li><a href="LilyPond" title="LilyPond">LilyPond</a></li>
<li>LinuxDoc</li>
<li>Lout</li>
<li>MIF</li>
<li>MAML</li>
<li>MEI</li>
<li>MusicXML</li>
<li>OMDoc</li>
<li>OpenMath</li>
<li><a href="%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%B0%D1%8F_%D1%81%D1%82%D0%B0%D1%80%D0%B0%D1%8F_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F" title="Простая старая документация">POD</a></li>
<li>RTML</li>
<li><a href="ReStructuredText" title="ReStructuredText">ReST</a></li>
<li>RTML</li>
<li>RFT</li>
<li><a href="S1000D" title="S1000D">S1000D</a></li>
<li>TEI</li>
<li><a href="Texinfo" title="Texinfo">Texinfo</a></li>
<li><a href="TOML" title="TOML">TOML</a></li>
<li>troff</li>
<li><a href="WML" title="WML">WML</a></li>
<li>WapTV</li>
<li><a href="XAML" title="XAML">XAML</a></li>
<li><a href="YAML" title="YAML">YAML</a></li>
<li>Z Format</li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
    Эта статья взята у (из) <a class="external text" title="Последний раз редактировалась 2025-11-16" href="https://ru.wikipedia.org/wiki/?title=XML&amp;oldid=150075417">Википедия</a>. Текст лицензируется по <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.ru">Creative Commons Attribution-Share Alike 4.0</a>. К медиа файлам могут применятся дополнительные условия.
</div>
</div><!--/htdig_noindex--></div>
      </div>
    </div>
     <script src="./_webp_/webpHandler.js"></script>
  

</body></html>