Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сущность — это объявление, которое указывает имя, которое будет использоваться в XML вместо содержимого или разметки. Существует две части сущностей. Сначала необходимо привязать имя к содержимому, которое заменяет, с помощью определения сущности. Объявление сущности создается с помощью синтаксиса <!ENTITY name "value">
в определении типа документа (DTD) или схеме XML. Во-вторых, имя, определенное в объявлении сущности, впоследствии используется в XML. При использовании в XML он называется ссылкой на сущность. Например, следующее объявление сущности определяет сущность с именем publisher
, связанную с содержимым "Microsoft Press".
<!ENTITY publisher "Microsoft Press">
В следующем примере показано использование этого объявления сущности в XML как ссылки на сущность.
<author>Fred</author>
<pubinfo>Published by &publisher;</pubinfo>
Некоторые средства синтаксического анализа автоматически расширяют сущности при загрузке документа в память. Поэтому при чтении XML в память объявления сущностей запоминаются и сохраняются. При последующем обнаружении символов &;
, указывающих на общую ссылку на сущность, парсер ищет это имя в таблице объявлений сущностей. Ссылка &publisher;
заменяется контентом, который он представляет. Использование следующего XML-документа
<author>Fred</author>
<pubinfo>Published by &publisher;</pubinfo>
Разворачивание ссылки на сущность и замена &publisher;
содержимым от компании Microsoft Press дает следующий расширенный XML.
Выходные данные
<author>Fred</author>
<pubinfo>Published by Microsoft Press</pubinfo>
Существует множество типов сущностей. На следующей схеме показана разбивка типов сущностей и терминологии.
По умолчанию для реализации Microsoft .NET Framework объектной модели XML-документа (DOM) необходимо сохранить ссылки на сущности, а не развернуть сущности при загрузке XML. Это означает, что при загрузке документа в DOM создается узел XmlEntityReference , содержащий эталонную переменную &publisher;
, с дочерними узлами, представляющими содержимое в сущности, объявленной в DTD.
Используя объявление сущности, на следующей <!ENTITY publisher "Microsoft Press">
схеме показаны узлы XmlEntity и XmlText , созданные из этого объявления.
Различия между случаями, когда ссылки на сущности развертываются и когда они остаются неразвернутыми, влияют на то, какие узлы создаются в дереве DOM в памяти. Разница в создаваемых узлах объясняется в разделах " Ссылки на сущности сохраняются , а ссылки на сущности расширяются и не сохраняются.