Проверка XHTML5 в PHP? - PullRequest
       41

Проверка XHTML5 в PHP?

2 голосов
/ 12 ноября 2011

Справочная информация Я принял решение обслуживать свой веб-сайт как application/xhtml+xml для всех, кто его примет.Я понимаю, что есть последствия, последствия которых я готов принять.

Проблема Я пытаюсь проверить XHTML5 в PHP.Таким образом, я могу обработать файл как text/html, если проверка не удалась (эй, никто не идеален).Мой вопрос имеет смысл, даже если он вынесен за пределы моей ситуации.

Итак, каковы мои варианты проверки XHTML5?


Что ясделано:

Я уже использую PHP DOMDocument в своем исходном коде в качестве шаблона, поэтому я хотел бы иметь возможность использовать DOMDocument :: relaxNGValidate или DOMDocument :: schemaValidate .Я не могу найти ни .xsd, ни .rng для использования.Тем не менее, я думаю, что нашел каталог , из которого можно сделать грамматику rng .До сегодняшнего дня я никогда не слышал о Relax NG.Любая помощь в этом направлении?

Ответы [ 2 ]

2 голосов
/ 17 июня 2012

Новый (Nu) HTML5 Validator имеет схему RELAX NG для различных предустановок, включая XHTML5

См. https://bitbucket.org/validator/syntax/src/ed90a83ab0fd/relaxng https://github.com/validator/validator/tree/master/syntax/relaxng

Это то, что вы ищете, или я запутался?

2 голосов
/ 17 мая 2012

Как отметил @Kevin Peno, HTML5 - это не XML, и, хотя это поначалу меня не устраивало, я с этим согласился и решил рассматривать HTML5 только как конечный формат вывода, а не документ с потенциал для повторного использования и преобразования с помощью инструментов XML.

Мое предложение, если вы хотите пойти по этому пути, - передать разметку HTML5 через процесс очистки, который гарантирует действительный XML (на ум приходят такие инструменты, как Tidy).

Другой вариант - немного переосмыслить свой подход и рассматривать HTML как конечный формат вывода. Используйте другой язык разметки для хранения контента и, возможно, даже структуры вашего сайта.

Например, вы можете использовать Markdown для контента (легко конвертируемый в HTML). Если вы предпочитаете придерживаться XML, возможно, определите свой собственный DSL или повторно используйте такой, как Упрощенный DocBook . Это работало хорошо для меня в прошлом.

Затем используйте XSL для преобразования вашего XML-массива в HTML5 или любой другой формат вывода, какой пожелаете.

Теперь, чтобы попытаться ответить на ваш вопрос напрямую, вам, безусловно, необходимо «привести в порядок» разметку HTML5, чтобы убедиться, что это действительный XML, прежде чем использовать инструмент проверки, такой как RelaxNG или XML Schema. Что касается вашего файла схемы RNG, я бы предложил сначала поискать XHTML 1.0 Strict .rng, а затем просмотреть спецификацию HTML5 и добавить элементы и атрибуты по мере необходимости. Быстрый поиск в Google показал следующий .

Если вы выбираете между RNG и XML-схемой, избавьте себя от головной боли и отправляйтесь в RelaxNG. Это мое мнение, но я широко использовал оба, и RelaxNG намного удобнее для восприятия человеком и с ним легче работать!

...