XML

Поделись знанием:
(перенаправлено с «Extensible Markup Language»)
Перейти к: навигация, поиск
XML (англ. eXtensible Markup Language) расширяемый язык разметки
Расширение

.xml

MIME-тип

application/xml[1], text/xml[2] (deprecated in an expired draft)[3]

Разработчик

Консорциум Всемирной паутины

Опубликован

1998

Тип формата

язык разметки

Расширен из

SGML

Развит в

XHTML, RSS, Atom, KML, SVG и множество других форматов

Стандарт(ы)

1.0 (Fifth Edition), 26 ноября 2008 года[4]
1.1 (Second Edition), 16 августа 2006 года[5]

Открытый формат?

да

XML (/ˌeks em ˈel/ англ. eXtensible Markup Language — расширяемый язык разметки). Рекомендован Консорциумом Всемирной паутины (W3C). Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка. Расширение XML — это конкретная грамматика, созданная на базе XML и представленная словарём тегов и их атрибутов, а также набором правил, определяющих какие атрибуты и элементы могут входить в состав других элементов. Если бы HTML появился позднее, чем XML, то он, возможно, также бы являлся его расширением. Сочетание простого формального синтаксиса, удобства для человека, расширяемости, а также базирование на кодировках Юникод для представления содержания документов привело к широкому использованию как собственно XML, так и множества производных специализированных языков на базе XML в самых разнообразных программных средствах.

XML является подмножеством SGML.





Содержание

Язык 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)[6][7].

Решение проблемы неоднозначности разметки

Употребление разметочных символов в символьных данных затрудняет распознавание конструкций разметки и может создать проблему неоднозначности структуры. В XML эта проблема решается следующим образом: < и & не могут присутствовать в символьных данных и в значениях атрибутов в их непосредственном виде, для их представления в этих случаях зарезервированы специальные сущности:

Символ Замена
< &lt;
> &gt;
& &amp;

Кроме того, для употребления апострофов и кавычек внутри значений атрибутов используются следующие сущности:

' &apos;
" &quot;

Правило замены символов, используемых в разметке, на ими обозначаемых сущностей не распространяется на символьные данные в секциях «CDATA», зато выполняется во всех остальных местах документа.

Имена

В языке XML все имена должны начинаться с буквы, символа нижнего подчеркивания (_) или двоеточия (:) и продолжаться только допустимыми для имен символами, а именно они могут содержать только буквы, входящие в секцию букв кодировки Unicode, арабские цифры, дефисы, знаки подчеркивания, точки и двоеточия. Однако имена не могут начинаться со строки xml в любом регистре. Имена, начинающиеся с этих символов, зарезервированы для использования консорциумом W3C. Нужно помнить, что так как буквы не ограничены исключительно символами ASCII, то в именах можно использовать слова из родного языка.

Пролог

Объявление 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="no"?>

Это значит, документ будет пользоваться своим DTD.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Так мы явно задаём, что 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>
   </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 в памяти остаётся полусозданная структура предметной отрасли; программист должен своими руками корректно уничтожить её.
  • − API только для чтения, для записи потребуется другой API.
  • Примеры библиотек: SAX

Потоковый API — устроен на манер потоков ввода-вывода. Как и в событийном API, для простоты программирования процессор может собирать в памяти все атрибуты одного тега на манер DOM — но это подразумевает, что пользователь «невраждебен».

  • + Быстр, расходует мало памяти.
  • ± Довольно сложен в программировании. Впрочем, информация, в каком месте документа мы находимся, неявно задаётся местом в потоке выполнения.
  • − Библиотека сложна в программировании.
  • − «Почти верные» XML с перепутанным порядком тегов считаются ошибочными.
  • − Если в XML много объектов с перекрёстными ссылками друг на друга, надо организовать временное хранение строковых ссылок, чтобы потом, когда документ будет считан, преобразовать в указатели. Продвинутые библиотеки могут запомнить внутреннее состояние процессора, а потом вернуться к нему; тогда можно реализовать простановку ссылок на манер DOM (первым проходом построить объекты без ссылок, вторым — восстановить ссылки). Правда, в таком случае XML считывается дважды, что медленно.
  • − При ошибке в XML в памяти остаётся полусозданная структура предметной отрасли; программист должен своими руками корректно уничтожить её.
  • − API только для чтения, для записи потребуется другой API.
  • Примеры библиотек: StAX

Объектный API (Document Object Model, DOM, «объектная модель документа») — считывает XML и воссоздаёт его в памяти в виде объектной структуры.

  • − Наиболее медленный вариант; расходует много памяти. С учётом накладных расходов на объекты на x86 предельная длина файла — несколько сотен мегабайт.
  • + Прост в программировании.
  • + Библиотека проста в программировании.
  • + Зачастую удаётся распознать «почти верные» XML с перепутанным порядком тегов.
  • + Если в XML много объектов с перекрёстными ссылками друг на друга, достаточно дважды пройтись по документу: первый раз создать объекты без ссылок и заполнить словарь «название-объект», второй раз — восстановить ссылки.
  • + При ошибке в XML в памяти остаётся полусозданная структура XML, которая будет автоматически уничтожена самой библиотекой.
  • + Общий API для чтения и записи.
  • + Естественный выбор, когда объектом предметной области является сам XML: например, в веб-браузере, XML-редакторе, в импортёре к программе-локализатору, который извлекает строки из XML произвольной структуры.
  • Примеры библиотек: JDOM, TinyXML

