Насколько я понимаю, определение пользовательских пространств имен вполне допустимо XHTML
Неа. Пользовательские пространства имен прекрасно правильно оформлены в XML, но «действительный» имеет конкретное значение, заключающееся в том, что каждый используемый элемент и атрибут объявляются в схеме документа. Эта схема может быть DTD, XML-схемой или чем-то еще, но вы должны ее объявить.
Таким образом, вы можете объявить свою собственную схему для добавления пользовательских атрибутов к языку, и модуляризация XHTML делает это очень простым. Вам нужно будет добавить ссылку на DTD в виде ‹!DOCTYPE> в прологе; просто установка URI пространства имен не дает обработчику XML никаких возможностей для поиска схемы самой по себе.
Но тогда то, что вы написали, это «действительный мой язык, который немного похож на XHTML», а не «действительный XHTML». Некоторые из этих «моих языков» хорошо известны, например «XHTML+MathML+SVG», но это все же не XHTML как таковой, и если ваш клиент твердо настроен на «валидный XHTML», вы не можете использовать ни один из них.
У вас также есть потенциальные проблемы с браузером, особенно с IE, который (до IE8) делает некоторые странные вещи с вызовами DOM семейства Element.*etAttribute*. И если вы на самом деле не обслуживаете документ как XML Content-Type (который IE также не может обработать), все ваши пространства имен в любом случае фактически не используют пространства имен.
В [X]HTML5 есть предложение разрешить пользовательские пользовательские атрибуты (в первую очередь для целей сценариев) входить в атрибуты, имена которых начинаются с «data-». Но в то же время обычный метод заключается в том, чтобы скрыть значения в другом атрибуте, например, в классе:
<div class="userid-123">...</div>
а затем извлеките данные, используя подходящую обработку строк над className в сценарии.
person
bobince
schedule
24.02.2009