Я использую отдельный файл .dtd в качестве типа документа для своего пользовательского файла xml:
имена.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name SYSTEM "names.dtd">
<names>
<name>
<text>Pepé</text>
<creator>&lost;</creator>
<history>&lost;</history>
</name>
<name>
<text>Charles</text>
<creator>James</creator>
<history>&lost;</history>
</name>
</names>
имена.dtd
<!ELEMENT name (text, creator+, history)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT creator (#PCDATA)>
<!ELEMENT history (#PCDATA)>
<!-- Placeholder/unknown history or creator name -->
<!ENTITY lost "Lost in the depths of time.">
<!ENTITY eacute "é">
Однако при попытке доступа к named.xml я получаю следующую ошибку:
Ошибка синтаксического анализа XML: неопределенный объект Местоположение: http://localhost/.../names.xml Строка номер 5, столбец 18:
<text>Pepé</text>
---------^
Просто для пояснения, что имена.xml и name.dtd находятся в одном каталоге и используют http://localhost/.../names.dtd тоже не работает.
Однако это работает, если поместить <!ENTITY
внутри <!DOCTYPE
в names.xml
. Кто-нибудь может посоветовать по этому поводу?