AFAIK это нельзя сделать с помощью DTD.Вам нужно использовать другой язык схемы, например, XML-схема W3C позволяет использовать гибкие имена атрибутов при использовании <xs:anyAttribute>
.
Точнее: DTD объявления списка атрибутов требуют имя дляатрибут и нет общего подстановочного имени.Как ни странно, определение атрибута в списке объявлений атрибутов является необязательным, поэтому теоретически вы можете иметь объявление списка анонимных и нетипизированных атрибутов.
AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'
AttDef ::= S Name S AttType S DefaultDecl
Таким образом, спецификация допускает объявления атрибутов вроде <!ATTLIST element-name >
, но кажетсяспецификация не определяет, как такое объявление должно интерпретироваться, имеет ли оно какое-либо влияние или может разрешить любое имя атрибута с любым типом.В любом случае, я не верю, что такая структура хорошо поддерживается из-за редкости и эксцентричности этой функции.