Внешние объекты XML
Внешние Сущности
Внешние объекты предлагают механизм для разделения вашего документа на логические порции. Например, вместо того, чтобы создавать монолитный документ, книгу с 10 главами, вы можете хранить каждую главу в отдельном файле и использовать внешние сущности для «ввода» 10 глав.
Поскольку внешние объекты в разных документах могут ссылаться на одни и те же файлы в вашей файловой системе, внешние объекты предоставляют возможность реализовать повторное использование. Повторное использование небольших дискретных компонентов (цифры, юридический шаблон, предупреждающие сообщения) довольно просто в управлении. Внедрение повторного использования в больших масштабах требует системы управления объектами, которую сам XML не предоставляет.
Несколько заметок о внешних сущностях
- Внешние объекты не должны состоять из одного элемента; Вы можете создать последовательность из трех абзацев или даже набор символьных данных со встроенной встроенной разметкой во внешнем объекте. Но теги во внешнем объекте должны быть хорошо сбалансированы (вы не можете начать тег в объекте и завершить его в своем документе или в другом объекте).
- Внешние объекты могут ссылаться на внутренние или другие внешние объекты, но у вас не может быть циклических ссылок.
- Вы можете ссылаться на одну и ту же внешнюю сущность несколько раз в одном документе. Однако обратите внимание, что если вы сделаете это, вам придется избегать использования атрибутов ID во внешнем объекте, если вы беспокоитесь о достоверности. Использование внешнего объекта, содержащего идентификатор в нескольких местах в документе, приведет к созданию документа с несколькими дублирующимися идентификаторами, что является ошибкой достоверности.
- Законно иметь несколько внешних объектов, которые все ссылаются на один и тот же внешний файл.
- Нет никаких дополнительных ограничений, накладываемых на кодировки символов, используемые внешними объектами. В частности, внешние объекты с разными кодировками могут использоваться в одном и том же документе.
Объявление внешних лиц
Декларации внешних сущностей бывают двух видов. Если внешняя сущность содержит текст XML, объявление имеет следующую форму:
<!ENTITY <i>entityname</i>
[PUBLIC "<i>public-identifier</i>"]
SYSTEM "<i>system-identifier</i>">
Системный идентификатор должен указывать на экземпляр ресурса через URI , чаще всего простое имя файла. Открытый идентификатор, если он указан, может использоваться системой XML для генерации альтернативного URI (это обеспечивает удобный уровень косвенности в системах, поддерживающих открытые идентификаторы).
Внешняя сущность, которая включает chap1.xml в ваш документ, может быть объявлена так:
<!ENTITY chap1 SYSTEM "chap1.xml">
Несмотря на растущую тенденцию хранить все в XML, есть некоторые устаревшие системы, которые все еще хранят данные в не-XML форматах. Графика иногда хранится в нечетных форматах, таких как PNG и GIF, например ;-).
Внешние объекты, которые ссылаются на эти файлы, должны объявить, что содержащиеся в них данные не являются XML. Они достигают этого, указывая формат внешнего объекта в нотации :
<!ENTITY <i>entityname</i>[<span class="OPTIONAL">PUBLIC "<i>public-identifier</i>"</span>]
SYSTEM "<i>system-identifier</i>"<i>notation</i>>
Предыдущая: Внутренние сущности XML
Далее: объекты параметров XML
Новый контент: Composer: менеджер зависимостей для PHP , R программирования