Языки гипертекстовой разметки SGML. XML. HTML.
SGML (англ. Standard Generalized Markup Language - стандартный обобщённый язык разметки; произносится [эс-джи-эм-эл]) - метаязык, на котором можно определять язык разметки для документов. SGML - наследник разработанного в 1969 году в IBM языка GML (Generalized Markup Language), который не стоит путать с Geography Markup Language, разрабатываемым Open GIS Consortium.
Изначально SGML был разработан для совместного использования машинно-читаемых документов в больших правительственных и аэрокосмических проектах. Он широко использовался в печатной и издательской сфере, но его сложность затруднила его широкое распространение для повседневного использования.
Основные части документа SGML:
SGML-декларация - определяет, какие символы и ограничители могут появляться в приложении;
Document Type Definition - определяет синтаксис конструкций разметки. DTD может включать дополнительные определения, такие, как символьные ссылки-мнемоники;
Спецификация семантики, относится к разметке - также даёт ограничения синтаксиса, которые не могут быть выражены внутри DTD;
Содержимое SGML-документа - по крайней мере, должен быть корневой элемент.
SGML предоставляет множество вариантов синтаксической разметки для использования различными приложениями. Изменяя SGML-декларацию, можно даже отказаться от использования угловых скобок, хотя этот синтаксис считается стандартным, так называемым concrete reference syntax.
Пример синтаксиса SGML:
typically something like
SGML стандартизован ISO: «ISO 8879:1986 Information processing-Text and office systems-Standard Generalized Markup Language (SGML)»
HTML и XML произошли от SGML. HTML - это приложение SGML, а XML - это подмножество SGML, разработанное для упрощения процесса машинного разбора документа. Другими приложениями SGML являются SGML Docbook (документирование) и «Z Format» (типография и документирование).
XML - Extensible Markup Language, то есть Расширяемый Язык Разметки, возник в результате развития языка HTML (HyperText Markup Language, языка разметки гипертекста). Однако было бы грубой ошибкой воспринимать его лишь как некую усовершенствованную версию языка HTML. По сути, язык XML представляет собой новое поколение языков разметки. Здесь следует иметь в виду 3 момента, принципиально отличающих XML от HTML и его предшественников (GML - Generalized Markup Language, SGML - Standard General Markup Language):
XML, в отличие от HTML, НЕ ИМЕЕТ ПРЕДОПРЕДЕЛЕННЫХ ТЭГОВ - точнее, каждый разработчик может создавать СВОИ СОБСТВЕННЫЕ XML-тэги - столько, сколько нужно. Количество таких тэгов практически неограничено. Таким образом, XML является метаязыком, позволяющим создавать другие языки разметки, такие как, например, HTML.
По мере развития языка HTML количество тэгов быстро увеличивалось. В конце концов их число достигло "критического значения" - разработчикам web-документов стало трудно запоминать все новые и новые тэги, но еще в худшем положении оказались разработчики браузеров - им приходится создавать все новые версии браузеров, которые "понимали бы" новые тэги. Более "умные" браузеры становятся и большими по объему, предъявляют все возрастающие требования к компьютерам, на которых они используются. Дело усугубляется тем, что в последнее время все большую популярность приобретают карманные устройства (в частности, они все шире используются в электронной коммерции), с ограниченным объемом памяти и "слабенькими" экранами, а потому, браузеры, используемые на них, имеют лишь очень ограниченные возможности. Язык XML, не имеющий определенной заранее системы тэгов, позволяет решить эту проблему. "Платой" за универсальность является большая строгость оформления web-документов. Правила оформления XML-документов просты:
недопустимы незакрытые контейнеры тэгов (но можно объединять открывающий и закрывающий тэги в одном, например:
)
"вложенные" контейнеры не могут "перекрываться"
строчные и прописные буквы воспринимаются как разные символы
в качестве названий тэгов нельзя использовать ключевые слова
в названиях тэгов нельзя использовать пробелы, знаки пунктуации, круглые, квадратные и фигурные скобки
знак подчеркивания (_) и цифры могут встречаться в названиях тэгов, но цифра не может быть перым символом названия тэга
(При необходимости использовать несколько слов в качестве названия тэга их следует писать слитно, начиная каждое слово с большой буквы.)
Документы, отвечающие этим правилам, называются well-formed documents.
XML служит для ОПИСАНИЯ СТРУКТУРЫ ДАННЫХ, главным образом, ИЕРАРХИЧЕСКИХ СТРУКТУР.
Одной из основных тенденций развития web-технологий является РАЗДЕЛЕНИЕ ДАННЫХ, СТРУКТУРЫ ДОКУМЕНТА И ЕГО СТИЛЕВОГО ОФОРМЛЕНИЯ. Как известно, одним из способов обособления данных от структуры документа является динамическое связывание СУБД с web-документами через интерфейс ODBC (Open DataBase Connectivity). Обособление стилей достигается за счет использования каскадных таблиц стилей. XML позволяет описывать нереляционные базы данных. Поскольку тэги могут создаваться разработчиком, их названия обычно характеризуют смысл данных.
XML, как средство описания структуры данных, обеспечивает ОБМЕН ДАННЫМИ между различными приложениями, выступая, таким образом, в качестве своеобразного "клея".
Значение этой "связующей" функции XML трудно переоценить. Благодаря возможности обмена данными между различными приложениями web-технологии "выходят" на качественно новый уровень.
Hypertext Markup Language (HTML) это простая система для создания гипертекстовых документов, которые переносимы с одной платформы на другую. В сущности, HTML документы это SGML документы с общей семантикой, которая подходит для представления информации в большом количестве приложений. HTML может использоваться для представления:
· Гипертекстовых новостей, почты, документации и гипермедиа
· Меню опций
· Результатов запросов к базам данных
· Простых документов с встроенными графическими образами
· А также, для гипертекстового просмотра существующих массивов информации
Проект World Wide Web (WWW) объединяет разбросанную по миру информацию. Для этого WWW использует Internet HyperText Transfer Protocol (HTTP) - Протокол Передачи Гипертекста, который позволяет ввести соглашения на способы представления данных при взаимодействии клиента и сервера.
Данные передаются в теле сообщения в соответствии с MIME стандартом. HTML это одно из представлений информации в WWW. Предполагается, что HTML соответствует одному из типов MIME, а именно text/html. Дополнительно, HTML это разработка, соответствующая Международному Стандарту ISO 8879 - Standard Generalized Markup Language (SGML), который является системой для определения структурированных типов документов.
HTML документ
HTML документ подобен текстовому файлу, за исключением того, что некоторые символы (строки) являются управляющими. Эти символы называются тэгами и определяют структуру документа.
HTML документы должны начинаться с тэга , стоящего в начале файла, и заканчиваться тэгом . Между этими тэгами HTML документ организован как ЗАГОЛОВОК (HEAD) и ТЕЛО (BODY) документа, подобно почтовому сообщению. Внутри HEAD части указывается ЗАГОЛОВОК (TITLE) и другая информация о документе в целом. Внутри BODY части с помощью HTML тэгов текст структурируется в параграфы, списки и пр. с возможностью выделения стилем отдельных слов и целых предложений и создания ссылок на части этого и внешние документы. Технически, открывающий и закрывающий тэги для HTML, HEAD и BODY элементов можно не использовать. Тем не менее, делать это не рекомендуется, так как HEAD/BODY структура позволяет приложениям определять особенности документов (например заголовок), не просматривая весь документ целиком.
Структура HTML элементов
В HTML документе тэги определяют начало и конец заголовков, параграфов, списков, подсветку символов и ссылки. Большинство HTML элементов в документе определены как открывающий тэг, который указывает имя элемента и атрибуты, затем указывается тело элемента, за которым следует закрывающий тэг. Символами-ограничителями для открывающего тэга являются "<" и ">"; для закрывающего - "" и ">". Например:
Это Заголовок
Это параграф.
Некоторые элементы появляются только как открывающий тэг. Например, для создания линии- разделителя используется тэг
. Кроме того, закрывающие тэги для некоторых элементов (P, LI, DT, DD) могут быть опущены. Тело элемента это последовательность символов и вложенных элементов. Некоторые элементы, такие как элементы, определяющие ссылки, не могут быть вложенными друг в друга. При этом элементы, определяющие ссылки и выделения символов могут быть помещены внутрь других конструкций.
Отображение документа
Конкретный вид отображения документа может изменяться от клиента к клиенту. HTML тэги определяют только общий стиль отображения документа. Что означает, например, что HTML рассматривает заголовок первого уровня только как заголовок первого уровня, но не определяет, что заголовок первого уровня должен отображаться шрифтом Times размера 24 в центре верхней части страницы. Преимущество такого подхода заключается в том, что если пользователь решит изменить заголовок первого уровня на шрифт Helvetica размера 20 выравненный по левому краю, все, что ему надо сделать, это изменить определение заголовка первого уровня в его WWW просмоторщике. Таким образом, конкретное представление документа на экране монитора определяет пользователь конкретного клиента.
Основная сила HTML заключается в его способности связывать области текста (а также картинок) с другими документами. Просмотрщики выделяют эти области (обычно цветом и/или подчеркиванием)для того, чтобы указать, что это гипертекстовые ссылки. Anchor это часть текста, которая отмечает начало и/или конец гипертекстовой ссылки. Текст, находящийся между открывающим и закрывающим тэгом является стартовой точкой или местом назначения гипертекстовой ссылки. Атрибуты данного тэга следующие: HREF
Необязательный. Если присутствует атрибут HREF, Anchor это чувствительный текст: стартовая точка для ссылки. Если читатель выбирает этот текст, ему будет представлен другой документ, чей сетевой адрес был указан в значении атрибута HREF. Формат сетевого адреса аналогичен URL. Это позволяет структуре HREF="#identifier" ссылаться на другой anchor в текущем документе, или в удаленном документе при указании его адреса перед знаком "#".
Необязательный. Если присутствует, позволяет использовать anchor как место назначения ссылки. Значением атрибута является идентификатор anchor"а. В качестве значения идентификатора может быть использована обычная текстовая строка, за исключением того, что внутри одного документа все подобные идентификаторы должны быть уникальны.
Необязательные. Позволяют указывать взаимосвязи между документом из которого была сделана ссылка, и документом, на который была сделана ссылка.
Для создания электронных обучающих программ чаще всего используется язык гипертекстовой разметки документов (HTML).
Данный выбор обусловлен тем, что наряду с простотой создания данного вида документов, язык гипертекстовой разметки обладает колоссальными возможностями, такими, как вывод форматированного текста, использование графических объектов практически всех известных форматов, использование фонового рисунка, вставка таких объектов, как фоновый звук, видео и т.д.
Кроме этого, HTML позволяет легко организовывать ссылки на другие объекты или фрагменты текста самого документа .
Большим преимуществом HTML является то, что большинство современных инструментальных средств (такие, как, текстовые и графические редакторы, языки визуального программирования, Internet Explorer...) поддерживают работу и сохранение документов в HTML формате.
Поэтому зачастую именно HTML используется для создания подобных программных продуктов. Однако создание различного вида демонстрационных примеров, процедур тестирования и опроса, на мой взгляд, делается все же проще с помощью языков визуального программирования.
Поэтому в настоящей дипломной работе рассматриваются вопросы интеграции различных инструментальных средств, для создания обучающих, тестирующих программ и электронных учебников.
Тем не менее, использование HTML документов во многом облегчает написание теоретической части программы и делает ее более живой. Давайте рассмотрим несколько вопросов, связанных с созданием HTML документов. Можно работать на Web без знания языка HTML, так как тексты HTML могут создаваться различными специальными редакторами и конвертерами.
Однако лучше писать непосредственно на HTML или, по крайней мере, изредка контролировать и модифицировать код HTML. Писать непосредственно на HTML нетрудно. Возможно, это даже легче, чем изучать HTML-редактор или конвертер, которые часто ограничены в своих возможностях, содержат ошибки или производят плохой HTML код, который не работает на различных платформах .
Первая версия HTML была разработана в начале 90-х годов Тимом Бенерс-Ли для популярного в прошлом броузера Mosaic. Но в те времена ни для броузера, ни для самого языка еще не нашлось достойного применения. В 1993 году появился HTML+, и эта версия также осталась практически незамеченной. Начало широкому использованию гипертекста дала версия 2.0, которая появилась в июне 1994 года.
Это был момент начала роста популярности WWW по всему миру. Элементы, включенные в версию 2, в большинстве своем используются и по сей день .
В версии 3.0 HTML, которая появилась год спустя, была реализована возможность прорисовки математических символов (знаков интеграла, бесконечности, дроби, скобок и т. д.) при помощи элементов языка. Под эту версию разрабатывались и броузеры (Arena). Но этот проект оказался тупиковым и не получил дальнейшего распространения .
В 1996 году появился HTML версии 3.2. Это было новаторское решение, достаточно упомянуть, что в спецификацию языка были введены фреймы, которые стали теперь весьма популярными у разработчиков Web-страниц.
Даже сейчас на основе этой спецификации можно реализовывать очень неплохие дизайнерские решения. Практически все современные броузеры стопроцентно поддерживают версию 3.2, поэтому у авторов не возникают сомнения по поводу работоспособности заявленных элементов.
Наряду с официальными спецификациями языка, которые разрабатывались организацией W3C (W3 Консорциум), компании-производители броузеров создавали собственные элементы (расширения).
Впоследствии некоторые из этих элементов, после получения всеобщего признания, включались в спецификацию следующей версии языка. Интересно, например, что новаторское решение - фреймы, -- которое так полюбилось многим разработчикам, не было включено спецификацию 3.2.
Но броузеры поддерживали фреймы, и многие книги, посвященные HTML, содержали описания фреймов без упоминания о том, что это нестандартные элементы. И это было правильно, потому что фреймы стали стандарте де-факто . В версию языка 4 они уже были включены на полном основании.
И наоборот, элементы APPLET и SCRIPT, необходимые для расширения HTML другbми программными кодами, в версии 3.2 не сыграли той роли, которую были призваны сыграть.
Это объяснялось тем, что броузеры различных версий по-разному интерпретировали программы на языках Java, JavaScript, Visual Basic VBScript. В результате не удавалось получить достаточно надежно работающий код, и данные языки использовались любителями HTML в основном для экспериментов.
Официальная спецификация HTML 4 (Dynamic HTML) появилась в 1997 году. В это время уже было очевидно, что дальнейшее развитие гипертекста будет осуществляться за счет скрипт-программирования. Это оказалось намного более эффективным, чем вводить в язык все новые элементы.
Появившиеся в то время броузеры (Netscape Navigator 4, Microsoft Internet Explorer 4 и др.) уже достаточно надежно интерпретировали программный код (был достигнут определенный уровень стандартизации). Однако проблемы у разработчиков еще остались. В качестве примера можно отметить, что многие скрипты начинаются с определения версии броузера, чтобы потом использовать тот или иной фрагмент кода.
Очевидно, что на программиста ложится обязанность тестирования страниц на всех популярных в настоящее время броузерах. Кроме того, актуальной остается проблема использования старых или не очень популярных программ. Лидерами "броузеростроения" по праву считаются компании Microsoft и Netscape, но ведь существуют еще и другие фирмы .
В результате использование всех возможностей Dynamic HTML стало yдeлoм программистов достаточно крупных организаций, где есть условия для разработки сложных программ и всестороннего их тестирования. Создателям личных Web-страниц подчас приходится искать компромисс между надежностью и новаторством, чтобы получить достаточно грамотный HTML-код.
Анатомия Web-страницы
Ниже показана заготовка типичного Web-документа. На этом примере мы рассмотрим структуру HTML-страниц.
Пример (шаблон) Web-страницы
<Т1Т1Е>Структура Web-страницы
Если рассмотреть исходные тексты различных Web-страниц, то можно легко увидеть схожесть их структур. Это объясняется тем, что документы создаются по определенным правилам.
В основу синтаксиса языка HTML лег стандарт ISO 8879:1986 "Information processing. Text and office systems. Standard Generalized Markup Language (SGML)". Правда, существует большое различие между стандартом официальным и стандартом фактическим. HTML постоянно развивается, дополняется новыми элементами, и изучать его надо не по официальным первоисточникам, а на практике, обращаясь к последним разработкам ведущих фирм и специалистов .
Чтобы понять структуру Web-страницы, необходимо рассмотреть вес элементы, входящие в приведенный выше листинг. При рассмотрении элементов языка будем приводить оба тега: начальный и конечный.
Например: . Этим можно подчеркнуть, что в большинстве случаев разработчик должен использовать два тега для каждого элемента. Число случаев, когда допустим только начальный тег (часть элементов не имеют конечного вообще), невелико, и они специально оговариваются . Для имен тегов можно использовать как прописные, так и строчные буквы латинского алфавита.
Некоторые пользователи записывают начальные теги прописными буквами, а конечные теги -- строчными. Это помогает разобраться в исходном тексте Web-страницы.
Синтаксис HTML.
Обозначение документа на языке HTML. Выше было упомянуто о том, что одним из принципов языка является многоуровневое вложение элементов. Данный элемент является самым внешним, так как между его начальным и конечным тегам должна находиться вся Web-страница.
В принципе, этот элемент можно рассматривать как формальность. Он имеет атрибуты version, lang и d i r , которыми в данном случае редко кто пользуется, и допускает вложение элементов HEAD, BODY, FRAMESET и других, определяющих общую структуру Web-страницы. Естественно что конечным тегом