Чтобы иметь возможность вставить элемент <planet>
в документ XML, вам нужно указать DTD, где он может быть вставлен.
Технически это означает переписать весь DTD - так как вам нужно указать каждый существующий элементчто он может иметь новое содержимое - но, к счастью, DTD XHTML 1.1 является модульным, и все, что вам нужно сделать, это переопределить одну из его сущностей, прежде чем включать ее.
Предполагая, что новый элемент является элементом фразы, вставляемым везденапример, <dfn>
, <cite>
и т. д., мы можем использовать сущность InlPhras.class
для добавления нового элемента в.
<!ENTITY % InlPhras.class
"| em | strong | dfn | code | samp | kbd | var | cite | abbr | q | planet " >
Сделайте это перед включением DTD XHTML 1.1 в ваш DTD, чтобыВесь ваш файл будет выглядеть так:
<!ENTITY % InlPhras.class
"| em | strong | dfn | code | samp | kbd | var | cite | abbr | q | planet " >
<!ELEMENT planet ANY>
<!ENTITY % html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
%html;
Тогда это сработает. И подтвердите.
Кстати, вы действительно хотите ANY
для модели контента в новом элементе? Это означает, что в него можно положить любой элемент, даже <body>
и <head>
. Я не думаю, что это то, что вы хотите.