Объявление значения по умолчанию
Объявление значения по умолчанию – это третий и последний обязательный компонент в определении атрибута. Оно задает, является ли атрибут обязательным, и если нет, указывает, что должен предпринимать процессор в случае, когда атрибут опущен (см. рис. 5.5). Так, объявление должно обеспечить значение атрибута по умолчанию, которое будет использовать процессор в том случае, если атрибут отсутствует.
Рис. 5.5.
Объявление значения по умолчанию может иметь следующие четыре формы:
- #REQUIRED. При этой форме вы должны задать значение атрибута для каждого элемента ассоциированного типа. Например, следующее объявление указывает, что вы должны присвоить значение атрибуту Class внутри начального тега каждого элемента FILM в документе: <!ATTLIST FILM Class CDATA #REQUIRED>
- #IMPLIED. Эта форма указывает, что вы можете либо включить, либо опустить атрибут для элемента ассоциированного типа, а также, что если вы опускаете атрибут, то никакое значение по умолчанию процессору не передается. (Эта форма "подразумевает", а не "устанавливает" значение, позволяя приложению использовать свое собственное значение по умолчанию – т.е. имя.) Например, следующее объявление указывает, что присвоение значения атрибуту Class внутри элемента FILM является не обязательным, и что в документе не представлено значение Class по умолчанию: <!ATTLIST FILM Class CDATA #IMPLIED>
- AttValue, где AttValue – значение атрибута по умолчанию. При такой форме вы можете либо включить, либо опустить атрибут для элемента ассоциированного типа. Если вы опускаете атрибут, процессор использует значение по умолчанию, как если бы вы включили атрибут и задали это значение.
Задаваемое значение по умолчанию, конечно, должно соответствовать заданному типу атрибута. Например, следующее объявление присваивает значение по умолчанию "fictional" атрибуту Class:
<!ATTLIST FILM Class CDATA "fictional">
Согласно этому объявлению следующие два элемента эквивалентны:
<FILM>The Graduate</FILM> <FILM Class="fictional">The Graduate</FILM>
- #FIXED AttValue, где AttValue – значение атрибута по умолчанию. При такой форме вы можете либо включать, либо опускать атрибут для элемента ассоциированного типа. Если вы опускаете атрибут, процессор будет использовать значение, заданное по умолчанию; если вы включаете атрибут, вы должны задать значение по умолчанию. (Поскольку вы можете задать только значение по умолчанию, нет смысла включать в элемент описание атрибута, за исключением желания сделать документ более понятным для восприятия.) Например, следующее объявление присваивает фиксированное значение по умолчанию атрибуту Class: <!ATTLIST FILM Class CDATA #FIXED "documentary">
В соответствии с этим объявлением следующие два эквивалентных элемента будут корректными:
<FILM>The Making of XML</FILM> <FILM Class="documentary">The Making of XML</FILM>
в то время как следующий элемент будет некорректным:
<!-- Некорректный элемент! --> <FILM Class="instructional">The Making of XML</FILM>