Поделиться через


ELEMENT

Инструкция ELEMENT применяется для объявления каждого элемента, который используется внутри типа документа, определенного в DTD. Сначала инструкция объявляет имя элемента, а затем определяет, какое содержимое допустимо в элементе.

Синтаксис

<!ELEMENT  name  content >

Параметры

  • name
    Имя элемента. Необходимо точно воспроизвести регистр.
  • content
    Допустимая модель содержимого для элемента может быть одной из следующих.

    • ANY — внутри элемента допускается любое содержимое. При использовании в объявлении элемента, это ключевое слово разрешает открытие неограниченной модели содержимого для элементов и всех дочерних узлов.

    • EMPTY — в элементе не допускается содержимое, он должен оставаться пустым.

    • Объявленное правило для содержимого — в этом случае требуется написать правило для содержимого, заключенное в круглые скобки.

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

      Символы Описание

      #PCDATA

      Содержимое элемента может быть анализируемыми символьными данными.

      name

      Имя элемента. Имя определяемого элемента или других элементов, определенных в DTD, заданное с помощью дополнительных объявлений ELEMENT.

      Если в правиле для содержимого нет других символов или знаков пунктуации, то допускается и требуется только одно вхождение именнованного элемента.

      ()

      В объявлении модели содержимого для элемента требуются как минимум одни круглые скобки (можно вкладывать дополнительные скобки). Дополнительные скобки могут понадобится для уточнения более сложной модели содержимого для элемента.

      |

      Вертикальная черта используется для отделения двух именнованных элементов. При использовании она указывает, что любой из элементов (до или после вертикальной черты) может отображаться как дочерний элемент.

      ,

      Запятая используется для отделения двух именнованных элементов или вложенных правил. При использовании она указывает на порядок отображения элементов или правил.

      ?

      Вопросительный знак используется в качестве суфикса или операнда. При использовании указывает, что предыдущий элемент или правило является необязательным. Может использоваться только один раз в данном фрагменте структуры XML-документа.

      +

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

      *

      Звездочка используется в качестве суфикса или операнда. При использовании указывает, что предыдущий элемент или правило является необязательным. Может использоваться более одного раза в данном фрагменте структуры XML-документа.

Примеры

  • Объявляет элемент <test>, который может содержать любое содержимое.

    <!ELEMENT  test  ANY  >
    
  • Объявляет элемент <Image> , который должен быть пустым (т. е. не может иметь содержимого):

    <!ELEMENT  Image  EMPTY  >
    
  • Объявляет элемент <title>, который может содержать только символьные данные (и никакой другой разметки).

    <!ELEMENT  title  (#PCDATA)  >
    
  • Объявляет элемент <fruit>, содержащий элемент <apple> или элемент <orange>.

    <!ELEMENT  fruit  (apple|orange)  >
    
  • Объявляет элемент <book>, который должен содержать элемент <author>, за которым следует элемент <title>.

    <!ELEMENT  book  (author,title)  >
    
  • Объявляет элемент <memo>, который должен содержать элемент <body>, за которым необязательно должен следовать элемент <postscript>.

    <!ELEMENT  memo  (body,postscript?)  >
    
  • Объявляет элемент <catalog>, который должен содержать один или более элемент <book>.

    <!ELEMENT  catalog  (book+)  >
    
  • Объявляет элемент <table>, который может быть пустым, либо содержать элементы <rowset>.

    <!ELEMENT  table  (rowset*)  >
    

См. также

Основные понятия

ATTLIST (список атрибутов)
ENTITY
NOTATION