Поиск…


замечания

С точки зрения хранилища XML-документ состоит из объектов. Одним из объектов является объект документа, который является основным документом XML.

Объекты можно классифицировать так (предварительно отсортированные по убыванию порядка использования):

  • document entity : это основной файл XML.
  • внутренние общие объекты : это самый распространенный из них, кроме объекта документа, и об этом знают большинство пользователей XML. Зачастую слово « сущность» случайно используется для них. Они позволяют указывать некоторые ярлыки для более длинных текстов замены в содержимом документа. Они объявляются в DTD.
  • внешнее подмножество DTD : другой файл, в котором часть DTD передается на аутсорсинг.
  • объекты параметров : ярлыки для использования в DTD.
  • внешние разобранные общие объекты : это фрагменты XML, хранящиеся в других файлах.
  • unparsed entity : это могут быть любые файлы, на которых XML не содержит ограничений, включая изображения, звуки и т. д.

Во многих случаях XML-документ состоит исключительно из объекта документа.

Предопределенные общие объекты

XML предопределяет пять общих объектов, которые можно использовать, не объявляя их:

& " ' < >

Они связаны с именами amp , quot , apos , lt и gt .

<?xml version="1.0"?>
<entities>
  &amp; is an ampersand.
  &quot; is a quote.
  &apos; is an apostrophe.
  &lt; is a lower-than sign.
  &gt; is a greater-than sign. 
</entities>

Пользовательские общие (внутренние) объекты

Можно определить собственные общие сущности. Объявление происходит в подмножестве DTD с именем и связанным с ним заменяющим текстом.

Затем он может использоваться в документе с использованием синтаксиса ссылки на сущность &...; , либо в тексте, либо в значениях атрибутов.

<?xml version="1.0"?>
<!DOCTYPE my-document [
  <!ENTITY my-entity "This is my entity">
]>
<my-document>
    The entity was declared as follows: &my-entity;
    <element attribute="Entity: &my-entity;"/>
</my-document>

Внешние анализируемые объекты

Фрагменты XML, также известные под именем внешних анализируемых объектов , могут храниться в отдельных файлах.

XML-фрагменты, в отличие от документов XML, менее ограничительны, поскольку несколько элементов могут отображаться как на верхнем уровне, так и на текстовых узлах. Как и XML-документ, внешний обработанный объект может начинаться с объявления XML, но это заявление не считается частью его заменяющего текста.

Это пример внешнего анализируемого объекта:

<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>

Затем внешний анализируемый объект может быть объявлен в XML-документе в DTD и может использоваться с ссылкой на сущность, которая имеет тот же синтаксис, что и для общих внутренних объектов:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
    &fragment;
</root>

Если ссылка на сущность решена, этот документ эквивалентен:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
  This is some text
  <element/>
  <element/>
</root>

Каждый тег открытого элемента во внешнем анализируемом объекте должен иметь соответствующий конечный тег: ему не разрешено распространять отдельные элементы по нескольким сущностям или распространять разметку.

Для разрешения ссылки на сущность требуется проверочный синтаксический анализатор и включает его заменяющий текст в документе, как указано выше. Недействительный синтаксический анализатор может пропустить это и вместо этого сообщить заявляющему приложению, что существует неразрешенная ссылка на внешний обработанный объект.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow