#xml #phpstorm #doctype #inspection
#xml #phpstorm #doctype #проверка
Вопрос:
Я столкнулся с проблемой с пользовательским XML DOCTYPE, когда ни один из элементов, похоже, не регистрируется PhpStorm.
Таким образом, все, что я получаю, — это тонна красного. Я использовал метод «ALT-ENTER -> Fetch DTD», как указано в документации, который избавил от того, что URI DOCTYPE не был разрешен… но элементы по-прежнему не считаются действительными. Есть ли что-нибудь еще, что нужно сделать?
вот фрагмент на случай, если вы захотите воспроизвести проблему:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ONIXmessage SYSTEM http://www.editeur.org/onix/2.1/short/onix-international.dtd>
<ONIXmessage release="2.1">
<header>
<m174>foo</m174>
<m182>bar</m182>
</header>
</ONIXmessage>
Комментарии:
1. Вы должны указать свой системный идентификатор, а затем посмотреть на ответ @jasso.
2. похоже, что .dtd включает в себя несколько десятков файлов .ent с относительными путями, некоторые из которых были недоступны с учетом указанного URI. Я загрузил полный набор файлов .dtd, .elt и .ent и заменил URI ссылкой на локальную копию — теперь проверка работает так, как ожидалось.
Ответ №1:
Быстрая проверка показала, что ваш документ недействителен. После <header>
элемента должен быть хотя бы один из этих элементов:
<product>
<mainseriesrecord>
<subseriesrecord>
Комментарии:
1. хотя это, безусловно, верно, оно должно выдавать ошибку проверки только для элемента <ONIXMessage>, а не для его собственных подэлементов. спасибо за усилия!