Как получить объявление Doctype в Xerces-C при использовании SAX2? - PullRequest
1 голос
/ 13 мая 2010

Я использую SAX2 из Xerces-C для чтения XML-документа. Однако я хотел бы проверить объявление Doctype (если оно есть), чтобы убедиться, что файл XML находится в ожидаемом формате.

Я пробовал методы unparsedEntityDecl и notationDecl из DTDHandler и EntityResolver , кажется, более низкого уровня, чем то, что я ищу.

Моя мотивация заключается в том, чтобы иметь возможность подтвердить, что входные данные имеют формат, который я ожидаю, чтобы я мог различать документы, которые не выводят, и документы, которые полностью имеют неправильный формат.

1 Ответ

1 голос
/ 13 мая 2010

Посмотрите на LexicalHandler - startDTD даст вам Doctype. Тем не менее, это не подтверждает, что документ действительно следует этому Doctype. Для этого вам нужно включить проверку в читателе с помощью setFeature . (Я использовал только Java Xerces, но из документации это выглядит как методы в основном то же самое. )

...