2015-09-28 10 views
0

Я новичок в DTD, и я не уверен, правильно ли понял этот код.DTD + (tag1, tag2)

<!ELEMENT P   - - (#PCDATA) +(tag1 | tag2 | tag3) > 

Этот код позволяет P-тегу содержать tag1, tag2 и tag3?

ответ

1

Это SGML синтаксис, а не XML. Вы можете видеть это, потому что между именем объявленного элемента (P) и декларацией содержимого (#PCDATA) вы сталкиваетесь с «- -», что означает, что ни начальный тег, ни конечный тег не могут быть опущены (иначе вы могли бы что-то вроде «- O», что означает, что конечный тег можно опустить).

+(tag1 | tag2 | tag3) означает, что вам разрешено использовать tag1, tag2, tag3 везде, где вы хотите, вложенные в P элемента. Это рекурсивный, что означает, что если предположить, что другие элементы были разрешены в пределах P, вы могли бы также включить эти теги, даже если они не объявлены на одном уровне элемента.

В противном случае, чтобы предотвратить добавление этих элементов в ваш элемент и его подэлементы, вы будете использовать -(tag1 | tag2 | tag3).

+0

Спасибо @potame! – Viin