DTD Element: альтернатива между текстом и элементом
Я хочу определить dtd для моего XML-документа.
В этом dtd у меня есть элемент под названием
p
, p может содержать либо #PCDATA, либо другой элемент (img). Как я могу объявить это? Я попробовал это:
<!ELEMENT p (#PCDATA | img)>
<!ELEMENT img EMPTY>
Но это не работает. Ошибка ответа: Ошибка: '>' - неожиданный токен. Ожидаемый токен - "*". Когда я пытаюсь это:
<!ELEMENT p ((#PCDATA) | img)>
<!ELEMENT img EMPTY>
произошла ошибка: Ошибка: имя не может начинаться с символа "#", шестнадцатеричное значение 0x23.
Как я могу добиться, чтобы p содержал текст или другой элемент img? Необходимо, чтобы оба варианта работали. Один из двух вариантов должен быть реализован.
<p>some text</p>
а также
<p><img src='...' /></p>
Привет!
1 ответ
Решение
Модели со смешанным содержимым должны иметь ограничение на вхождение нуля или более.
<!ELEMENT p (#PCDATA | img)*>