Я разбираю патенты USPTO с 2001 года в формате SGML.Вверху каждого файла указывается внешний DTD .К сожалению, этот DTD кажется недействительным.Проверка достоверности подтверждает, что:
Line 361
Error: A '(' character or an element type is required within declaration of element type "ADR".
<!ELEMENT ADR - - (OMC?,STR*,CITY?,CNTY?,STATE?,CTRY?,PCODE?,EAD*,TEL*,FAX* ...
Однако мне не нужно проверять файлы SGML, подлежащие обработке.Мне просто нужен анализатор SGML, чтобы быть в курсе сущностей.В настоящее время я использую Python с библиотекой LXML.Я вызываю XMLParser следующим образом:
parser = etree.XMLParser(target=SimpleXMLHandler(), resolve_entities=False, load_dtd=dtd, dtd_validation=False, recover=True)
Но, тем не менее, я сразу получаю сообщение об ошибке, что внешнее DTD недопустимо в строке 361. Как я могу избежать этой проблемы?Я не являюсь разработчиком DTD, поэтому я не хочу его ремонтировать.
С уважением!