У меня есть следующий fake.dtd
файл:DTD Ошибка проверки символьных данных из-за LineBreak
<!ELEMENT outer - - (#PCDATA, foo, bar) >
<!ELEMENT foo - o (#PCDATA) >
<!ELEMENT bar - - (#PCDATA) >
И следующий документ SGML:
<!DOCTYPE outer SYSTEM "fake.dtd">
<OUTER>Document Title
<FOO>1234
<BAR>wxyz</BAR>
</OUTER>
Я получаю сообщение об ошибке проверки с помощью nsgmls
:
4: 19: E: символьные данные здесь не допускаются
Отметьте, что установка </OUTER>
на эту же строку </BAR>
решает проблему; ошибка относится к разрыву строки.
Есть ли способ сохранить SGML как есть (потому что у меня уже есть тысячи таких документов), но измените DTD так, чтобы он проверял?
Добавление другого #PCDATA
в конец элемента outer
кажется глупым, потому что это сделало бы символы, отличные от новой строки законными.