W3 C рекомендуемый список объявлений типов документов указывает следующий тип документа для X HTML 1.1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Это тот же идентификатор системы, рекомендованный A List Apart , сайт Wiley Dummies и многие другие. Это был один из стандартных системных идентификаторов для модульного DTD X HTML 1.1.
К сожалению, этот модульный DTD относится к другим XML объектам, некоторые из которых W3 C удален со своего сайта, полностью прерывая синтаксический анализ.
Вы можете проверить это в Java 11. Начните со следующего файла X HTML 1.1:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>XHTML 1.1 Skeleton</title>
</head>
<body>
</body>
</html>
Попробуйте проанализировать его, используя стандартный встроенный в Java синтаксическом анализаторе:
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
final Document document;
try (InputStream inputStream = new BufferedInputStream(getClass().getResourceAsStream("xhtml-1.1-test.xhtml"))) {
document = documentBuilder.parse(inputStream);
}
Синтаксический анализ не удастся, выбрасывая java.io.FileNotFoundException
для http://www.w3.org/TR/xhtml11/DTD/xhtml-datatypes-1.mod
. Очевидно, W3 C полностью удалил эту сущность со своего веб-сайта.
Если вместо этого используется http://www.w3.org/MarkUp/DTD/xhtml11.dtd
(что появляется в комментарии в спецификации X HTML 1.1 DTD ) синтаксический анализ завершается нормально (хотя и примерно через 10 минут).
Почему W3 C делает недостаточными сущности доступными в коллекции http://www.w3.org/TR/xhtml11/DTD/
, прерывая синтаксический анализ X HTML 1.1 со стандартным идентификатором системы? Почему не все модули доступны на http://www.w3.org/MarkUp/DTD/
? С кем в W3 C мне следует связаться, чтобы исправить это? (И почему HTTP-доступ занимает так много времени для этих объектов?)