XML
| Расширение |
.xml |
|---|---|
| MIME-тип |
application/xml[1], text/xml[2] (deprecated in an expired draft)[3] |
| Разработчик | |
| Опубликован |
1998 |
| Тип формата | |
| Расширен из | |
| Развит в | |
| Стандарт(ы) |
1.0 (Fifth Edition), 26 ноября 2008 года[4] |
| Открытый формат? |
да |
XML (англ. eXtensible Markup Language — расширяемый язык разметки; произносится [экс-эм-эл]) — рекомендованный Консорциумом Всемирной паутины (W3C) язык разметки. Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка. Сочетание простого формального синтаксиса, удобства для человека, расширяемости, а также базирование на кодировках Юникод для представления содержания документов привело к широкому использованию как собственно XML, так и множества производных специализированных языков на базе XML в самых разнообразных программных средствах.
XML является подмножеством SGML.
Содержание
- 1 Язык XML
- 2 Регламентация работы с документами: правила, языки, программные интерфейсы
- 2.1 Кодировка документов
- 2.2 XML-процессор и приложение
- 2.3 Действительный документ. Проверяющие и непроверяющие процессоры
- 2.4 Описание типов: языки схем
- 2.5 Преобразование документа XML
- 2.6 Формат для визуализации документа
- 2.7 Языки запросов
- 2.8 Чтение XML: три варианта API
- 2.9 Запись XML: два варианта API
- 3 Инструменты работы с документами: парсеры, средства создания и визуализации, системы баз данных
- 4 Область применения, ограничения, перспективы развития
- 5 См. также
- 6 Примечания
- 7 Литература
- 8 Ссылки
Язык XML[править | править вики-текст]
Спецификация XML описывает язык и ряд вопросов, касающихся кодировки и обработки документов. Материал этой секции представляет собой сокращённое изложение описания языка в Спецификации XML, адаптированное для настоящей статьи.
Нормативным считается английский вариант документа, поэтому основные термины приводятся с их английскими оригиналами.
Перевод основных терминов в основном следует доступному в интернете переводу Спецификации на русский язык, исключение составляют термины tag и declaration.
Для термина tag здесь используется перевод тег как соответствующий текущим нормам русского языка.
Для термина declaration отдано предпочтение распространённому переводу объявление (против также распространённой кальки декларация).
В литературе и интернете могут встречаться и иные переводы основных терминов.
Физическая и логическая структуры документа[править | править вики-текст]
С физической точки зрения документ состоит из сущностей (англ. entities), из которых каждая может отсылать на другую сущность. Единственный корневой элемент — документная сущность. Содержание сущностей — символы.
С логической точки зрения документ состоит из комментариев (англ. comments), объявлений (англ. declarations), элементов (англ. elements), ссылок на сущности (англ. character references) и инструкций обработки (англ. processing instructions). Всё это в документе структуризуется разметкой (англ. markup).
Физическая структура[править | править вики-текст]
Сущность — мельчайшая часть в документе. Все сущности чего-нибудь да содержат, и у всех у них есть имя (существуют исключения, напр. документная сущность). Проще говоря, термин «сущность» описывает «сущую вещь», «что-то»[6].
Документ состоит из сущностей, содержание которых — символы. Все они разделены на два типа: символьных данных (англ. character data) и разметки. К разметке принадлежат: теги (англ. tags), обозначающие границы элементов, объявления и инструкции обработки, включая их атрибуты (англ. attributes), ссылки на сущности, комментарии, а также последовательности символов, обрамляющие секции «CDATA». Часть документа, не принадлежащая разметке, составляет символьные данные документа.
Логическая структура[править | править вики-текст]
Все составляющие части документа обобщаются в пролог и корневой элемент. Корневой элемент — обязательная часть документа, составляющая всю его суть (пролог, вообще говоря, может отсутствовать). Может включать (а может не включать) вложенные в него элементы и символьные данные, а также комментарии. Вложенные в корневой элемент элементы, в свою очередь, могут включать вложенные в них элементы, символьные данные и комментарии, и так далее. Пролог может включать объявления, инструкции обработки, комментарии. Его следует начинать с объявления XML, хотя в определённой ситуации допускается отсутствие этого объявления.
Элементы документа должны быть правильно вложены: любой элемент, начинающийся внутри другого элемента (то есть любой элемент документа, кроме корневого), должен заканчиваться внутри элемента, в котором он начался. Символьные данные могут встречаться внутри элементов как непосредственно так и в специальных секциях «CDATA». Объявления, инструкции обработки и элементы могут иметь связанные с ними атрибуты. Атрибуты используются для связывания с логической единицей текста пар имя-значение.
Символы разметки[править | править вики-текст]
Разметка всегда начинается символом < и заканчивается символом >. Наряду с символами < и >, специальную роль для разметки играет также символ &. Угловые скобки обозначают границы элементов, инструкций обработки и некоторых других последовательностей. Амперсанд позволяет выполнить замену текста при помощи сущностей (англ. entities)[7][6].
Решение проблемы неоднозначности разметки[править | править вики-текст]
Употребление разметочных символов в символьных данных затрудняет распознавание конструкций разметки и может создать проблему неоднозначности структуры. В XML эта проблема решается следующим образом: три упомянутых символа не могут присутствовать в символьных данных и в значениях атрибутов в их непосредственном виде, для их представления в этих случаях зарезервированы специальные сущности:
| Символ | Замена |
|---|---|
| < | < |
| > | > |
| & | & |
Кроме того, для употребления апострофов и кавычек внутри значений атрибутов используются следующие сущности:
| ' | ' |
| " | " |
Правило замены символов, используемых в разметке, на ими обозначаемых сущностей не распространяется на символьные данные в секциях «CDATA», зато выполняется во всех остальных местах документа.
Имена[править | править вики-текст]
| Этот раздел статьи ещё не написан.
Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел. |
Пролог[править | править вики-текст]
Объявление XML[править | править вики-текст]
Объявление XML объявляет версию языка, на которой написан документ. Поскольку интерпретация содержимого документа, вообще говоря, зависит от версии языка, то Спецификация предписывает начинать документ с объявления XML. В первой (1.0) версии языка использование объявления не было обязательным, в последующих версиях оно обязательно. Таким образом, версия языка определяется из объявления, и если объявление отсутствует, то принимается версия 1.0.
Кроме версии XML, объявление может также содержать информацию о кодировке документа и «оставаться ли документу со своим собственным DTD, или с подключённым».
Пример:
<?xml version="1.1" encoding="UTF-8" ?>
или:
<?xml version="1.0" encoding="windows-1251"?>
Во всех этих примерах отсутствовал атрибут «standalone», который как раз и определяет, подключить ли документу описания разметки извне. По умолчанию он равен «no»:
<?xml version="1.0" encoding="windows-1251" standalone="yes"?>
Это значит, документ будет пользоваться своим DTD.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Так мы явно задаём, что DTD подключается извне.
Объявление типа документа[править | править вики-текст]
Для объявления типа документа существует специальная инструкция !DOCTYPE. Она позволяет задать при помощи языка DTD, какие в документ входят элементы, каковы их атрибуты, какие сущности могут использоваться и кое-что ещё.
Например, вот корректный документ:
<?xml version="1.0"?> <greeting>Hello, world!</greeting>
В нём есть корневой элемент <greeting>Hello, world!</greeting>, и с логической точки зрения документ существует. Однако он недействителен (англ. not valid)[8].
При помощи Объявления типа документа (DTD) возможно описывать его содержания и логическую структуру, а также связывать с определённым элементом пару «имя — значение».
Запишем, как выглядит пролог, используя запись Бэкуса — Наура[9]:
prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"')
Eq ::= S? '=' S?
VersionNum ::= '1.' [0-9]+
Misc ::= Comment | PI | S
doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' intSubset ']' S?)? '>'
DeclSep ::= PEReference | S
intSubset ::= (markupdecl | DeclSep)*
markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment
extSubset ::= TextDecl? extSubsetDecl
extSubsetDecl ::= ( markupdecl | conditionalSect | DeclSep)*
Мы видим, что после XML-объявления могут следовать комментарии, инструкции обработки или же пустые пространства[10], но затем идёт Объявления типа документа, где «Name» — имя корневого тега, «ExternalID» — внешний идентификатор, а «intSubset» — объявление разметки или же ссылка на сущность. Как гласит спецификация, если внешний идентификатор объявляется вместе со внутренним объявлением, последнее идёт перед первым[11].
Например:
<?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting>
Здесь «SYSTEM "hello.dtd"» — внешний идентификатор: адрес «hello.dtd» позволяет задействовать данные в документе «hello.dtd» как объявления разметки.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]> <greeting>Hello, world!</greeting>
Здесь же разметка была объявлена местно.
Инструкция обработки[править | править вики-текст]
Инструкции обработки (англ. processing instruction, PI), позволяют размещать в документе инструкции для приложений. В следующем примере показана инструкция обработки, передающая xml-stylesheet-приложению (например, браузеру) инструкции в файле my-style.css посредством атрибута href:<?xml-stylesheet type="text/css" href="mystyle.css" ?>
<?xml-stylesheet href="my-style.css"?>
Комментарий[править | править вики-текст]
Комментарии (англ. comment) не относятся к символьным данным документа. Комментарий начинается последовательностью «<!--» и заканчивается последовательностью «-->», внутри не может встречаться комбинация символов «--». Символ & не используется внутри комментария в качестве разметки.
Пример:
<!-- это комментарий -->
Корневой элемент[править | править вики-текст]
Элемент и его разметка[править | править вики-текст]
Элемент (англ. element) является понятием логической структуры документа. Каждый документ содержит один или несколько элементов. Границы элементов представлены начальным и конечным тегами. Имя элемента в начальном и конечном тегах элемента должно совпадать. Элемент может быть также представлен тегом пустого, то есть не включающего в себя другие элементы и символьные данные, элемента.
Тег (англ. tag) — конструкция разметки, которая содержит имя элемента.
Начальный тег: <element1>
Конечный тег: </element1>
Тег пустого элемента: <empty_element1 />
В элементе атрибуты могут использоваться только в начальном теге и теге пустого элемента.
Пример кулинарного рецепта, размеченного с помощью XML:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE recipe> <recipe name="хлеб" preptime="5min" cooktime="180min"> <title> Простой хлеб </title> <composition> <ingredient amount="3" unit="стакан">Мука</ingredient> <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient> <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient> <ingredient amount="1" unit="чайная ложка">Соль</ingredient> </composition> <instructions> <step> Смешать все ингредиенты и тщательно замесить. </step> <step> Закрыть тканью и оставить на один час в тёплом помещении. </step> <!-- <step> Почитать вчерашнюю газету. </step> - это сомнительный шаг... --> <step> Замесить ещё раз, положить на противень и поставить в духовку. </step> </instructions> </recipe>
Секция CDATA[править | править вики-текст]
Секция CDATA не является логической единицей текста. Секция может встречаться в любом месте документа, где синтаксис позволяет размещать символьные данные. Секция начинается <![CDATA[ и завершается ]]>. Между этой разметкой находятся символьные данные, символьные данные при этом включают символы < > & в их непосредственной форме.
Корректный документ[править | править вики-текст]
Корректный (англ. well-formed) документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу: правильная структура документа, совпадение имен в начальном и конечном теге элемента и т. п. Документ, который неправильно построен, не может считаться документом XML.
Пространства имён[править | править вики-текст]
Регламентация работы с документами: правила, языки, программные интерфейсы[править | править вики-текст]
Этот раздел содержит изложение некоторых положений рекомендаций W3C, касающихся работы с документами. Соответствующие рекомендации могут относиться как к документам XML, так и к более широкому классу документов. Ссылки, как правило, даются на средства работы с документами, рекомендованные W3C.
Кодировка документов[править | править вики-текст]
Спецификация требует, чтобы обрабатывающие программы поддерживали по крайней мере две кодировки Юникод: UTF-8 и UTF-16.
XML-процессор и приложение[править | править вики-текст]
Спецификация XML определяет понятия XML-процессор и приложение. XML-процессор (парсер) — программа, анализирующая разметку и передающая информацию о структуре документа другой программе — приложению.
Спецификация XML налагает определённые требования на процессор, не касаясь требований к приложению.
Действительный документ. Проверяющие и непроверяющие процессоры[править | править вики-текст]
Документ является действительным, если с ним связано объявление типа документа и если этот документ отвечает представленным в объявлении типа ограничениям.
XML процессоры делятся на два класса: проверяющие и непроверяющие.
Проверяющие процессоры проверяют действительность документа и должны сообщать (по выбору пользователя) о нарушении ограничений, сформулированных в объявлении типа документа.
Непроверяющие процессоры не проверяют действительность документа, но обязанности по предварительной обработке документа, упомянутые выше, остаются за ними.
Описание типов: языки схем[править | править вики-текст]
Для описания типов документов используются языки схем (англ. schema language). Поскольку XML является подмножеством языка SGML, то он унаследовал разработанный для SGML язык Document Type Definition (DTD). Позднее были разработаны и другие языки схем, наиболее известны из которых XML Schema, RELAX NG.
Преобразование документа XML[править | править вики-текст]
Для решения задачи преобразования документа XML в другую схему или другой формат предназначен язык XSLT.
Формат для визуализации документа[править | править вики-текст]
Для форматированного документа (документа, подготовленного к визуализации) предназначен формат XSL-FO.
Языки запросов[править | править вики-текст]
XPath — синтаксис для адресации содержимого документа, представленного в форме дерева. Выражения XPath используются в языке XQuery. Выражения XPath, вообще говоря, могут использоваться в любом контексте, где уместно использовать формальные ссылки на элементы дерева, в частности, в качестве параметров для методов интерфейсов доступа к документу.
XQuery — язык программирования, ориентированный на работу с документами.
Чтение XML: три варианта API[править | править вики-текст]
Для чтения XML есть три варианта API.
Событийный API — XML-процессор читает XML; при определённом событии (появлении открывающего или закрывающего тега, текстовой строки, атрибута) вызывается callback-функция. Для простоты программирования событийный процессор может собрать в памяти все атрибуты одного тега на манер DOM — но это уже подразумевает, что пользователь «невраждебен» (неспособен или бессмысленно давать XML с большим количеством атрибутов в одном теге, чтобы заполнить всю память).
- + Быстр, расходует мало памяти.
- − Крайне сложен в программировании: приходится держать в памяти информацию, в каком месте документа мы находимся.
- + Библиотека проста в программировании.
- − «Почти верные» XML с перепутанным порядком тегов считаются ошибочными.
- − Если в XML много объектов с перекрёстными ссылками друг на друга, надо организовать временное хранение строковых ссылок, чтобы потом, когда документ будет считан, преобразовать идентификаторы в указатели.
- − При ошибке в XML в памяти остаётся полусозданная структура предметной отрасли; программист должен своими руками корректно уничтожить её.
- Примеры библиотек: SAX
Потоковый API — устроен на манер потоков ввода-вывода. Как и в событийном API, для простоты программирования процессор может собирать в памяти все атрибуты одного тега на манер DOM — но это подразумевает, что пользователь «невраждебен».
- + Быстр, расходует мало памяти.
- − Довольно сложен в программировании. Впрочем, информация, в каком месте документа мы находимся, неявно задаётся местом в потоке выполнения.
- − Библиотека сложна в программировании.
- − «Почти верные» XML с перепутанным порядком тегов считаются ошибочными.
- − Если в XML много объектов с перекрёстными ссылками друг на друга, надо организовать временное хранение строковых ссылок, чтобы потом, когда документ будет считан, преобразовать в указатели. Продвинутые библиотеки могут запомнить внутреннее состояние процессора, а потом вернуться к нему; тогда можно реализовать простановку ссылок на манер DOM (первым проходом построить объекты без ссылок, вторым — восстановить ссылки). Правда, в таком случае XML считывается дважды, что медленно.
- − При ошибке в XML в памяти остаётся полусозданная структура предметной отрасли; программист должен своими руками корректно уничтожить её.
- Примеры библиотек: StAX
Объектный API (Document Object Model, DOM, «объектная модель документа») — считывает XML и воссоздаёт его в памяти в виде объектной структуры.
- − Наиболее медленный вариант; расходует много памяти. С учётом накладных расходов на объекты на x86 предельная длина файла — несколько сотен мегабайт.
- + Прост в программировании.
- + Библиотека проста в программировании.
- + Зачастую удаётся распознать «почти верные» XML с перепутанным порядком тегов.
- + Если в XML много объектов с перекрёстными ссылками друг на друга, достаточно дважды пройтись по документу: первый раз создать объекты без ссылок и заполнить словарь «название-объект», второй раз — восстановить ссылки.
- + При ошибке в XML в памяти остаётся полусозданная структура XML, которая будет автоматически уничтожена самой библиотекой.
- + Естественный выбор при работе с XML неизвестной структуры, без преобразования в объекты предметной области (например, в веб-браузере, в импортёре к программе-локализатору, который извлекает строки из XML произвольной структуры).
- Примеры библиотек: JDOM, TinyXML
Запись XML: два варианта API[править | править вики-текст]
API прямой записи записывает XML тег за тегом, атрибут за атрибутом.
- + Быстр, нет промежуточных объектов.
- − Примитивная библиотека может делать неоптимальный XML (например,
<tag></tag>вместо<tag />). - − Непригоден для отдельных специфических задач.
- − Если структуры предметной области работают ненадёжно, без специальных мер (записать в память или в другой файл, потом переименовать) можно остаться с «упавшей» программой и потерянным файлом.
- − При ошибке программиста может получиться синтаксически некорректный XML.
Объектный API, он же Document Object Model.
- − Создаёт объектную структуру для XML, что может отнять памяти больше, чем структура предметной отрасли.
- + Универсален (впрочем, в большинстве задач преимущества над хорошо проработанным API прямой записи нет — в отличие от чтения).
- + Даже если структуры предметной области работают ненадёжно, а программист не предусмотрел никакой «защиты», единственный сценарий, когда файл перезаписывается на неполный — нехватка места на диске.
Инструменты работы с документами: парсеры, средства создания и визуализации, системы баз данных[править | править вики-текст]
Реализации парсеров[править | править вики-текст]
XML имеет реализации парсеров для всех современных языков программирования[12].
Веб-браузеры как инструмент визуализации документа[править | править вики-текст]
Визуализация без использования стилей CSS[править | править вики-текст]
Без использования CSS или XSL XML-документ отображается как простой текст в большинстве веб-браузеров. Некоторые браузеры, такие как Internet Explorer, Mozilla Firefox и Opera (встроенный инструмент Opera Dragonfly) отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.
Применение стилей CSS[править | править вики-текст]
Процесс аналогичен применению CSS к HTML-документу для отображения. Для применения CSS при отображении в браузере, XML-документ должен содержать специальную ссылку на таблицу стилей. Например:
<?xml-stylesheet type="text/css" href="myStyleSheet.css"?>
Это отличается от подхода HTML, где используется элемент <link>.
Применение преобразований к XS-FO формату[править | править вики-текст]
Современные браузеры принадлежат к числу программных средств, способных выполнять преобразования XSLT. В браузере такое преобразование выполняется, как правило, для форматирования документа (преобразования документа в формат XSL-FO). Следующая инструкция в прологе документа XML предписывает браузеру выполнить XSLT-преобразование, описанное в файле transform.xsl:
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
Редакторы XML[править | править вики-текст]
С документом XML можно работать в обычном текстовом редакторе, однако обычные редакторы не поддерживают структуру документа. Существуют специальные редакторы XML, которые делают работу с документом более удобной и эффективной.
Системы управления базами данных, работающие с данными в формате XML[править | править вики-текст]
Система управления базами данных DB2 позволяет хранить данные в формате XML и предоставляет доступ к таким данным с помощью языка XQuery.
Поддержка на аппаратном уровне[править | править вики-текст]
XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях[13].
Область применения, ограничения, перспективы развития[править | править вики-текст]
Эффективность использования XML[править | править вики-текст]
XML — язык разметки, другими словами, средство описания документа. Именно в нише документов, текстов, где доля разнотипных символьных данных велика, а доля разметки мала — XML успешен. С другой стороны, обмен данными в открытых системах не сводится к обмену документами. Избыточность разметки XML (а в целях разработки языка прямо указано, что лаконичность не является приоритетом проекта) сказывается в ситуациях, когда данные не вписываются в традиционную модель документа. Лента новостей, например, оформляемая с использованием синтаксиса XML (форматы RSS, Atom), представляет собой не документ в традиционном понимании, а поток однотипных мини-документов — многословная и избыточная разметка в этом случае составляет существенную часть передаваемых данных.
W3C озабочен эффективностью применения XML, и соответствующие рабочие группы занимаются этой проблемой (к началу 2013 года нормативные документы не разработаны).
Другая ситуация, когда форматы XML могут оказаться не лучшим решением — работа с данными с простой структурой и небольшим по объёму содержанием полей данных. В этом случае доля разметки в общем объёме велика, а программная обработка XML может оказаться неоправданно затратной, по сравнению с работой с данными более простой структуры. В этой области разработчики рассматривают средства, изначально ориентированные на данные, такие как INI, YAML, JSON.
Скриптовый язык для работы с XML[править | править вики-текст]
W3C работает над созданием скриптового языка для работы с XML (к началу 2013 года нормативные документы не разработаны).
См. также[править | править вики-текст]
- XHTML — версия HTML, отвечающая синтаксическим требованиям XML.
- XSD — язык описания структуры XML- документов.
- SOAP — протокол передачи данных, в котором для сообщений используется формат XML.
- FB2 — формат описания книг, базирующийся на XML
- DITA
- WDDX
- Apml
Примечания[править | править вики-текст]
- ↑ XML Media Types, RFC 3023 9–11. IETF (январь 2001). Проверено 4 января 2010. Архивировано из первоисточника 22 августа 2011.
- ↑ XML Media Types, RFC 3023 7–9. IETF (январь 2001). Проверено 4 января 2010. Архивировано из первоисточника 22 августа 2011.
- ↑ M. Murata, D. Kohn, and C. Lilley. Internet Drafts: XML Media Types. IETF (24 сентября 2009). Проверено 10 июня 2010. Архивировано из первоисточника 22 августа 2011.
- ↑ Extensible Markup Language (XML) 1.0 (Fifth Edition)
- ↑ Extensible Markup Language (XML) 1.1 (Second Edition)
- ↑ 1 2 Объяснение слова «entity» во спецификации языка XML.
- ↑ Под термином «сущность» следует понимать «сущую вещь», проще говоря, «что-то».
- ↑ Объяснение слова «valid» в спецификации.
- ↑ Использование формы Бэкуса — Наура во спецификации.
- ↑ Запись пустого пространства в форме Бэкуса — Наура.
- ↑ If both the external and internal subsets are used, the internal subset MUST be considered to occur before the external subset.
- ↑ XML Parsers
- ↑ Intel XML Accelerator
Литература[править | править вики-текст]
- Дэвид Хантер, Джефф Рафтер, Джо Фаусетт, Эрик ван дер Влист, и др. XML. Работа с XML, 4-е издание = Beginning XML, 4th Edition. — М.: «Диалектика», 2009. — 1344 с. — ISBN 978-5-8459-1533-7.
- Дэвид Хантер, Джефф Рафтер и др. XML. Базовый курс = Beginning XML. — М.: Вильямс, 2009. — 1344 с. — ISBN 978-5-8459-1533-7.
- Роберт Тейбор. Реализация XML Web-служб на платформе Microsoft .NET = Microsoft .NET XML Web Services. — М.: Вильямс, 2002. — 464 с. — ISBN 0-672-32088-6.
Ссылки[править | править вики-текст]
- XML на сайте Консорциума Всемирной паутины (W3C)
- Официальная спецификация стандарта XML 1.0 (англ.)
- Официальная спецификация стандарта XML 1.1 (англ.)
- Doug Tidwell. Введение в XML
- Новости XML и обзоры
- Документация по XML на сайте IBM статьи, форумы
Для улучшения этой статьи желательно?:
|
| Стандарты Консорциума Всемирной паутины (W3C) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Продукты и стандарты |
|
||||||||||||
| Организации |
|
||||||||||||
| ПО |
|
||||||||||||
| Конференции | |||||||||||||
| Веб и веб-сайты | |
|---|---|
| Глобально | |
| Локально | |
| Виды сайтов и сервисов |
Виртуальный атлас • Баннерная сеть • Библиотека • Блог (платформа) • Видеохостинг • Вики • Сайт-визитка • Вопрос-ответ • Закладки • Службы знакомств • Браузерная игра • Каталог ресурсов • Интернет-магазин • Микроблог • Новостной сайт • Поисковая система • Порносайт • Веб-почта • Социальная сеть • Тамблелог • BitTorrent-трекер • Файлообменник • Форум (Сервис • Имиджборд) • Фотохостинг • Чат |
| Создание и обслуживание |
Мастер • Разработка • Дизайн • Вёрстка • Программирование • Юзабилити • Опыт взаимодействия • Продвижение сайта • Поисковая оптимизация (SEO) • Хостинг • Системный администратор • Модератор • Учётная запись • Авторизация |
| Типы макетов, страниц, сайтов |
|
| Техническое | |
| Маркетинг | |
| Социум и культура | |

