Я новичок в DTD, и я не уверен, правильно ли понял этот код.DTD + (tag1, tag2)
<!ELEMENT P - - (#PCDATA) +(tag1 | tag2 | tag3) >
Этот код позволяет P-тегу содержать tag1, tag2 и tag3?
Я новичок в DTD, и я не уверен, правильно ли понял этот код.DTD + (tag1, tag2)
<!ELEMENT P - - (#PCDATA) +(tag1 | tag2 | tag3) >
Этот код позволяет P-тегу содержать tag1, tag2 и tag3?
Это SGML синтаксис, а не XML. Вы можете видеть это, потому что между именем объявленного элемента (P
) и декларацией содержимого (#PCDATA
) вы сталкиваетесь с «- -
», что означает, что ни начальный тег, ни конечный тег не могут быть опущены (иначе вы могли бы что-то вроде «- O
», что означает, что конечный тег можно опустить).
+(tag1 | tag2 | tag3)
означает, что вам разрешено использовать tag1
, tag2
, tag3
везде, где вы хотите, вложенные в P
элемента. Это рекурсивный, что означает, что если предположить, что другие элементы были разрешены в пределах P
, вы могли бы также включить эти теги, даже если они не объявлены на одном уровне элемента.
В противном случае, чтобы предотвратить добавление этих элементов в ваш элемент и его подэлементы, вы будете использовать -(tag1 | tag2 | tag3)
.
Спасибо @potame! – Viin