I am trying to reference several entities such as ampersands, hyphens, etc. To do that, I already have a URL where an .ent document is deposited. Unfortunately, I have no DTD document and assuming that there is problem because of that (although all information I need is provided in the ent document).
The URL looks like this:
<!--
Copyright and Table of Contents (several blocks)
-->
<!-- ==================================================================== -->
<!--
Comment: first block
-->
<!ENTITY xxxx "xxxx" ><!--comment-->
(...)
<!--
Comment: second block
-->
<!ENTITY xxxx "xxxx" ><!--comment-->
(...)
Итак, сущности перечислены в документе. Мой XML относится к этому так:
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE NAME_OF_THE_CREATOR_AND_VERSION [
<!ENTITY % NAME_OF_THE_CREATOR_AND_VERSION.ent SYSTEM "URL"> %NAME_OF_THE_CREATOR_AND_VERSION.ent; ]>
(...)
Я добавил подчеркивания, чтобы улучшить читаемость.
До сих пор у меня
- добавлен автономный = нет
- уменьшил ссылку на
<!DOCTYPE NAME SYSTEM "URL">
- добавил объекты в XML (хотя я бы предпочел найти способ сохранить внешнюю ссылку, поскольку документ .ent содержит множество объектов).
Последний выглядит так:
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!DOCTYPE entities [
<!ENTITY hyphen "‐">
<!ENTITY copy "©">
<!ENTITY nbsp " ">
<!ENTITY ndash "–">
<!ENTITY auml "ä">
<!ENTITY uuml "ü">
<!ENTITY deg "°">
<!ENTITY Delta "Δ">
<!ENTITY minus "−">
<!ENTITY ensp " ">
]>
Я проверил синтаксис XML в BaseX, notepad ++ и XML Validator от w3schools, и каждый раз (за исключением внутреннего объявления) он говорит, что на объект (например, дефис) ссылались, но не объявляли, или что есть ошибка в объявлении разметки. Между тем, когда я проверил файл ent, он сказал, что в конце документа добавлен контент, начиная с объявлений сущностей, или что было использовано недопустимое имя элемента - но это, вероятно, связано с тем, что это файл ent?
Заранее спасибо за любую помощь и советы.
Лучше,
Элеонора
EDIT: Я использую графический интерфейс BaseX в Windows 10. Я включил Parse DTD и Entities, а также внутренний анализатор XML и вырезание пробелов.