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

Задний план

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

проблема

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

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


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

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

    Related of "Проверка XHTML5 в PHP?"

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

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

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

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

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

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

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

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

    Видеть https://bitbucket.org/validator/syntax/src/ed90a83ab0fd/relaxng https://github.com/validator/validator/tree/master/syntax/relaxng

    Это то, что вы ищете или меня путают?