Если ö
является единственной сущностью, которой не хватает, вы можете определить ее в строке с DOCTYPE, как предложено Kaustabh.
<!DOCTYPE article [
<!ENTITY ouml "your redired value">
]>
Однако, если у вас много таких сущностей, вам лучшеот создания отдельного .dtd
файла (скажем, "myxml.dtd"
) и ссылки на него в вашем XML.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE myxml SYSTEM "myxml.dtd">
<myxml>
// The rest of your XML
</myxml>
Теперь, чтобы синтаксический анализатор мог найти файл, он должен быть помещен в путь проекта.Если вы связываете файл DTD с вашим приложением, вы можете поместить файл в папку resources
, найти путь к этому файлу и заменить его в строке XML.
val dtdFilePath = getClass.getClassLoader.getResource("myxml.dtd").toURI
val xmlString = s"""
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE myxml SYSTEM "$dtdFilePath">
<myxml>
// The rest of your XML
</myxml>
"""
val xml = XML.loadString(xmlString)
Загрузкаиспользование файла ClassLoader
обеспечивает доступ к файлу, даже если ваше приложение распространяется с использованием jar
.