Духовность™
Продвинутый новичок
Здравствуйте. У меня есть классы на PHP, которые генерируют HTML-код форм согласно правилам вот этого документа - xhtml1-transitional_dtd. В классах объявлены массивы описания атрибутов элементов, которые являются отражением вышеупомянутой спецификации:
- этот PHP класс является отражением DTD элемента input:
Т.е. это просто условные обозначения, которые изначально ввели в спецификацию HTML4.
Теперь, когда HTML5 не за горами, я хотел обновить свои классы до последней версии разметки. Но обнаружил, что в спецификации HTML5 идёт совершенно иной формат описания элементов. Вот: How to read this specification.
Ну и для примера: The input element
Правильно ли я понимаю, что описания DTD HTML5 в стиле SGML не будет, ибо спецификация переписана кардинально и с новыми обозначениями и разработчики отказались от SGML-наследия? Если это так, то должен же существовать в будущем какой-то аналог DTD - формат для чтения HTML5 программой, оперирующих с HTML5!? Как быть с этим? Не руками же составлять аналог DTD...
Код:
class Html_ElementInput extends Html_Element
{
public function __construct($type=null)
{
parent::__construct();
$this->attrs = array
(
'type' => array('text', 'password', 'checkbox', 'radio', 'submit', 'reset', 'file', 'hidden', 'image', 'button'),
'name' => 'CDATA',
'value' => 'CDATA',
'checked' => array('checked'),
'disabled' => array('disabled'),
'readonly' => array('readonly'),
'size' => 'Number',
'maxlength' => 'Number',
// ......
Код:
<!ENTITY % InputType
"(text | password | checkbox | radio | submit | reset |
file | hidden | image | button)"
>
<!ELEMENT input EMPTY> <!-- элемент управления формы -->
<!ATTLIST input
%attrs;
type %InputType; "text"
name CDATA #ПРЕДПОЛАГАЕТСЯ
value CDATA #ПРЕДПОЛАГАЕТСЯ
checked (checked) #ПРЕДПОЛАГАЕТСЯ
disabled (disabled) #ПРЕДПОЛАГАЕТСЯ
readonly (readonly) #ПРЕДПОЛАГАЕТСЯ
size CDATA #ПРЕДПОЛАГАЕТСЯ
maxlength %Number; #ПРЕДПОЛАГАЕТСЯ
.......
>
Теперь, когда HTML5 не за горами, я хотел обновить свои классы до последней версии разметки. Но обнаружил, что в спецификации HTML5 идёт совершенно иной формат описания элементов. Вот: How to read this specification.
Ну и для примера: The input element
Правильно ли я понимаю, что описания DTD HTML5 в стиле SGML не будет, ибо спецификация переписана кардинально и с новыми обозначениями и разработчики отказались от SGML-наследия? Если это так, то должен же существовать в будущем какой-то аналог DTD - формат для чтения HTML5 программой, оперирующих с HTML5!? Как быть с этим? Не руками же составлять аналог DTD...