Бывают и гибридные API: внешние и маловажные части читаются потоковым методом, а внутренние и важные — объектным.

Запись XML: два варианта API

API прямой записи записывает XML тег за тегом, атрибут за атрибутом.

  • + Быстр, нет промежуточных объектов.
  • − Примитивная библиотека может делать неоптимальный XML (например, <tag></tag> вместо <tag />).
  • − Непригоден для отдельных специфических задач.
  • − Если структуры предметной области работают ненадёжно, без специальных мер (записать в память или в другой файл, потом переименовать) можно остаться с «упавшей» программой и потерянным файлом.
  • − При ошибке программиста может получиться синтаксически некорректный XML.
  • − API только для записи, для чтения потребуется другой API.

Объектный API, он же Document Object Model.

  • − Создаёт объектную структуру для XML, что может отнять памяти больше, чем структура предметной отрасли.
  • ± Универсален (впрочем, в большинстве задач преимущества над хорошо проработанным API прямой записи нет — в отличие от чтения).
  • + Даже если структуры предметной области работают ненадёжно, а программист не предусмотрел никакой «защиты», единственный сценарий, когда файл перезаписывается на неполный — нехватка места на диске.
  • + Общий 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>.

Применение преобразований к XSL-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"

Примечания

  1. [tools.ietf.org/html/rfc3023#section-3.2 XML Media Types, RFC 3023] 9–11. IETF (январь 2001). Проверено 4 января 2010. [www.webcitation.org/617ELzbTm Архивировано из первоисточника 22 августа 2011].
  2. [tools.ietf.org/html/rfc3023#section-3.1 XML Media Types, RFC 3023] 7–9. IETF (январь 2001). Проверено 4 января 2010. [www.webcitation.org/617ELzbTm Архивировано из первоисточника 22 августа 2011].
  3. M. Murata, D. Kohn, and C. Lilley. [tools.ietf.org/html/draft-murata-kohn-lilley-xml-03 Internet Drafts: XML Media Types]. IETF (24 сентября 2009). Проверено 10 июня 2010. [www.webcitation.org/617EMYg12 Архивировано из первоисточника 22 августа 2011].
  4. [www.w3.org/TR/2008/REC-xml-20081126/ Extensible Markup Language (XML) 1.0 (Fifth Edition)]
  5. [www.w3.org/TR/2006/REC-xml11-20060816/ Extensible Markup Language (XML) 1.1 (Second Edition)]
  6. 1 2 [www.w3.org/TR/REC-xml/#dt-entity Объяснение слова «entity» во спецификации языка XML.]
  7. Под термином «сущность» следует понимать «сущую вещь», проще говоря, «что-то».
  8. [www.w3.org/TR/REC-xml/#dt-valid Объяснение слова «valid» в спецификации.]
  9. [www.w3.org/TR/REC-xml/#sec-notation Использование формы Бэкуса — Наура во спецификации.]
  10. [www.w3.org/TR/REC-xml/#NT-S Запись пустого пространства в форме Бэкуса — Наура.]
  11. If both the external and internal subsets are used, the internal subset MUST be considered to occur before the external subset.
  12. [www.xml.com/pub/rg/XML_Parsers XML Parsers]
  13. [cache-www.intel.com/cd/00/00/31/30/313072_313072.pdf 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.

Ссылки

  • [w3.org/XML XML] на сайте Консорциума Всемирной паутины (W3C)
  • [www.w3.org/TR/REC-xml Официальная спецификация стандарта XML 1.0] (англ.)
  • [www.w3.org/TR/xml11 Официальная спецификация стандарта XML 1.1] (англ.)
  • [khpi-iip.mipk.kharkiv.edu/library/extent/prog/iipXML/xmlintro.html Doug Tidwell. Введение в XML]
  • [xmlhack.ru/ Новости XML и обзоры]
  • [www-128.ibm.com/developerworks/ru/xml/ Документация по XML на сайте IBM] статьи, форумы


Отрывок, характеризующий XML

Он открыл глаза и поглядел вверх. Черный полог ночи на аршин висел над светом углей. В этом свете летали порошинки падавшего снега. Тушин не возвращался, лекарь не приходил. Он был один, только какой то солдатик сидел теперь голый по другую сторону огня и грел свое худое желтое тело.
«Никому не нужен я! – думал Ростов. – Некому ни помочь, ни пожалеть. А был же и я когда то дома, сильный, веселый, любимый». – Он вздохнул и со вздохом невольно застонал.
– Ай болит что? – спросил солдатик, встряхивая свою рубаху над огнем, и, не дожидаясь ответа, крякнув, прибавил: – Мало ли за день народу попортили – страсть!
Ростов не слушал солдата. Он смотрел на порхавшие над огнем снежинки и вспоминал русскую зиму с теплым, светлым домом, пушистою шубой, быстрыми санями, здоровым телом и со всею любовью и заботою семьи. «И зачем я пошел сюда!» думал он.
На другой день французы не возобновляли нападения, и остаток Багратионова отряда присоединился к армии Кутузова.



Князь Василий не обдумывал своих планов. Он еще менее думал сделать людям зло для того, чтобы приобрести выгоду. Он был только светский человек, успевший в свете и сделавший привычку из этого успеха. У него постоянно, смотря по обстоятельствам, по сближениям с людьми, составлялись различные планы и соображения, в которых он сам не отдавал себе хорошенько отчета, но которые составляли весь интерес его жизни. Не один и не два таких плана и соображения бывало у него в ходу, а десятки, из которых одни только начинали представляться ему, другие достигались, третьи уничтожались. Он не говорил себе, например: «Этот человек теперь в силе, я должен приобрести его доверие и дружбу и через него устроить себе выдачу единовременного пособия», или он не говорил себе: «Вот Пьер богат, я должен заманить его жениться на дочери и занять нужные мне 40 тысяч»; но человек в силе встречался ему, и в ту же минуту инстинкт подсказывал ему, что этот человек может быть полезен, и князь Василий сближался с ним и при первой возможности, без приготовления, по инстинкту, льстил, делался фамильярен, говорил о том, о чем нужно было.
Пьер был у него под рукою в Москве, и князь Василий устроил для него назначение в камер юнкеры, что тогда равнялось чину статского советника, и настоял на том, чтобы молодой человек с ним вместе ехал в Петербург и остановился в его доме. Как будто рассеянно и вместе с тем с несомненной уверенностью, что так должно быть, князь Василий делал всё, что было нужно для того, чтобы женить Пьера на своей дочери. Ежели бы князь Василий обдумывал вперед свои планы, он не мог бы иметь такой естественности в обращении и такой простоты и фамильярности в сношении со всеми людьми, выше и ниже себя поставленными. Что то влекло его постоянно к людям сильнее или богаче его, и он одарен был редким искусством ловить именно ту минуту, когда надо и можно было пользоваться людьми.
Пьер, сделавшись неожиданно богачом и графом Безухим, после недавнего одиночества и беззаботности, почувствовал себя до такой степени окруженным, занятым, что ему только в постели удавалось остаться одному с самим собою. Ему нужно было подписывать бумаги, ведаться с присутственными местами, о значении которых он не имел ясного понятия, спрашивать о чем то главного управляющего, ехать в подмосковное имение и принимать множество лиц, которые прежде не хотели и знать о его существовании, а теперь были бы обижены и огорчены, ежели бы он не захотел их видеть. Все эти разнообразные лица – деловые, родственники, знакомые – все были одинаково хорошо, ласково расположены к молодому наследнику; все они, очевидно и несомненно, были убеждены в высоких достоинствах Пьера. Беспрестанно он слышал слова: «С вашей необыкновенной добротой» или «при вашем прекрасном сердце», или «вы сами так чисты, граф…» или «ежели бы он был так умен, как вы» и т. п., так что он искренно начинал верить своей необыкновенной доброте и своему необыкновенному уму, тем более, что и всегда, в глубине души, ему казалось, что он действительно очень добр и очень умен. Даже люди, прежде бывшие злыми и очевидно враждебными, делались с ним нежными и любящими. Столь сердитая старшая из княжен, с длинной талией, с приглаженными, как у куклы, волосами, после похорон пришла в комнату Пьера. Опуская глаза и беспрестанно вспыхивая, она сказала ему, что очень жалеет о бывших между ними недоразумениях и что теперь не чувствует себя вправе ничего просить, разве только позволения, после постигшего ее удара, остаться на несколько недель в доме, который она так любила и где столько принесла жертв. Она не могла удержаться и заплакала при этих словах. Растроганный тем, что эта статуеобразная княжна могла так измениться, Пьер взял ее за руку и просил извинения, сам не зная, за что. С этого дня княжна начала вязать полосатый шарф для Пьера и совершенно изменилась к нему.
– Сделай это для нее, mon cher; всё таки она много пострадала от покойника, – сказал ему князь Василий, давая подписать какую то бумагу в пользу княжны.
Князь Василий решил, что эту кость, вексель в 30 т., надо было всё таки бросить бедной княжне с тем, чтобы ей не могло притти в голову толковать об участии князя Василия в деле мозаикового портфеля. Пьер подписал вексель, и с тех пор княжна стала еще добрее. Младшие сестры стали также ласковы к нему, в особенности самая младшая, хорошенькая, с родинкой, часто смущала Пьера своими улыбками и смущением при виде его.
Пьеру так естественно казалось, что все его любят, так казалось бы неестественно, ежели бы кто нибудь не полюбил его, что он не мог не верить в искренность людей, окружавших его. Притом ему не было времени спрашивать себя об искренности или неискренности этих людей. Ему постоянно было некогда, он постоянно чувствовал себя в состоянии кроткого и веселого опьянения. Он чувствовал себя центром какого то важного общего движения; чувствовал, что от него что то постоянно ожидается; что, не сделай он того, он огорчит многих и лишит их ожидаемого, а сделай то то и то то, всё будет хорошо, – и он делал то, что требовали от него, но это что то хорошее всё оставалось впереди.
Более всех других в это первое время как делами Пьера, так и им самим овладел князь Василий. Со смерти графа Безухого он не выпускал из рук Пьера. Князь Василий имел вид человека, отягченного делами, усталого, измученного, но из сострадания не могущего, наконец, бросить на произвол судьбы и плутов этого беспомощного юношу, сына его друга, apres tout, [в конце концов,] и с таким огромным состоянием. В те несколько дней, которые он пробыл в Москве после смерти графа Безухого, он призывал к себе Пьера или сам приходил к нему и предписывал ему то, что нужно было делать, таким тоном усталости и уверенности, как будто он всякий раз приговаривал:
«Vous savez, que je suis accable d'affaires et que ce n'est que par pure charite, que je m'occupe de vous, et puis vous savez bien, que ce que je vous propose est la seule chose faisable». [Ты знаешь, я завален делами; но было бы безжалостно покинуть тебя так; разумеется, что я тебе говорю, есть единственно возможное.]
– Ну, мой друг, завтра мы едем, наконец, – сказал он ему однажды, закрывая глаза, перебирая пальцами его локоть и таким тоном, как будто то, что он говорил, было давным давно решено между ними и не могло быть решено иначе.
– Завтра мы едем, я тебе даю место в своей коляске. Я очень рад. Здесь у нас всё важное покончено. А мне уж давно бы надо. Вот я получил от канцлера. Я его просил о тебе, и ты зачислен в дипломатический корпус и сделан камер юнкером. Теперь дипломатическая дорога тебе открыта.
Несмотря на всю силу тона усталости и уверенности, с которой произнесены были эти слова, Пьер, так долго думавший о своей карьере, хотел было возражать. Но князь Василий перебил его тем воркующим, басистым тоном, который исключал возможность перебить его речь и который употреблялся им в случае необходимости крайнего убеждения.
– Mais, mon cher, [Но, мой милый,] я это сделал для себя, для своей совести, и меня благодарить нечего. Никогда никто не жаловался, что его слишком любили; а потом, ты свободен, хоть завтра брось. Вот ты всё сам в Петербурге увидишь. И тебе давно пора удалиться от этих ужасных воспоминаний. – Князь Василий вздохнул. – Так так, моя душа. А мой камердинер пускай в твоей коляске едет. Ах да, я было и забыл, – прибавил еще князь Василий, – ты знаешь, mon cher, что у нас были счеты с покойным, так с рязанского я получил и оставлю: тебе не нужно. Мы с тобою сочтемся.
То, что князь Василий называл с «рязанского», было несколько тысяч оброка, которые князь Василий оставил у себя.
В Петербурге, так же как и в Москве, атмосфера нежных, любящих людей окружила Пьера. Он не мог отказаться от места или, скорее, звания (потому что он ничего не делал), которое доставил ему князь Василий, а знакомств, зовов и общественных занятий было столько, что Пьер еще больше, чем в Москве, испытывал чувство отуманенности, торопливости и всё наступающего, но не совершающегося какого то блага.
Из прежнего его холостого общества многих не было в Петербурге. Гвардия ушла в поход. Долохов был разжалован, Анатоль находился в армии, в провинции, князь Андрей был за границей, и потому Пьеру не удавалось ни проводить ночей, как он прежде любил проводить их, ни отводить изредка душу в дружеской беседе с старшим уважаемым другом. Всё время его проходило на обедах, балах и преимущественно у князя Василия – в обществе толстой княгини, его жены, и красавицы Элен.
Анна Павловна Шерер, так же как и другие, выказала Пьеру перемену, происшедшую в общественном взгляде на него.
Прежде Пьер в присутствии Анны Павловны постоянно чувствовал, что то, что он говорит, неприлично, бестактно, не то, что нужно; что речи его, кажущиеся ему умными, пока он готовит их в своем воображении, делаются глупыми, как скоро он громко выговорит, и что, напротив, самые тупые речи Ипполита выходят умными и милыми. Теперь всё, что ни говорил он, всё выходило charmant [очаровательно]. Ежели даже Анна Павловна не говорила этого, то он видел, что ей хотелось это сказать, и она только, в уважение его скромности, воздерживалась от этого.
В начале зимы с 1805 на 1806 год Пьер получил от Анны Павловны обычную розовую записку с приглашением, в котором было прибавлено: «Vous trouverez chez moi la belle Helene, qu'on ne se lasse jamais de voir». [у меня будет прекрасная Элен, на которую никогда не устанешь любоваться.]
Читая это место, Пьер в первый раз почувствовал, что между ним и Элен образовалась какая то связь, признаваемая другими людьми, и эта мысль в одно и то же время и испугала его, как будто на него накладывалось обязательство, которое он не мог сдержать, и вместе понравилась ему, как забавное предположение.
Вечер Анны Павловны был такой же, как и первый, только новинкой, которою угощала Анна Павловна своих гостей, был теперь не Мортемар, а дипломат, приехавший из Берлина и привезший самые свежие подробности о пребывании государя Александра в Потсдаме и о том, как два высочайшие друга поклялись там в неразрывном союзе отстаивать правое дело против врага человеческого рода. Пьер был принят Анной Павловной с оттенком грусти, относившейся, очевидно, к свежей потере, постигшей молодого человека, к смерти графа Безухого (все постоянно считали долгом уверять Пьера, что он очень огорчен кончиною отца, которого он почти не знал), – и грусти точно такой же, как и та высочайшая грусть, которая выражалась при упоминаниях об августейшей императрице Марии Феодоровне. Пьер почувствовал себя польщенным этим. Анна Павловна с своим обычным искусством устроила кружки своей гостиной. Большой кружок, где были князь Василий и генералы, пользовался дипломатом. Другой кружок был у чайного столика. Пьер хотел присоединиться к первому, но Анна Павловна, находившаяся в раздраженном состоянии полководца на поле битвы, когда приходят тысячи новых блестящих мыслей, которые едва успеваешь приводить в исполнение, Анна Павловна, увидев Пьера, тронула его пальцем за рукав.
– Attendez, j'ai des vues sur vous pour ce soir. [У меня есть на вас виды в этот вечер.] Она взглянула на Элен и улыбнулась ей. – Ma bonne Helene, il faut, que vous soyez charitable pour ma рauvre tante, qui a une adoration pour vous. Allez lui tenir compagnie pour 10 minutes. [Моя милая Элен, надо, чтобы вы были сострадательны к моей бедной тетке, которая питает к вам обожание. Побудьте с ней минут 10.] А чтоб вам не очень скучно было, вот вам милый граф, который не откажется за вами следовать.
Красавица направилась к тетушке, но Пьера Анна Павловна еще удержала подле себя, показывая вид, как будто ей надо сделать еще последнее необходимое распоряжение.
– Не правда ли, она восхитительна? – сказала она Пьеру, указывая на отплывающую величавую красавицу. – Et quelle tenue! [И как держит себя!] Для такой молодой девушки и такой такт, такое мастерское уменье держать себя! Это происходит от сердца! Счастлив будет тот, чьей она будет! С нею самый несветский муж будет невольно занимать самое блестящее место в свете. Не правда ли? Я только хотела знать ваше мнение, – и Анна Павловна отпустила Пьера.
Пьер с искренностью отвечал Анне Павловне утвердительно на вопрос ее об искусстве Элен держать себя. Ежели он когда нибудь думал об Элен, то думал именно о ее красоте и о том не обыкновенном ее спокойном уменьи быть молчаливо достойною в свете.
Тетушка приняла в свой уголок двух молодых людей, но, казалось, желала скрыть свое обожание к Элен и желала более выразить страх перед Анной Павловной. Она взглядывала на племянницу, как бы спрашивая, что ей делать с этими людьми. Отходя от них, Анна Павловна опять тронула пальчиком рукав Пьера и проговорила:
– J'espere, que vous ne direz plus qu'on s'ennuie chez moi, [Надеюсь, вы не скажете другой раз, что у меня скучают,] – и взглянула на Элен.
Элен улыбнулась с таким видом, который говорил, что она не допускала возможности, чтобы кто либо мог видеть ее и не быть восхищенным. Тетушка прокашлялась, проглотила слюни и по французски сказала, что она очень рада видеть Элен; потом обратилась к Пьеру с тем же приветствием и с той же миной. В середине скучливого и спотыкающегося разговора Элен оглянулась на Пьера и улыбнулась ему той улыбкой, ясной, красивой, которой она улыбалась всем. Пьер так привык к этой улыбке, так мало она выражала для него, что он не обратил на нее никакого внимания. Тетушка говорила в это время о коллекции табакерок, которая была у покойного отца Пьера, графа Безухого, и показала свою табакерку. Княжна Элен попросила посмотреть портрет мужа тетушки, который был сделан на этой табакерке.
– Это, верно, делано Винесом, – сказал Пьер, называя известного миниатюриста, нагибаясь к столу, чтоб взять в руки табакерку, и прислушиваясь к разговору за другим столом.
Он привстал, желая обойти, но тетушка подала табакерку прямо через Элен, позади ее. Элен нагнулась вперед, чтобы дать место, и, улыбаясь, оглянулась. Она была, как и всегда на вечерах, в весьма открытом по тогдашней моде спереди и сзади платье. Ее бюст, казавшийся всегда мраморным Пьеру, находился в таком близком расстоянии от его глаз, что он своими близорукими глазами невольно различал живую прелесть ее плеч и шеи, и так близко от его губ, что ему стоило немного нагнуться, чтобы прикоснуться до нее. Он слышал тепло ее тела, запах духов и скрып ее корсета при движении. Он видел не ее мраморную красоту, составлявшую одно целое с ее платьем, он видел и чувствовал всю прелесть ее тела, которое было закрыто только одеждой. И, раз увидав это, он не мог видеть иначе, как мы не можем возвратиться к раз объясненному обману.
«Так вы до сих пор не замечали, как я прекрасна? – как будто сказала Элен. – Вы не замечали, что я женщина? Да, я женщина, которая может принадлежать всякому и вам тоже», сказал ее взгляд. И в ту же минуту Пьер почувствовал, что Элен не только могла, но должна была быть его женою, что это не может быть иначе.
Он знал это в эту минуту так же верно, как бы он знал это, стоя под венцом с нею. Как это будет? и когда? он не знал; не знал даже, хорошо ли это будет (ему даже чувствовалось, что это нехорошо почему то), но он знал, что это будет.
Пьер опустил глаза, опять поднял их и снова хотел увидеть ее такою дальнею, чужою для себя красавицею, какою он видал ее каждый день прежде; но он не мог уже этого сделать. Не мог, как не может человек, прежде смотревший в тумане на былинку бурьяна и видевший в ней дерево, увидав былинку, снова увидеть в ней дерево. Она была страшно близка ему. Она имела уже власть над ним. И между ним и ею не было уже никаких преград, кроме преград его собственной воли.
– Bon, je vous laisse dans votre petit coin. Je vois, que vous y etes tres bien, [Хорошо, я вас оставлю в вашем уголке. Я вижу, вам там хорошо,] – сказал голос Анны Павловны.
И Пьер, со страхом вспоминая, не сделал ли он чего нибудь предосудительного, краснея, оглянулся вокруг себя. Ему казалось, что все знают, так же как и он, про то, что с ним случилось.
Через несколько времени, когда он подошел к большому кружку, Анна Павловна сказала ему:
– On dit que vous embellissez votre maison de Petersbourg. [Говорят, вы отделываете свой петербургский дом.]
(Это была правда: архитектор сказал, что это нужно ему, и Пьер, сам не зная, зачем, отделывал свой огромный дом в Петербурге.)
– C'est bien, mais ne demenagez pas de chez le prince Ваsile. Il est bon d'avoir un ami comme le prince, – сказала она, улыбаясь князю Василию. – J'en sais quelque chose. N'est ce pas? [Это хорошо, но не переезжайте от князя Василия. Хорошо иметь такого друга. Я кое что об этом знаю. Не правда ли?] А вы еще так молоды. Вам нужны советы. Вы не сердитесь на меня, что я пользуюсь правами старух. – Она замолчала, как молчат всегда женщины, чего то ожидая после того, как скажут про свои года. – Если вы женитесь, то другое дело. – И она соединила их в один взгляд. Пьер не смотрел на Элен, и она на него. Но она была всё так же страшно близка ему. Он промычал что то и покраснел.
Вернувшись домой, Пьер долго не мог заснуть, думая о том, что с ним случилось. Что же случилось с ним? Ничего. Он только понял, что женщина, которую он знал ребенком, про которую он рассеянно говорил: «да, хороша», когда ему говорили, что Элен красавица, он понял, что эта женщина может принадлежать ему.
«Но она глупа, я сам говорил, что она глупа, – думал он. – Что то гадкое есть в том чувстве, которое она возбудила во мне, что то запрещенное. Мне говорили, что ее брат Анатоль был влюблен в нее, и она влюблена в него, что была целая история, и что от этого услали Анатоля. Брат ее – Ипполит… Отец ее – князь Василий… Это нехорошо», думал он; и в то же время как он рассуждал так (еще рассуждения эти оставались неоконченными), он заставал себя улыбающимся и сознавал, что другой ряд рассуждений всплывал из за первых, что он в одно и то же время думал о ее ничтожестве и мечтал о том, как она будет его женой, как она может полюбить его, как она может быть совсем другою, и как всё то, что он об ней думал и слышал, может быть неправдою. И он опять видел ее не какою то дочерью князя Василья, а видел всё ее тело, только прикрытое серым платьем. «Но нет, отчего же прежде не приходила мне в голову эта мысль?» И опять он говорил себе, что это невозможно; что что то гадкое, противоестественное, как ему казалось, нечестное было бы в этом браке. Он вспоминал ее прежние слова, взгляды, и слова и взгляды тех, кто их видал вместе. Он вспомнил слова и взгляды Анны Павловны, когда она говорила ему о доме, вспомнил тысячи таких намеков со стороны князя Василья и других, и на него нашел ужас, не связал ли он уж себя чем нибудь в исполнении такого дела, которое, очевидно, нехорошо и которое он не должен делать. Но в то же время, как он сам себе выражал это решение, с другой стороны души всплывал ее образ со всею своею женственной красотою.


В ноябре месяце 1805 года князь Василий должен был ехать на ревизию в четыре губернии. Он устроил для себя это назначение с тем, чтобы побывать заодно в своих расстроенных имениях, и захватив с собой (в месте расположения его полка) сына Анатоля, с ним вместе заехать к князю Николаю Андреевичу Болконскому с тем, чтоб женить сына на дочери этого богатого старика. Но прежде отъезда и этих новых дел, князю Василью нужно было решить дела с Пьером, который, правда, последнее время проводил целые дни дома, т. е. у князя Василья, у которого он жил, был смешон, взволнован и глуп (как должен быть влюбленный) в присутствии Элен, но всё еще не делал предложения.
«Tout ca est bel et bon, mais il faut que ca finisse», [Всё это хорошо, но надо это кончить,] – сказал себе раз утром князь Василий со вздохом грусти, сознавая, что Пьер, стольким обязанный ему (ну, да Христос с ним!), не совсем хорошо поступает в этом деле. «Молодость… легкомыслие… ну, да Бог с ним, – подумал князь Василий, с удовольствием чувствуя свою доброту: – mais il faut, que ca finisse. После завтра Лёлины именины, я позову кое кого, и ежели он не поймет, что он должен сделать, то уже это будет мое дело. Да, мое дело. Я – отец!»
Пьер полтора месяца после вечера Анны Павловны и последовавшей за ним бессонной, взволнованной ночи, в которую он решил, что женитьба на Элен была бы несчастие, и что ему нужно избегать ее и уехать, Пьер после этого решения не переезжал от князя Василья и с ужасом чувствовал, что каждый день он больше и больше в глазах людей связывается с нею, что он не может никак возвратиться к своему прежнему взгляду на нее, что он не может и оторваться от нее, что это будет ужасно, но что он должен будет связать с нею свою судьбу. Может быть, он и мог бы воздержаться, но не проходило дня, чтобы у князя Василья (у которого редко бывал прием) не было бы вечера, на котором должен был быть Пьер, ежели он не хотел расстроить общее удовольствие и обмануть ожидания всех. Князь Василий в те редкие минуты, когда бывал дома, проходя мимо Пьера, дергал его за руку вниз, рассеянно подставлял ему для поцелуя выбритую, морщинистую щеку и говорил или «до завтра», или «к обеду, а то я тебя не увижу», или «я для тебя остаюсь» и т. п. Но несмотря на то, что, когда князь Василий оставался для Пьера (как он это говорил), он не говорил с ним двух слов, Пьер не чувствовал себя в силах обмануть его ожидания. Он каждый день говорил себе всё одно и одно: «Надо же, наконец, понять ее и дать себе отчет: кто она? Ошибался ли я прежде или теперь ошибаюсь? Нет, она не глупа; нет, она прекрасная девушка! – говорил он сам себе иногда. – Никогда ни в чем она не ошибается, никогда она ничего не сказала глупого. Она мало говорит, но то, что она скажет, всегда просто и ясно. Так она не глупа. Никогда она не смущалась и не смущается. Так она не дурная женщина!» Часто ему случалось с нею начинать рассуждать, думать вслух, и всякий раз она отвечала ему на это либо коротким, но кстати сказанным замечанием, показывавшим, что ее это не интересует, либо молчаливой улыбкой и взглядом, которые ощутительнее всего показывали Пьеру ее превосходство. Она была права, признавая все рассуждения вздором в сравнении с этой улыбкой.
Она обращалась к нему всегда с радостной, доверчивой, к нему одному относившейся улыбкой, в которой было что то значительней того, что было в общей улыбке, украшавшей всегда ее лицо. Пьер знал, что все ждут только того, чтобы он, наконец, сказал одно слово, переступил через известную черту, и он знал, что он рано или поздно переступит через нее; но какой то непонятный ужас охватывал его при одной мысли об этом страшном шаге. Тысячу раз в продолжение этого полутора месяца, во время которого он чувствовал себя всё дальше и дальше втягиваемым в ту страшившую его пропасть, Пьер говорил себе: «Да что ж это? Нужна решимость! Разве нет у меня ее?»
Он хотел решиться, но с ужасом чувствовал, что не было у него в этом случае той решимости, которую он знал в себе и которая действительно была в нем. Пьер принадлежал к числу тех людей, которые сильны только тогда, когда они чувствуют себя вполне чистыми. А с того дня, как им владело то чувство желания, которое он испытал над табакеркой у Анны Павловны, несознанное чувство виноватости этого стремления парализировало его решимость.
В день именин Элен у князя Василья ужинало маленькое общество людей самых близких, как говорила княгиня, родные и друзья. Всем этим родным и друзьям дано было чувствовать, что в этот день должна решиться участь именинницы.
Гости сидели за ужином. Княгиня Курагина, массивная, когда то красивая, представительная женщина сидела на хозяйском месте. По обеим сторонам ее сидели почетнейшие гости – старый генерал, его жена, Анна Павловна Шерер; в конце стола сидели менее пожилые и почетные гости, и там же сидели домашние, Пьер и Элен, – рядом. Князь Василий не ужинал: он похаживал вокруг стола, в веселом расположении духа, подсаживаясь то к тому, то к другому из гостей. Каждому он говорил небрежное и приятное слово, исключая Пьера и Элен, которых присутствия он не замечал, казалось. Князь Василий оживлял всех. Ярко горели восковые свечи, блестели серебро и хрусталь посуды, наряды дам и золото и серебро эполет; вокруг стола сновали слуги в красных кафтанах; слышались звуки ножей, стаканов, тарелок и звуки оживленного говора нескольких разговоров вокруг этого стола. Слышно было, как старый камергер в одном конце уверял старушку баронессу в своей пламенной любви к ней и ее смех; с другой – рассказ о неуспехе какой то Марьи Викторовны. У середины стола князь Василий сосредоточил вокруг себя слушателей. Он рассказывал дамам, с шутливой улыбкой на губах, последнее – в среду – заседание государственного совета, на котором был получен и читался Сергеем Кузьмичем Вязмитиновым, новым петербургским военным генерал губернатором, знаменитый тогда рескрипт государя Александра Павловича из армии, в котором государь, обращаясь к Сергею Кузьмичу, говорил, что со всех сторон получает он заявления о преданности народа, и что заявление Петербурга особенно приятно ему, что он гордится честью быть главою такой нации и постарается быть ее достойным. Рескрипт этот начинался словами: Сергей Кузьмич! Со всех сторон доходят до меня слухи и т. д.
– Так таки и не пошло дальше, чем «Сергей Кузьмич»? – спрашивала одна дама.
– Да, да, ни на волос, – отвечал смеясь князь Василий. – Сергей Кузьмич… со всех сторон. Со всех сторон, Сергей Кузьмич… Бедный Вязмитинов никак не мог пойти далее. Несколько раз он принимался снова за письмо, но только что скажет Сергей … всхлипывания… Ку…зьми…ч – слезы… и со всех сторон заглушаются рыданиями, и дальше он не мог. И опять платок, и опять «Сергей Кузьмич, со всех сторон», и слезы… так что уже попросили прочесть другого.
– Кузьмич… со всех сторон… и слезы… – повторил кто то смеясь.
– Не будьте злы, – погрозив пальцем, с другого конца стола, проговорила Анна Павловна, – c'est un si brave et excellent homme notre bon Viasmitinoff… [Это такой прекрасный человек, наш добрый Вязмитинов…]
Все очень смеялись. На верхнем почетном конце стола все были, казалось, веселы и под влиянием самых различных оживленных настроений; только Пьер и Элен молча сидели рядом почти на нижнем конце стола; на лицах обоих сдерживалась сияющая улыбка, не зависящая от Сергея Кузьмича, – улыбка стыдливости перед своими чувствами. Что бы ни говорили и как бы ни смеялись и шутили другие, как бы аппетитно ни кушали и рейнвейн, и соте, и мороженое, как бы ни избегали взглядом эту чету, как бы ни казались равнодушны, невнимательны к ней, чувствовалось почему то, по изредка бросаемым на них взглядам, что и анекдот о Сергее Кузьмиче, и смех, и кушанье – всё было притворно, а все силы внимания всего этого общества были обращены только на эту пару – Пьера и Элен. Князь Василий представлял всхлипыванья Сергея Кузьмича и в это время обегал взглядом дочь; и в то время как он смеялся, выражение его лица говорило: «Так, так, всё хорошо идет; нынче всё решится». Анна Павловна грозила ему за notre bon Viasmitinoff, а в глазах ее, которые мельком блеснули в этот момент на Пьера, князь Василий читал поздравление с будущим зятем и счастием дочери. Старая княгиня, предлагая с грустным вздохом вина своей соседке и сердито взглянув на дочь, этим вздохом как будто говорила: «да, теперь нам с вами ничего больше не осталось, как пить сладкое вино, моя милая; теперь время этой молодежи быть так дерзко вызывающе счастливой». «И что за глупость всё то, что я рассказываю, как будто это меня интересует, – думал дипломат, взглядывая на счастливые лица любовников – вот это счастие!»
Среди тех ничтожно мелких, искусственных интересов, которые связывали это общество, попало простое чувство стремления красивых и здоровых молодых мужчины и женщины друг к другу. И это человеческое чувство подавило всё и парило над всем их искусственным лепетом. Шутки были невеселы, новости неинтересны, оживление – очевидно поддельно. Не только они, но лакеи, служившие за столом, казалось, чувствовали то же и забывали порядки службы, заглядываясь на красавицу Элен с ее сияющим лицом и на красное, толстое, счастливое и беспокойное лицо Пьера. Казалось, и огни свечей сосредоточены были только на этих двух счастливых лицах.
Пьер чувствовал, что он был центром всего, и это положение и радовало и стесняло его. Он находился в состоянии человека, углубленного в какое нибудь занятие. Он ничего ясно не видел, не понимал и не слыхал. Только изредка, неожиданно, мелькали в его душе отрывочные мысли и впечатления из действительности.
«Так уж всё кончено! – думал он. – И как это всё сделалось? Так быстро! Теперь я знаю, что не для нее одной, не для себя одного, но и для всех это должно неизбежно свершиться. Они все так ждут этого , так уверены, что это будет, что я не могу, не могу обмануть их. Но как это будет? Не знаю; а будет, непременно будет!» думал Пьер, взглядывая на эти плечи, блестевшие подле самых глаз его.
То вдруг ему становилось стыдно чего то. Ему неловко было, что он один занимает внимание всех, что он счастливец в глазах других, что он с своим некрасивым лицом какой то Парис, обладающий Еленой. «Но, верно, это всегда так бывает и так надо, – утешал он себя. – И, впрочем, что же я сделал для этого? Когда это началось? Из Москвы я поехал вместе с князем Васильем. Тут еще ничего не было. Потом, отчего же мне было у него не остановиться? Потом я играл с ней в карты и поднял ее ридикюль, ездил с ней кататься. Когда же это началось, когда это всё сделалось? И вот он сидит подле нее женихом; слышит, видит, чувствует ее близость, ее дыхание, ее движения, ее красоту. То вдруг ему кажется, что это не она, а он сам так необыкновенно красив, что оттого то и смотрят так на него, и он, счастливый общим удивлением, выпрямляет грудь, поднимает голову и радуется своему счастью. Вдруг какой то голос, чей то знакомый голос, слышится и говорит ему что то другой раз. Но Пьер так занят, что не понимает того, что говорят ему. – Я спрашиваю у тебя, когда ты получил письмо от Болконского, – повторяет третий раз князь Василий. – Как ты рассеян, мой милый.