Примеры сетевых топологий

         

Спецификация не HTML-данных


Текст скрипта и стилевые данные могут появиться в содержимом элемента или в качестве значения атрибута.

Замечание. DTD определяет данные скриптов и стилей как Cdata для содержимого элементов и значения атрибутов. Правила SGML не позволяют использование символьных объектов в Cdata элементах, но допускают их в Cdata значений атрибутов. Разработчикам следует обращать особое внимание на случаи обмена данными скриптов и стилей методом вырезания и вставления между элементами и значениями атрибутов.

Эта асимметрия означает также, что при кросскодировании (transcoding) из богатого кодового набора символов в более бедный, кодировщик не может просто заменить неконвертируемые символы в скрипте или стилевых данных соответствующим цифровыми кодами. Он должен произвести разборку (анализ) HTML-документа и узнать все о каждом скрипте и стилевом языке для того, чтобы правильно обработать соответствующие данные.

Содержимое элемента

Когда скрипт или стилевые данные являются содержимым элемента (script и style), данные начинаются немедленно после начальной метки элемента и кончаются на первом etago ("</") разграничителе, за которым следует имя символа ([a-za-z]), это может быть и не конечной меткой элемента. Разработчики должны избегать использования строк "</" в теле элемента.

Нелегальный пример:

Следующий текст скрипта содержит недопустимую последовательность "</" (в качестве части "</em>") перед конечной меткой script:

<script type="text/javascript">
document.write ("<em>this won't work</em>")
</script>

В javascript, этот код может быть представлен корректно, путем сокрытия разграничителя Etago перед начальным символом имени SGML:

<script type="text/javascript">
document.write ("<em>this will work<\/em>")
</script>

В tcl, можно выполнить это следующим образом:

<script type="text/tcl">
document write "<em>this will work<\/em>"
</script>

В vbscript эта проблема может быть обойдена с помощью функции chr():

"<em>this will work<" & chr(47) & "em>"

Значения атрибутов

Когда скриптовые или стилевые данные представляют собой значение атрибута, разработчики должны избегать случаев использования одиночных или двойных кавычек в значениях атрибута в соответствии с рекомендациями языка скрипта или описания стиля. Разработчики должны также избегать включения "&", если "&" не означает начало символьного объекта.

* '"' should be written as "&quot;" or """
* '&' should be written as "&amp;" or "&"

Таким образом, например, можно написать:

<input name="num" value="0"
onchange="if (compare(this.value, &quot;help&quot;)) {gethelp()}">



Содержание раздела