Элементы XML могут быть определены как строительные блоки документа XML. Элементы могут вести себя как контейнер для хранения текста, элементов, атрибутов, объектов мультимедиа или их комбинации.
Элемент DTD объявляется с объявлением ELEMENT. Когда файл XML проверяется DTD, анализатор сначала проверяет корневой элемент, а затем проверяются дочерние элементы.
Синтаксис
Все объявления элементов DTD имеют эту общую форму —
<!ELEMENT elementname (content)>
-
Объявление ELEMENT используется для указания синтаксического анализатора, который вы собираетесь определить элемент.
-
elementname — это имя элемента (также называемое универсальным идентификатором ), которое вы определяете.
-
content определяет, какой контент (если есть) может идти внутри элемента.
Объявление ELEMENT используется для указания синтаксического анализатора, который вы собираетесь определить элемент.
elementname — это имя элемента (также называемое универсальным идентификатором ), которое вы определяете.
content определяет, какой контент (если есть) может идти внутри элемента.
Типы содержимого элемента
Содержимое объявления элементов в DTD можно классифицировать следующим образом:
-
Пустой контент
-
Содержание элемента
-
Смешанный контент
-
Любой контент
Пустой контент
Содержание элемента
Смешанный контент
Любой контент
Пустой контент
Это особый случай объявления элемента. Это объявление элемента не содержит никакого содержимого. Они объявлены с ключевым словом EMPTY .
Синтаксис
Ниже приводится синтаксис объявления пустого элемента —
<!ELEMENT elementname EMPTY >
В приведенном выше синтаксисе —
-
ELEMENT — объявление элемента категории EMPTY
-
elementname — имя пустого элемента.
ELEMENT — объявление элемента категории EMPTY
elementname — имя пустого элемента.
пример
Ниже приведен простой пример, демонстрирующий объявление пустого элемента —
<?xml version = "1.0"?> <!DOCTYPE hr[ <!ELEMENT address EMPTY> ]> <address />
В этом примере адрес объявлен как пустой элемент. Разметка для элемента address будет выглядеть как <address />.
Элемент Содержимое
В объявлении элемента с содержимым элемента содержимое будет допустимым элементом в скобках. Мы также можем включить более одного элемента.
Синтаксис
Ниже приведен синтаксис объявления элемента с содержимым элемента:
<!ELEMENT elementname (child1, child2...)>
-
ELEMENT — тег объявления элемента
-
elementname — это имя элемента.
-
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
ELEMENT — тег объявления элемента
elementname — это имя элемента.
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
пример
Ниже приведен простой пример объявления элемента с содержимым элемента —
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?> <!DOCTYPE address [ <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address>
В приведенном выше примере address является родительским элементом, а name , company и phone_no являются его дочерними элементами.
Список операторов и синтаксических правил
Ниже в таблице приведен список операторов и синтаксических правил, которые можно применять при определении дочерних элементов.
оператор | Синтаксис | Описание | пример |
---|---|---|---|
+ | <! ELEMENT element-name (child1 +)> | Это указывает на то, что дочерний элемент может встречаться один или несколько раз внутри родительского элемента. |
<! ELEMENT адрес (имя +)> Имя дочернего элемента может встречаться один или несколько раз внутри адреса имени элемента. |
* | <! ELEMENT element-name (child1 *)> | Это указывает, что дочерний элемент может встречаться ноль или более раз внутри родительского элемента. |
<! ELEMENT адрес (имя *)> Имя дочернего элемента может встречаться ноль или более раз внутри адреса имени элемента. |
? | <! ELEMENT element-name (child1?)> | Это указывает на то, что дочерний элемент может появляться ноль или один раз внутри родительского элемента. |
<! ELEMENT адрес (имя?)> Имя дочернего элемента может встречаться ноль или один раз внутри адреса имени элемента. |
, | <! ELEMENT element-name (child1, child2)> | Это дает последовательность дочерних элементов, разделенных запятой, которая должна быть включена в имя элемента. |
<! ELEMENT адрес (имя, компания)> Последовательность дочерних элементов name , company , которая должна встречаться в том же порядке внутри адреса имени элемента. |
| | <! ELEMENT element-name (child1 | child2)> | Это позволяет делать выбор в дочернем элементе. |
<! ELEMENT адрес (имя | компания)> Он позволяет вам выбрать любой из дочерних элементов, т. Е. Имя или компанию , которые должны находиться внутри адреса имени элемента. |
<! ELEMENT адрес (имя +)>
Имя дочернего элемента может встречаться один или несколько раз внутри адреса имени элемента.
<! ELEMENT адрес (имя *)>
Имя дочернего элемента может встречаться ноль или более раз внутри адреса имени элемента.
<! ELEMENT адрес (имя?)>
Имя дочернего элемента может встречаться ноль или один раз внутри адреса имени элемента.
<! ELEMENT адрес (имя, компания)>
Последовательность дочерних элементов name , company , которая должна встречаться в том же порядке внутри адреса имени элемента.
<! ELEMENT адрес (имя | компания)>
Он позволяет вам выбрать любой из дочерних элементов, т. Е. Имя или компанию , которые должны находиться внутри адреса имени элемента.
правила
Мы должны следовать определенным правилам, если есть более одного элемента контента —
-
Последовательности — часто элементы в документах DTD должны отображаться в определенном порядке. Если это так, вы определяете содержимое с помощью последовательности.
Объявление указывает, что у элемента <address> должно быть ровно три дочерних элемента — <name>, <company> и <phone> — и что они должны появляться в этом порядке. Например —
Последовательности — часто элементы в документах DTD должны отображаться в определенном порядке. Если это так, вы определяете содержимое с помощью последовательности.
Объявление указывает, что у элемента <address> должно быть ровно три дочерних элемента — <name>, <company> и <phone> — и что они должны появляться в этом порядке. Например —
<!ELEMENT address (name,company,phone)>
-
Выбор. Предположим, вам нужно разрешить один или другой элемент, но не оба. В таких случаях вы должны использовать символ трубы (|). Труба функционирует как эксклюзивное ИЛИ. Например —
Выбор. Предположим, вам нужно разрешить один или другой элемент, но не оба. В таких случаях вы должны использовать символ трубы (|). Труба функционирует как эксклюзивное ИЛИ. Например —
<!ELEMENT address (mobile | landline)>
Содержание смешанного элемента
Это комбинация (#PCDATA) и дочерних элементов. PCDATA обозначает проанализированные символьные данные, то есть текст, который не является разметкой. В моделях со смешанным содержимым текст может появляться сам по себе или между элементами. Правила для моделей со смешанным содержимым аналогичны элементам содержимого, как обсуждалось в предыдущем разделе.
Синтаксис
Ниже приведен общий синтаксис для содержимого смешанных элементов:
<!ELEMENT elementname (#PCDATA|child1|child2)*>
-
ELEMENT — тег объявления элемента.
-
elementname — это имя элемента.
-
PCDATA — это текст, который не является разметкой. #PCDATA должен стоять первым в объявлении смешанного содержимого.
-
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
-
Оператор (*) должен следовать за смешанным объявлением контента, если включены дочерние элементы
-
Объявления (#PCDATA) и дочерних элементов должны быть разделены оператором (|).
ELEMENT — тег объявления элемента.
elementname — это имя элемента.
PCDATA — это текст, который не является разметкой. #PCDATA должен стоять первым в объявлении смешанного содержимого.
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
Оператор (*) должен следовать за смешанным объявлением контента, если включены дочерние элементы
Объявления (#PCDATA) и дочерних элементов должны быть разделены оператором (|).
пример
Ниже приведен простой пример, демонстрирующий объявление смешанного элемента содержимого в DTD.
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?> <!DOCTYPE address [ <!ELEMENT address (#PCDATA|name)*> <!ELEMENT name (#PCDATA)> ]> <address> Here's a bit of text mixed up with the child element. <name> Tanmay Patil </name> </address>
ЛЮБОЙ элемент контента
Вы можете объявить элемент, используя ключевое слово ANY в содержимом. Это чаще всего упоминается как элемент смешанной категории. ЛЮБОЙ полезно, когда вам еще предстоит определить допустимое содержимое элемента.
Синтаксис
Ниже приведен синтаксис объявления элементов с ЛЮБЫМ контентом:
<!ELEMENT elementname ANY>
Здесь ключевое слово ANY указывает, что текст (PCDATA) и / или любые элементы, объявленные в DTD, могут использоваться в содержимом элемента <elementname>. Их можно использовать в любом порядке любое количество раз. Однако ключевое слово ANY не позволяет включать элементы, которые не объявлены в DTD.
пример
Ниже приведен простой пример, демонстрирующий объявление элемента с ЛЮБОЙ информацией.