2015-05-08 2 views
1

Пытаясь достичь что-то вроде этогоВ XML DTD, как атрибут может иметь два значения?

ATTLIST employee role (leader|analyst|leader,analyst) 

где я не могу изменить его в элемент; он должен быть атрибутом.

Похоже, что DTD не любит запятые в своих выражениях.

+0

Используйте пробелы вместо запятых. Вот как работает атрибут класса html. Хотя технически это просто определяется как строка, а не какая-либо структура в xhtml DTD. – slebetman

ответ

1

Атрибут в XML не может содержать элементы.

Вы действительно идете против зерна, чтобы попытаться добавить структуру к атрибутам в любом случае. Если вы должны это сделать, сохраните его просто: вы можете представлять список через пробел или значения, разделенные запятыми. Дальнейшее выполнение требует отдельного микропарсера, отличного от синтаксического анализатора XML, только для анализа значений атрибутов. Это не очень хорошая идея, и не рассчитывать на поддержку DTD за пределы того, что предоставленный NMTOKENS, IDREFS или ENTITIES

Смотрите также: XML Element vs XML Attribute

+1

Если вы использовали XML-схему для описания документа, вы можете использовать тип «list». –

0

Вы можете сделать:

<!ATTLIST employee role (leader|analyst|leader) "analyst"> 
Смежные вопросы