Xpoint
   [напомнить пароль]

Разрешить в HTML5 друге пространство имён XSD

Метки: [без меток]
2020-01-24 02:15:26 [обр] Principal AG(5/11)[досье]

Всем доброго в.с.
Снова проблема c пространствами имён при XSD валидации. В HTML5 нужно разрешить использовать элементы XForms (xmlns:xf="http://www.w3.org/2002/xforms"). C XHTML мне это удалось т.к. там было хотя бы определено собственное (беспрефиксное) пространство имён (xmlns="http://www.w3.org/1999/xhtml") и была родная XSD схема валидации XHTML 1.0. Сделал переходную схему в которой импортировал схему XForms и прописал xs:redefine в котором разрешил в тегах <head> и <body> соответственно использовать нужные мне теги xf:... С HTML5 всё сложнее. Задания xmlns="..." в заглавном теге он как известно не допускает. Вообще - какое у HTML5 родное пространство имён для меня остаётся загадкой. Кроме того не удаётся найти XSD схему валидации для HTML5. Если кто знает, подскажите, буду очень признателен.
Пытался делать:

<!DOCTYPE html>
<html xmlns:xf="http://www.w3.org/2002/xforms" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.w3.org/2002/xforms catalogue/base/xforms.xsd">

Но валидатор ругается, что элемент html не определён, что в общем-то логично, ведь схему в которой он бы определялся я не указал.
Пытался делать переходную схему типа:
файл: html5xf1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xf="http://www.w3.org/2002/xforms">
   <xs:import namespace="http://www.w3.org/2002/xforms" schemaLocation="../base/xforms.xsd"/>
</xs:schema>

и прописывать в документ её:

<!DOCTYPE html>
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="catalogue/usr/html5xf1.xsd" 
 xmlns:xf="http://www.w3.org/2002/xforms">

  
Результат тот же самый. Валидатор ругается на неопределённость элемента html. Можете ли что ни будь здесь посоветовать.
Заранее спасибо.

спустя 16 часов [обр] Jared(0/26)[досье]

Ну, насколько я понимаю, HTML5 - это не XML, он в принципе не имеет собственного неймспейса и неймспейсы не поддерживает вообще:

The DOM, the HTML syntax, and the XML syntax cannot all represent the same content. For example, namespaces cannot be represented using the HTML syntax, but they are supported in the DOM and in the XML syntax.

https://html.spec.whatwg.org/multipage/introduction.html#html-vs-xhtml

Попробуйте вариации типа (хотя это мракобесие и метод тыка, по большей части):

<!DOCTYPE html>
<html 
   xmlns="http://www.w3.org/1999/xhtml"
   ...
   ...

Или попросту используйте старый добрый XHTML.

спустя 3 дня [обр] Principal AG(5/11)[досье]
Решение конечно же нашёл, но назвать его системным и правильным сложно. Использовал именно xmlns старого доброго XHTML 1.0, а xsd схему валидации с новыми тегами и атрибутами HTML5 цап-царапнул у бесплатной версталочки XMLmind. Составил переходную xsd схемку, где поженил эту схему с официальной схемой XForms ... и задача он-лайн валидации составных документов решена. Всё работает, подсказки по доступным тегам и атрибутам формируются правильно. Хотя конечно иначе как "костылём" такое решение не назовёшь.
Powered by POEM™ Engine Copyright © 2002-2005