Опубликован: 19.05.2006 | Уровень: для всех | Доступ: платный
Дополнительный материал 8:

Приложение B: Замечания относительно Исполнения, Разработки и Дизайна

SGML: Замечания

Обрыв строки

SGML (см. "[ISO8879]" , раздел 7.6.1) определяет, что обрыв строки идущий непосредственно за начальным тегом, игнорируется, так же, как и обрыв строки непосредственно перед закрывающим тегом. Это применяется ко всем элементам HTML без исключения.

Следующие два примера идентичны:

<P>Thomas is watching TV.</P>
<P>
Thomas is watching TV.
</P>

Как и следующие два примера:

<A>My favorite Website</A>

<A>
My favorite Website
</A>

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

Данные "сценария" и "стиля" могут появляться как содержимое элемента или как значения атрибута. Следующий раздел очерчивает границы между разметкой HTML и другими данными.

Примечание. "ОТД" определяет, что данные сценария и стиля должны быть CDATA и для содержимого элемента, и для значений атрибута. Правила SGML не допускают символьных ссылок в содержимом элемента CDATA, но допускают их в значениях атрибута в CDATA. Авторы должны уделить особое внимание при вырезке и вставке данных сценариев и стиля между содержимым элемента и значениями атрибута.

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

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

Когда данные сценария или стиля являются содержимым элемента ( SCRIPT и STYLE ), данные начинаются непосредственно после начального тега элемента и заканчиваются перед первым ограничителем ETAGO (" </ "), после которого следует первый символ начального тега ([a-zA-Z]). Обратите внимание, что это может не быть конечный тег данного элемента. Авторы, таким образом должны избегать использования " </ " в теле содержимого. Escape-механизмы специфичны для каждого языка скриптов или стилей.

НЕВЕРНОЕ ИСПОЛЬЗОВАНИЕ:

Данные скрипта некорректно используют последовательность " </ " (как часть " </EM> ") перед конечным тегом SCRIPT:

<SCRIPT type="text/javascript">
  document.write ("<EM>Это не будет работать</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>Это будет работать<\/EM>"
</SCRIPT>

В VBScript проблема может быть решена при помощи функции Chr():

"<EM>Это будет работать<" & Chr(47) & "EM>"
Значения атрибутов

Если данные сценария или стиля являются значением атрибута (атрибуты style или внутренние события), авторы должны избегать появления ограничивающих одинарных или двойных кавычек внутри значений в соответствии с соглашением по языку стиля или сценария. Авторы должны также избегать применения " & ", если " & " не является началом ссылки-мнемоники.

  • ' " ' должно быть записано "&quot;" или "&#34;"
  • ' & ' должно быть записано "&amp;" или "&#38;"

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

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

Возможности SGML с ограниченной поддержкой

Системы SGML, соответствующие "[ISO8879]" , должны распознавать ряд возможностей, которые не поддерживаются широко в настоящее время Пользовательскими Агентами HTML. Мы рекомендуем авторам избегать использования всех этих возможностей.

Булевы атрибуты

Авторы должны учитывать, что многие ПА распознают только минимизированные формы булевых атрибутов, а не полные формы.

Например, автор может определить:

<OPTION selected>

вместо

<OPTION selected="selected">
Ирина Кириллова
Ирина Кириллова

Нажимаю на ссылку на дополнительный материал и дополнение к информации-меня возвращает на первую страницу лекции. Подскажите, что делать? Или дополнительный материал платный?

Евгений Летенков
Евгений Летенков
Россия, Москва, РУДН, 2005
Иван Бокарёв
Иван Бокарёв
Австрия