Создать DTD для узла с внутренним узлом xml и текстом

У меня есть довольно простой XML, показанный ниже.

<?xml version="1.0" ?>
<message>
This is a message with some <bold>highlights</bold> in a text.
</message>

Как я могу создать DTD для проверки вещей внутри элемента сообщения? Смесь узла и текста. Это не работает.

<!DOCTYPE message [
  <!ELEMENT message (#PCDATA, bold)>
  <!ELEMENT bold (#PCDATA)>
]>

1 ответ

Решение

Если у вас смешанный контент (как элементы, так и текст), вы не можете указать порядок (используйте | вместо ,) и это должно быть ноль или более вхождений (*).

Пример:

<!DOCTYPE message [
<!ELEMENT message (#PCDATA|bold)*>
<!ELEMENT bold (#PCDATA)>
]>
<message>
    This is a message with some <bold>highlights</bold> in a text.
</message>
Другие вопросы по тегам