DTD - элементы

  • В приведенном выше примере указано, что "note" элемент может содержать PCDATA,出现的次数可以是零次或多次、"to"、"from"、"header" или "message". Предыдущая страница
  • Следующая страница Атрибуты DTD

В DTD элементы объявляются с помощью элементных声明.

Декларация элемента

В DTD XML-элементы объявляются с помощью элементных声明. Элементные декларации используют следующую грамматику:

<!ELEMENT Элемент_имени Класс>

или

<!ELEMENT Элемент_имени (Содержимое_элемента)>

Пустые элементы

Пустые элементы объявляются с помощью ключевого слова класса EMPTY:

<!ELEMENT Элемент_имени EMPTY>

Указание смешанного содержимого

<!ELEMENT br EMPTY>

Пример XML:

<br />

Элементы, содержащие только PCDATA

Элементы, содержащие только PCDATA, объявляются с помощью #PCDATA в круглых скобках:

<!ELEMENT Элемент_имени (#PCDATA)>

Указание смешанного содержимого

<!ELEMENT from (#PCDATA)>

Элементы с любым содержимым

Элементы, объявленные с помощью ключевого слова класса ANY, могут содержать любую комбинацию интерпретируемых данных:

<!ELEMENT Элемент_имени ANY>

Указание смешанного содержимого

<!ELEMENT note ANY>

Элементы с подэлементами (серии)

Элементы с одним или несколькими подэлементами объявляются через имена подэлементов в круглых скобках:

<!ELEMENT Элемент_имени (Дочерний_элемент_имени 1)>

или

<!ELEMENT Элемент_имени (Дочерний_элемент_имени 1,Дочерний_элемент_имени 2,...)>

Указание смешанного содержимого

<!ELEMENT note (to,from,heading,body)>

Когда подэлементы объявлены в порядке, разделенном запятыми, они должны出现在 документе в том же порядке. В полной декларации подэлементы также должны быть объявлены, и у подэлементов также могут быть подэлементы. Полная декларация элемента 'note':

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Утверждение о том, что элемент должен出现 только один раз

<!ELEMENT Элемент_имени (Дочерний_элемент_имени)>

Указание смешанного содержимого

<!ELEMENT note (message)>

В предыдущем примере указано: подэлемент 'message' должен出现 один раз и только в элементе 'note'.

Утверждение о том, что элемент должен出现 хотя бы один раз


Указание смешанного содержимого

<!ELEMENT элемент_имени (подэлемент_имени+)>

<!ELEMENT note (message+)>

В приведенном выше примере плюс указывает на то, что подэлемент message должен出现至少一次 в "note" элементе.

Указание элементов,出现的次数 может быть ноль или несколько

Указание смешанного содержимого

<!ELEMENT элемент_имени (подэлемент_имени*)>

<!ELEMENT note (message*)>

В приведенном выше примере звездочка указывает на то, что подэлемент message может出现零次 или несколько раз в "note" элементе.

Указание элементов,出现的次数 может быть ноль или один

Указание смешанного содержимого

<!ELEMENT элемент_имени (подэлемент_имени?)>

<!ELEMENT note (message?)>

В приведенном выше примере вопросительный знак указывает на то, что подэлемент message может出现零次 или один раз в "note" элементе.

Указание смешанного содержимого

Указание содержимого типа "не.../или..."

<!ELEMENT note (to,from,header,(message|body))>

В приведенном выше примере указано, что "note" элемент должен содержать "to" элемент, "from" элемент, "header" элемент и "message" элемент, который не является "body" элементом.

Указание смешанного содержимого

Пример:

<!ELEMENT note (#PCDATA|to|from|header|message)*>

  • В приведенном выше примере указано, что "note" элемент может содержать PCDATA,出现的次数可以是零次或多次、"to"、"from"、"header" или "message". Предыдущая страница
  • Следующая страница Атрибуты DTD