Инициализация объекта: элемент PARAM
<!ELEMENT PARAM - O EMPTY -- именованное значение свойства --> <!ATTLIST PARAM id ID #ПРЕДПОЛАГАЕТСЯ -- уникальный id документа -- name CDATA #НЕОБХОДИМ -- имя свойства -- value CDATA #ПРЕДПОЛАГАЕТСЯ -- значение свойства -- valuetype (DATA|REF|OBJECT) DATA -- как интерпретировать значение -- type %ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого для значения, если valuetype=ref -- > Начальный тег: необходим, Конечный тег: запрещён
Определения атрибутов
name = cdata
Определяет имя параметра этапа выполнения, принимаемого вставленным объектом. Является ли имя свойства чувствительным к регистру, зависит от конкретной реализации объекта.
value = cdata
Определяет значение параметра этапа выполнения, специфицированного в name. Значение свойства не важно для HTML; эти значения определяются объектом при запросе.
valuetype = data|ref|object [CI]
Специфицирует тип атрибута value. Возможные значения:
- data: Значение по умолчанию. Означает, что определённое в value значение будет вычислено и передано в реализацию объекта как строка.
- ref: Значением value является URI, указывающий на ресурс, где хранятся значения этапа выполнения. Это позволяет поддерживать утилиты идентификации URI, заданного в качестве параметра. URI должен быть передан объекту как есть, т.е. без обработки.
- object: Значением value является идентификатор, ссылающийся на объявление OBJECT в этом же документе. Идентификатор должен быть значением атрибута id, установленного для объявленного элемента OBJECT.
type = content-type [CI]
Этот атрибут определяет тип содержимого ресурса, на который указывает атрибут value, только в том случае, когда valuetype установлен в "ref". Этот атрибут, таким образом, устанавливает для ПА тип значений, которые будут найдены по URI, указанному в value.
Атрибут, определённый в другом месте
- id (идентификатор документа)
Элементы PARAM определяют набор значений, которые могут потребоваться объекту на этапе выполнения. Элементы PARAM могут появляться в содержимом элементов OBJECT или APPLET в любом количестве, в любом порядке, но должны размещаться в начале содержимого элементов OBJECT или APPLET.
Синтаксис имён и значений должен быть понятен в данной реализации объекта. Данный документ не определяет ни то, как ПА должны запрашивать пары имя/значение, ни то, как ПА должны интерпретировать имена параметров, которые появляются дважды.
Мы возвращаемся к примеру с "часами", чтобы проиллюстрировать использование PARAM:
предположим, что аплет может принять два параметра этапа выполнения, определяющих его начальные ширину и высоту. Мы можем установить начальные размеры 40x40 пикселов с помощью двух элементов PARAM.
<P><OBJECT classid="http://www.miamachina.it/analogclock.py"> <PARAM name="height" value="40" valuetype="data"> <PARAM name="width" value="40" valuetype="data"> This user agent cannot render Python applications. </OBJECT>
В следующем примере, данные этапа выполнения для параметра "Init_values" определены как внешний ресурс (файл GIF). Значение атрибута valuetype, таким образом, установлено в "ref", а value - это URI, указывающий на ресурс.
<P><OBJECT classid="http://www.gifstuff.com/gifappli" standby="Loading Elvis..."> <PARAM name="Init_values" value="./images/elvis.gif"> valuetype="ref"> </OBJECT>
Обратите внимание, что мы установили также атрибут standby для того, чтобы ПА мог отобразить сообщение, пока загружается механизм представления.
Если элемент OBJECT отображён, ПА должен искать содержимое только тех элементов PARAM, которые являются прямыми потомками и "снабдить" ими OBJECT.
Так, в следующем примере, если "obj1" отображён, "param1" применяется к "obj1" (а не к "obj2"). Если "obj1" не отображён, а "obj2" отображён, "param1" игнорируется, а "param2" применяется к "obj2". Если ни один OBJECT не отображён, ни один PARAM не применяется.
<P> <OBJECT id="obj1"> <PARAM name="param1"> <OBJECT id="obj2"> <PARAM name="param2"> </OBJECT> </OBJECT>