Языки разметки: SGML, HTML, XML. Их связь между собой.

Язык HTML первоначально был всего лишь одним из SGML-приложений. Он описывал правила, по которым должна быть подготовлена информация для World Wide Web. Таким образом, язык HTML - это набор предписаний SGML, сформулированных в виде определения типа документа (DTD), объясняющих, что именно обозначают тэги и элементы. Схема DTD для языка HTML хранится в веб-браузере.

Таким образом, с одной стороны, язык HTML является очень удобным средством разметки документов для использования в веб, а с другой - документ, размеченный в HTML, имеет мало информации о своем содержании. Если тот или иной документ несет достаточно полную информацию о своем содержании, появляется возможность сравнительно легко провести автоматическую обобщенную обработку и поиск в файле, хранящем документ. Язык SGML позволяет сохранять информацию о содержании документа, однако вследствие особой сложности он никогда не использовался так широко, как HTML.

Группа экспертов по языку SGML, возглавляемая Джоном Боузэком (Jon Bosak) из компании Sun Microsystems, приступила к работе по созданию подмножества языка SGML, которое могло бы быть принято Web-сообществом. Решено было удалить многие несущественные возможности SGML. Перестроенный таким образом язык назвали XML. Упрощенный вариант оказался значительно более доступным, чем оригинал, его спецификации занимали всего 26 страниц по сравнению с более чем 500 страницами спецификаций SGML.

Преимущества языка XML.

  • Поддерживает Юникод.
  • Не зависит от платформы;

Веб-сервисы

Веб-сервис (web service) - программная система, имеющая идентификатор URI, и общедоступные интерфейсы которой определены на языке XML. Описание этой программной системы может быть найдено другими приложениями, которые могут взаимодействовать с ней в соответствии с этим описанием посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

Сервис-ориентированная архитектура (SOA, service-oriented architecture) - модульный подход к разработке программного обеспечения, основанный на использовании сервисов со стандартизированными интерфейсами.

В основе SOA лежат принципы многократного использования функциональных элементов ИТ, унификации типовых операционных процессов. Компоненты программы могут быть распределены по разным узлам сети, и предлагаются как независимые и слабо связанные, заменяемые сервисы-приложения.

Интерфейс компонентов SОА-программы осуществляет инкапсуляцию деталей реализации конкретного компонента (ОС, языка программирования и т. п).

Веб-сервисы.NET имеют следующие достоинства:

  • Открытость стандартов . В веб-сервисах отсутствуют какие-либо скрытые или недоступные элементы. Каждый аспект технологии, от способа поиска веб-сервисы до ее описания и организации связи с ней, определен общедоступными стандартами.
  • Межплатформенность . Язык программирования, который позволяет создавать XML-документы и отправлять информацию посредством HTTP, позволяет взаимодействовать с любым веб-сервисом. Можно получать веб-услугу из системы, отличной от.NET.
  • Простота .
  • Поддержка сообщений на понятном человеку языке . Переход от двоичных стандартов, применяемых в СОМ и CORBA, к XML-тексту позволил упростить исправление ошибок и обеспечил возможность осуществлять взаимодействие с веб-сервисами по обычным каналам HTTP.

Реализация веб-сервисов.NET осуществляется так же просто, как и активизация удаленной веб-сервисы или вызов метода локального класса. Это достигается за счет применения инструментов, предоставляемых системой.NET Framework, которые позволяют создать полноценный веб-сервис, без необходимости изучения деталей работы таких стандартов, как SOAP, WSDL и UDDI. При этом выполняются следующие действия:

  • Веб-сервис разрабатывается как.NET-класс с атрибутами, которые идентифицируют его как веб-сервис с некоторыми функциями.
  • В среде.NET автоматически создается документ WSDL, где описывается, как клиент должен взаимодействовать с веб-сервисом.
  • Потребитель находит созданный веб-сервис и может добавить соответствующую веб-ссылку в проект Visual Studio .NET.
  • В среде.NET осуществляется автоматическая проверка документа WSDL и генерируется прокси-класс, который позволяет потребителю взаимодействовать с веб-сервисом.
  • Потребитель вызывает один из методов вашего класса веб-сервиса. С его точки зрения этот вызов внешне ничем не отличается от вызова метода любого другого класса, хотя взаимодействие происходит на самом деле с прокси-классом, а не с веб-сервисом.
  • Прокси-класс преобразует, переданные параметры в сообщение SOAP и отправляет его веб-сервису.
  • Затем прокси-класс получает SOAP-ответ, преобразует его в соответствующий тип данных и возвращает его как обычный тип данных.NET.
  • Потребитель использует полученные данные.
  • При работе веб-сервисов.NET используется технология ASP .NET, являющаяся частью системы.NET Framework. Она также требует поддержки со стороны сервера Microsoft IIS.

    Главными недостатками веб-сервисов являются меньшая производительность и больший размер сетевого трафика по сравнению с такими технологиями как RMI, CORBA, DCOM за счет использования текстовых XML-сообщений.

    Стандарты для Web-сервисов.

    Спецификация WSDL

    Каждый веб-сервис предоставляет документ WSDL (Web Service Description Language - язык описания веб-сервиса), в котором описывается все, что клиенту необходимо для работы с этим сервисом. WSDL-документ предоставляет простой и последовательный способ задания разработчиком синтаксиса вызова любого веб-метода. Более того, этот документ позволяет использовать инструменты автоматического генерирования прокси-классов, подобные включенным в среды Visual Studio .NET и.NET Framework. Благодаря указанным средствам использование веб-сервиса является таким же простым, как и применение локального класса.

    WSDL-документ имеет основанный на XML формат, в соответствии с которым информация подразделяется на пять групп. Первые три группы представляют собой абстрактные определения, не зависящие от особенностей платформы, сети или языка, а оставшиеся две группы включают конкретные описания.

    Протокол SOAP

    Связь между веб-сервисами и их клиентами осуществляется посредством сообщений в формате XML.

    SOAP (Simple Object Access Protocol - простой протокол доступа к объектам) представляет собой протокол сообщений для выбора веб-сервисов.

    Основная идея стандарта SOAP заключается в том, что сообщения должны быть закодированы в стандартизированном XML-формате.

    Кроме сообщений SOAP, для обмена данными с сервисами.NET можно использовать методы GET и POST протокола HTTP.

    Преимущества применения формата SOAP перед другими форматами для передачи данных:

    • Кодировать в XML структуры данных и наборы DataSet с использованием SOAP так же легко, как и данные простых скалярных типов.
    • При использовании SOAP-сообщений предоставляются дополнительные инструменты, позволяющие легко добавлять, например, функции обеспечения безопасности или трассировки.
    • Имеются наборы инструментов SOAP для различных языков программирования (и даже для предыдущих версий Microsoft C++ и Visual Basic). Иначе, для того чтобы обеспечить связь с сервисом посредством методов GET и POST протокола HTTP, придется, очевидно, самостоятельно конструировать строку запроса, а затем проводить синтаксический анализ ответа.

    Стандарт DISCO

    Стандарт DISCO предоставляет простейший способ получения доступа к файлам манифестов, позволяющий группировать ссылки на веб-сервисы.

    DISCO-файл может включать файлы различных веб-серверов и поддерживает "динамический поиск" - автоматический поиск каталога файлов веб-сервисов на сервере.

    Файлы манифеста полезны тем, что объединяют множество веб-сервисов в единственном списке, однако они не позволяют клиентам отыскивать веб-сервисы определенного типа без указания наименования компании-разработчика.

    Спецификация UDDI

    Спецификация UDDI (Universal Description, Discovery, and Integration - универсальное описание, поиск и интеграция) позволяет избежать указанных проблем посредством использования специального хранилища (репозитория), где предприятия и организации могут размещать данные о предоставляемых ими сервисах. Инициаторами создания технологии UDDI стали более 100 компаний (полный список можно найти по адресу http://www.uddi.org/community.html), включая Sun и Microsoft. Объединив свои усилия, эти компании разработали проект спецификации UDDI, которая по истечении 18 месяцев была стандартизирована.

    Информация в этом репозитории должна обновляться вручную. С этой целью некоторые "узловые операторы" хранят идентичные копии репозитория UDDI. Эти компании обеспечивают хранение указанного репозитория и бесплатный доступ к нему для популяризации веб-серисов. Кроме того, Майкрософт включила версию UDDI в программное обеспечение сервера Windows .NET для использования в корпоративных сетях интранета.

    В хранилище UDDI содержатся сведения о предприятиях, предоставляющих веб-сервисы, о типе каждого сервиса и связях с информацией и спецификациями, относящимися к этим сервисам. Интерфейс UDDI сам по себе представляет собой веб-сервис. Для регистрации или поиска службы следует отправить SOAP-сообщение.

    WEB - интеграция.

    Задача веб-интеграции заключается в том, чтобы объединить разнородные веб-приложения и системы в единую среду на базе сети Веб.

    Практикуются следующие подходы к веб-интеграции:

    · Интеграция на уровне представления. Данный уровень позволяет пользователю взаимодействовать с приложением. Интеграция на уровне представления дает доступ к пользовательскому интерфейсу удаленных приложений .

    · Интеграция на уровне функциональности. Данная интеграция подразумевает обеспечение прямого доступа к бизнес-логике приложений. Это достигается непосредственным взаимодействием приложений с API (программному интерфейсу приложений) или же взаимодействием посредством веб-сервисов .

    · Интеграция на уровне данных. В данном случае предполагается доступ к одной или нескольким базам данных , используемых удаленным приложением.

    · Комплексная интеграция. Коммерческие решения по веб-интеграции, как правило, включают все три типа интеграции

    Использование веб-интеграции выгодно по многим причинам:

    · Веб-интеграция позволяет развертывать информационные системы на базе сторонних приложений без необходимости разбираться в их родительских системах, программных средах и архитектурах баз данных.

    · SOA и веб-сервисы используют программный язык и платформо-независимые интерфейсы между приложениями корпоративной инфраструктуры ИТ. Это дает очевидные преимущества в поддержке, управляемости, развертывании информационных сетей.

    · Веб-интеграция позволяет конструировать комплексную функциональность, комбинируя разнородные компоненты посредством протоколов веб-сервисов.

    · Веб-интеграция позволяет использовать веб-сервисы разработчиков.

    · Веб-интеграция позволяет развивать программные интерфейсы приложений через протоколы веб-сервисов без программирования.

    Для веб-интеграции обычно используется коммерч ПО или популярные тех-ии, такие как PHP/Python/Perl , XForms , SOAP и т.д.

    Интеграция на основе XML

    Вместо реализации взаимодействия между каждой парой систем следует всего лишь научить каждую из них "говорить" на XML языке. Иначе говоря, все сводится к разработке нескольких врапперов (wrapper - упаковщик, программное средство создания системной оболочки для стандартизации внешних обращений и изменения функциональной ориентации действующей системы), которые будут переводить со стандартного XML-языка интегрированной системы на язык, понятный каждой системе в отдельности.

    · средства разработки и стандартные библиотеки для XML существуют практически на всех платформах и для большинства популярных языков программирования;

    · методы работы с XML достаточно стандартны для того, чтобы в разных системах можно было пользоваться одинаковыми приемами;

    · информация, оформленная в виде XML, может обрабатываться не только машинами, но и человеком (что намного облегчает отладку).

    В принципе, интеграция по XML-схеме не отличается коренным образом от интеграции на основе любого другого общего стандарта. Вместе с тем, она имеет целый ряд весомых преимуществ:

    · XML языки не зависят от аппаратных и программных платформ, что позволяет связывать разнородные системы;

    · выразительная мощность XML достаточно велика для того, чтобы описать данные практически любой сложности;

    Интеграция на основе XML практически реализуется в рамках протоколов:

    · XML-RPC . Это протокол удаленного вызова процедур с передачей данных в формате XML через TCP-порт 80, т.е. HTTP -порт.

    · WDDX (Web Distributed Exchange). Представляет собой механизм обмена сложными структурами данных по протоколу HTTP. Протокол базируется не на структурах, а на событиях.

    · ebXML (electronic buisiness XML) – XML для электронного бизнеса. Основное назначение – предоставление открытой XML-инфраструктуры, обеспечивающей безопасное глобальное использование информации электронного бизнеса. Веб-сервисы (веб-службы).

    XML (eXtensibleMarkupLanguage) - рекомендованный W3C язык разметки. XML - текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе специализированных языков разметки. XML является упрощенным подмножеством языка SGML.

    ЯзыкXML имеет следующие достоинства :

    • Это человеко-ориентированный формат документа, он понятен как человеку, так и компьютеру.
    • Поддерживает Юникод.
    • В формате XML могут быть описаны основные структуры данных - такие как записи, списки и деревья.
    • Это самодокументируемый формат, который описывает структуру и имена полей также как и значения полей.
    • Имеет строго определенный синтаксис и требования к анализу, что позволяет ему оставаться простым, эффективным и непротиворечивым.
    • Широко используется для хранения и обработки документов;
    • Это формат, основанный на международных стандартах;
    • Иерархическая структура XML подходит для описания практически любых типов документов;
    • Представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;
    • Не зависит от платформы;
    • Является подмножеством SGML, для которого накоплен большой опыт работы и созданы специализированные приложения;

    К известным недостаткам языка можно отнести следующие:

    · Синтаксис XML избыточен.

    · Размер XML документа существенно больше бинарного представления тех же данных.

    · Размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON, YAML) и особенно в форматах данных, оптимизированных для конкретного случая использования.

    · Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.

    · Для большого количества задач не нужна вся мощь синтаксиса XML, и можно использовать значительно более простые и производительные решения.

    • Пространства имен XML сложно использовать и их сложно реализовывать в XML парсерах.
    • XML не содержит встроенной в язык поддержки типов данных. В нем нет понятий "целых чисел", "строк", "дат", "булевых значений" и т. д.
    • Иерархическая модель данных, предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно-ориентированными графами.

    По-сути, XML служит метаязыком для описания структуры других языков. Взаимосвязь между SGML, XML, HTML и некоторыми другими языками показана на следующей диаграмме:

    Важным отличием XML от HTML является то большое внимание, которое уделяется контролю за тем, насколько точно соблюдаются правила языка при разметке документов. В зависимости от этого принято выделять правильно построенные и действительные XML документы.

    Документ XML считается правильно построенным , если он соответствует всем синтаксическим правилам XML.

    Проверка действительности документа предполагает выполнение следующих действий:

    • Проверка использования только заданного набора дескрипторов.
    • Проверка полного соответствия порядка следования элементов и атрибутов содержанию документа или определенным правилам.
    • Контроль типов данных (достигается при использовании соответствующей схемы).
    • Контроль целостности данных для обеспечения оптимального обмена информацией через Веб с помощью транзакций.

    Основные синтаксические правила построения XML документов.

    • XML документ содержит один и только один корневой элемент , содержащий все остальные элементы
    • Дочерние элементы , содержащиеся в корневом элементе , должны быть правильно вложены.
    • Имена элементов подчиняются правилам:
    • Имя начинается с буквы, знака подчеркивания или двоеточия.
    • После первого символа в имени могут быть буквы, цифры, знаки переноса, подчеркивания, точка или двоеточие.
    • Имена не могут начинаться с буквосочетания XML.

    XML документ имеет следующую структуру:

    • Первая строка XML документа называется объявлением XML. Это необязательная строка, указывающая версию стандарта XML (обычно это 1.0). Также здесь может быть указана кодировка символов и внешние зависимости.

    Вследствие возникшего многообразия способов представления текстовой и тексто-графи-ческой информации, связанных с применением разнородных программных средств, технологий форматирования и верстки текста, методов кодировки и поддержки национальных языков, появилась потребность в разработке унифицированных решений.

    Такое решение содержится в стандарте ISO 8879 (SGML, Standard Generalized MarkUp Language), определяющем «обобщенный стандартный язык разметки» текста.

    Термин «разметка» носит исторический характер - имеются ввиду метки, которые обычно делает редактор в процессе подготовки текста к верстке. Технология электронной разметки текста, основанная на вставке в текст специальных меток, широко используется в современных программных средствах верстки и форматирования. Метки условно можно разделить на два класса: процедурные и описательные.

    Процедурные метки используемые, например, в программах Microsoft Word и Quark XPress чаще всего представляют собой коды форматирования, вставленные в текст документа.

    Описательные метки, известные также под названием «обобщенных» (generalized), определяют не способ появления текста на странице, а назначение текста в документе. Описательные метки отделяют структуру документа от стиля его отображения, позволяя для одного документа иметь различные способы его отображения на экране или бумаге.

    С точки зрения стандарта SGML документ рассматривается как совокупность:

    - данных о структуре документа (взаимосвязи глав, разделов, параграфов, ссылки, прав доступа к элементам документа);

    - данных о стиле оформления документа (используемых шрифтах, интервалах, размерах полей, способе нумерации и т.д.).

    Стандарт ISO 8879 SGML определяет способ описания структуры документа, а также формат вставляемых в документ описательных меток, но не определяет формат данных о стиле оформления документа. Структура документа задается при помощи «определения типа документа» (в терминах стандарта - Document Type Definition или сокращенно DTD) , описывающего структуру документа подобно тому, как схема базы данных описывает типы поддерживаемых данных и отношения между полями. Определение типа документа (ОТД) задает взаимосвязь глав, заголовков глав, разделов и других фрагментов текста, образующих документ. Кроме того, ОТД задает правила для отношений между элементами документа, например: «заголовок главы должен быть первым элементом после начала главы» или «каждый список должен содержать по меньшей мере два пункта». Правила, содержащиеся в ОТД, позволяют автоматически контролировать правильность логической структуры документа. Таким образом, разные ОТД позволяют получить из одного и того же набора элементов разные документы (см. рис.12).


    Помимо текстовой и графической информации, в SGML-документ могут быть вставлены мультимедийные элементы: аудио и видео-записи и клипы. Технология встройки мультимедийных элементов регламентируется специальным расширением SGML, описанным в стандарте ISO 10744 HyTime (Hypermedia/TimeBased Structuring Language) - языком «привязки» мультимедийных объектов.

    В разделе, посвященном подготовке интерактивных электронных технических руководств, рассмотрен наглядный пример использования SGML – технологии.

    Основные преимущества SGML - технологии:

    1) формализация структуры документа, обеспечивающая возможность:

    Описать правила, по которым формируется структура документа,

    Автоматической генерации и контроля структуры документа,

    Автоматического наполнения документа;

    2) возможность распределенной подготовки различных разделов по строго определенным правилам (единая структура документа, единое стилевое оформление) и централизованная композиция конечного документа;

    SGML (англ. Standard Generalized Markup Language - стандартный обобщённый язык разметки; произносится [эс-джи-эм-эл ]) - метаязык, на котором можно определять язык разметки для документов. SGML - наследник разработанного в 1969 году в IBM языка GML (Generalized Markup Language), который не стоит путать с Geography Markup Language, разрабатываемым Open GIS Consortium.

    Изначально SGML был разработан для совместного использования машинно-читаемых документов в больших правительственных и аэрокосмических проектах. Он широко использовался в печатной и издательской сфере, но его сложность затруднила его широкое распространение для повседневного использования.

    Основные части документа SGML:

    1. SGML-декларация - определяет, какие символы и ограничители могут появляться в приложении;

    2. Document Type Definition - определяет синтаксис конструкций разметки. DTD может включать дополнительные определения, такие, как символьные ссылки-мнемоники;

    3. Спецификация семантики, относится к разметке - также даёт ограничения синтаксиса, которые не могут быть выражены внутри DTD;

    4. Содержимое SGML-документа - по крайней мере, должен быть корневой элемент.

    SGML предоставляет множество вариантов синтаксической разметки для использования различными приложениями. Изменяя SGML-декларацию, можно даже отказаться от использования угловых скобок, хотя этот синтаксис считается стандартным, так называемым concrete reference syntax .

    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 - расширяемый язык разметки; произносится [икс-эм-э́ль ]) - рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил. XML - текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML). XML является упрощённым подмножеством языка SGML.

    Стандартом определены два уровня правильности документа XML:

    · Правильно построенный (англ. well-formed ). Правильно построенный документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу. И если, например, начальный тег не имеет соответствующего ему конечного тега, то это неправильно построенный документ XML. Документ, который неправильно построен, не может считаться документом XML; XML-процессор (парсер) не должен обрабатывать его обычным образом и обязан классифицировать ситуацию как фатальная ошибка.

    · Действительный (англ. valid ). Действительный документ дополнительно соответствует некоторым семантическим правилам. Это более строгая дополнительная проверка корректности документа на соответствие заранее определённым, но уже внешним правилам, в целях минимизации количества ошибок, например, структуры и состава данного, конкретного документа или семейства документов. Эти правила могут быть разработаны как самим пользователем, так и сторонними разработчиками, например, разработчиками словарей или стандартов обмена данными. Обычно такие правила хранятся в специальных файлах - схемах, где самым подробным образом описана структура документа, все допустимые названия элементов, атрибутов и многое другое. И если документ, например, содержит не определённое заранее в схемах название элемента, то XML-документ считается недействительным ; проверяющий XML-процессор (валидатор) при проверке на соответствие правилам и схемам обязан (по выбору пользователя) сообщить об ошибке.

    Данные два понятия не имеют достаточно устоявшегося стандартизированного перевода на русский язык, особенно понятие valid , которое можно также перевести, как имеющий силу , правомерный , надёжный , годный , или даже проверенный на соответствие правилам, стандартам, законам . Некоторые программисты применяют в обиходе устоявшуюся кальку «Валидный ».

    Технология XML. Предназначение, область применения.

    XML - расширяемый язык разметки. Представляющий собой свод общих синтаксических правил. XML - текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML, HTML). XML является упрощённым подмножеством языка SGML.

    Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имён.

    XML - это иерархическая структура, предназначенная для хранения любых данных, визуально структура может быть представлена как дерево. Важнейшее обязательное синтаксическое требование является то, что документ имеет только один корневой элемент. Это означает, что текст должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.

    Перечислим важнейшие задачи, решение которых обеспечивает платформа XML:

    Создание Веб второго поколения;

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

    Интеграция неоднородных информационных ресурсов, различных технологий управления данными и приложений;

    Создание новой ветви технологий баз данных, называемых XML-ориентированными базами данных;

    Наряду с использованием технологий XML-ориентированных баз данных по их прямому назначению - для управления репозиториями XML-документов, можно ожидать, что они найдут применение и в решении проблемы "скрытого" Веб; благодаря единству модели данных XML-документов, представленных на Веб-сервере, и в доступной через него XML-ориентированной базе данных, появляется возможность "открыть" "скрытые" информационные ресурсы баз данных для механизмов таких Веб-серверов;

    Обеспечение инструментария для новых сфер применения Веб, таких как электронный бизнес, электронные библиотеки, электронные издания и т.п.

    Области применений стандартов платформы XML постоянно расширяются и охватывают ряд технологий и стандартов как горизонтальной, так и вертикальной сферы.

    Технология Ajax.

    AJAX (, от англ. Asynchronous Javascript and XML - «асинхронный JavaScript и XML») - подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.

    Технология

    AJAX - не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:

    Использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:

    С использованием XMLHttpRequest (основной объект);

    Через динамическое создание дочерних фреймов;

    Через динамическое создание тега .

    Использование DHTML для динамического изменения содержания страницы;

    В качестве формата передачи данных обычно используются JSON или XML.

    Преимущества

    -Экономия трафика

    Использование AJAX позволяет значительно сократить трафик при работе с веб-приложением благодаря тому, что часто вместо загрузки всей страницы достаточно загрузить только изменившуюся часть, как правило, довольно небольшую.

    -Уменьшение нагрузки на сервер

    AJAX позволяет несколько снизить нагрузку на сервер. К примеру, на странице работы с почтой, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции без необходимости повторно создавать страницу и передавать её клиенту.

    -Ускорение реакции интерфейса

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

    Недостатки

    -Отсутствие интеграции со стандартными инструментами браузера

    Динамически создаваемые страницы не регистрируются браузером в истории посещения страниц, поэтому не работает кнопка «Назад», предоставляющая пользователям возможность вернуться к просмотренным ранее страницам, но существуют скрипты, которые могут решить эту проблему.

    Другой недостаток изменения содержимого страницы при постоянном URL заключается в невозможности сохранения закладки на желаемый материал. Частично решить эти проблемы можно с помощью динамического изменения идентификатора фрагмента (части URL после #), что позволяют многие браузеры.

    -Динамически загружаемое содержимое недоступно поисковикам (если не проверять запрос, обычный он или XMLHttpRequest)

    Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта.

    -Старые методы учёта статистики сайтов становятся неактуальными

    -Усложнение проекта

    Перераспределяется логика обработки данных - происходит выделение и частичный перенос на сторону клиента процессов первичного форматирования данных. Это усложняет контроль целостности форматов и типов. Конечный эффект технологии может быть нивелирован необоснованным ростом затрат на кодирование и управление проектом, а также риском снижения доступности сервиса для конечных пользователей.

    -Требуется включенный JavaScript в браузере

    История

    Рассмотрим пример простого кулинарного рецепта, размеченного с помощью XML:

    Простой хлеб Мука Дрожжи Тёплая вода Соль Смешать все ингредиенты и тщательно замесить. Закрыть тканью и оставить на один час в тёплом помещении. Замесить ещё раз, положить на противень и поставить в духовку.

    Объявление XML

    Первая строка XML-документа называется объявление XML (англ. XML declaration ) - это строка, указывающая версию XML. В версии 1.0 объявление XML может быть опущено, в версии 1.1 оно обязательно. Также здесь может быть указана кодировка символов и наличие внешних зависимостей.

    Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод -кодировки UTF-8 и UTF-16 (UTF-32 не обязателен). Признаются допустимыми, поддерживаются и широко используются (но не обязательны) другие кодировки, основанные на стандарте ISO/IEC 8859 , также допустимы другие кодировки, например, русские Windows-1251 , KOI-8 . Часто в тегах принципиально не используют не-латинские буквы, в этом случае UTF-8 является очень удобной кодировкой - объём, как правило, меньше, чем при UTF-16; декодирование может быть выполнено как для всего документа, так и для конкретных атрибутов и текстов; весь документ не содержит запрещённых символов при попытке разбора с неправильной кодировкой.

    Корневой элемент

    Важнейшее обязательное синтаксическое требование заключается в том, что документ имеет только один корневой элемент (англ. root element ) (также иногда называемый элемент документа (англ. document element )). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.

    Следующий простейший пример - правильно построенный документ XML:

    Следующий пример не является корректным XML-документом, потому что имеет два корневых элемента :

    Сущность №1 Сущность №2

    Комментарий

    В любом месте дерева может быть размещен элемент-комментарий . XML-комментарии размещаются внутри специального тега, начинающегося с символов . Два знака дефис (--) внутри комментария присутствовать не могут.

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

    Теги

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

    В XML есть несколько предопределённых сущностей, таких как lt (ссылаться на неё можно написав ), " (") и " (") - последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD-документе.

    Иногда бывает необходимо определить неразрывный пробел, который очень часто используется в HTML и обозначается как. В XML такой предопределённой сущности нет, его записывают, а использование вызывает ошибку. Отсутствие этой весьма распространённой сущности у множества программистов зачастую вызывает удивление и это создаёт некоторые трудности при миграции своих HTML-разработок в XML.

    Ссылка по номеру символа (англ. numeric character reference ) выглядит как ссылка на сущность, но вместо имени сущности указывается символ # и число (в десятичной или шестнадцатеричной записи), являющееся номером символа в кодовой таблице Юникод . Это обычно символы, которые невозможно закодировать напрямую, например, буква арабского алфавита в ASCII -кодированном документе. Амперсанд может быть представлен следующим образом:

    AT& T

    Существуют и другие правила, касающиеся составления корректного XML-документа.

    Сильные и слабые стороны Достоинства Недостатки
    • Неоднозначность моделирования.
    • XML не содержит встроенной в язык поддержки типов данных . В нём нет строгой типизации, то есть понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
    • Иерархическая модель данных , предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно-ориентированными графами и сетевой моделью данных.
    Отображение XML во Всемирной паутине

    Наиболее распространены три способа преобразования XML-документа в отображаемый пользователю вид:

  • Применение стилей CSS ;
  • Применение XSL ;
  • Написание на каком-либо языке программирования обработчика XML-документа.
  • Для задания XSL трансформации (XSLT) на стороне клиента требуется наличие в XML инструкции следующего вида:

    Словари XML

    Так как XML является достаточно абстрактным языком, были разработаны словари XML.

    Словарь позволяет разработчикам договориться о некотором конечном наборе имен тегов и атрибутов этих тегов. Одним из первых словарей является XHTML , который понимают большинство браузеров. XHTML часто используют для хранения и редактирования контента в CMS .

    Были созданы более специализированные словари, например протокол передачи данных SOAP , который не является человеко-ориентированным и достаточно трудно читаем. Есть коммерческие словари, такие как CommerceML , xCBL и cXML которые используются для передачи данных, ориентированных на торговую деятельность, эти словари включают в себя описание системы заказов, поставщиков, продуктов и прочее.

    Обычно, описывая какой-либо документ, человек для себя придумывает некоторый словарь, который потом описывается посредством DTD , XSD или просто объясняет «на пальцах» заинтересованным лицам.

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

    Версии XML
    • XML 1.0
    • XML 1.1
    См. также Примечания Литература
    • Дэвид Хантер, Джефф Рафтер, Джо Фаусетт, Эрик ван дер Влист, и др. XML. Работа с XML, 4-е издание = Beginning XML, 4th Edition. - М .: «Диалектика», 2009. - 1344 с. - ISBN 978-5-8459-1533-7
    • Дэвид Хантер, Джефф Рафтер и др. XML. Базовый курс = Beginning XML. - М .: Вильямс, 2009. - 1344 с. - ISBN 978-5-8459-1533-7
    • Роберт Тейбор. Реализация XML Web-служб на платформе Microsoft .NET = Microsoft .NET XML Web Services. - М .: Вильямс, 2002. - 464 с. - ISBN 0-672-32088-6
    Ссылки
    • XML на сайте Консорциума Всемирной паутины (W3C)
    • Официальная спецификация стандарта XML 1.0 (англ.)
    • Официальная спецификация стандарта XML 1.1 (англ.)
    • Документация по XML на сайте IBM статьи, форумы
    Стандарты Консорциума Всемирной паутины Рекомендации Примечания Рабочие проекты Guidelines Initiative Deprecated Организации ПО Конференции Семантическая паутина Основы Подразделы Приложения Связанные темы

    В 1986 году, задолго до того, как идея создания сети Веб была воплощена в жизнь, универсальный стандартизированный язык разметки SGML (Standardized Generalized Markup Language ) был утвержден в качестве международного стандарта (ISO 8879 ) определения языков разметки, хотя SGML существовал еще с конца шестидесятых. Он использовался для того, чтобы описывать языки разметки, предоставляя при этом автору возможность давать формальные определения каждому элементу и атрибуту языка .

    Язык HTML первоначально был всего лишь одним из SGML -приложений. Он описывал правила, по которым должна быть подготовлена информация для World Wide Web . Таким образом, язык HTML - это набор предписаний SGML , сформулированных в виде определения типа документа (DTD ), объясняющих, что именно обозначают тэги и элементы. Схема DTD для языка HTML хранится в веб-браузере.

    К недостаткам языка HTML можно отнести следующие:

    • HTML имеет фиксированный набор тэгов . Нельзя создавать свои тэги, понятные другим пользователям.
    • HTML - это исключительно технология представления данных . HTML не несет информации о значении содержания, заключенного в тэгах.
    • HTML - "плоский" язык . Значимость тэгов в нем не определена, поэтому с его помощью нельзя описать иерархию данных.
    • В качестве платформы для приложений используются браузеры . HTML не обладает достаточной мощью для создания веб-приложений на том уровне, к которому в настоящее время стремятся веб-разработчики. Например, на языке HTML невозможно разработать приложение для профессиональной обработки и поиска документов.
    • Большие объемы трафика сети . Существующие HTML -документы, используемые как приложения, перегружают Интернет большими объемами трафика в системах клиент-сервер. Примером может служить пересылка по сети большого по объему документа, в то время как необходима только небольшая часть этого документа.

    Таким образом, с одной стороны, язык HTML является очень удобным средством разметки документов для использования в веб, а с другой - документ, размеченный в HTML , имеет мало информации о своем содержании. Если тот или иной документ несет достаточно полную информацию о своем содержании, появляется возможность сравнительно легко провести автоматическую обобщенную обработку и поиск в файле, хранящем документ. Язык SGML позволяет сохранять информацию о содержании документа, однако вследствие особой сложности он никогда не использовался так широко, как HTML .

    Группа экспертов по языку SGML , возглавляемая Джоном Боузэком (Jon Bosak ) из компании Sun Microsystems , приступила к работе по созданию подмножества языка SGML , которое могло бы быть принято Web -сообществом. Решено было удалить многие несущественные возможности SGML . Перестроенный таким образом язык назвали XML . Упрощенный вариант оказался значительно более доступным, чем оригинал, его спецификации занимали всего 26 страниц по сравнению с более чем 500 страницами спецификаций SGML .

    Рассмотрим более детально структуру и особенности этого языка.

    XML ( eXtensible Markup Language ) - рекомендованный W3C язык разметки . XML - текстовый формат , предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе специализированных языков разметки. XML является упрощённым подмножеством языка SGML .

    Язык XML имеет следующие достоинства :

    • Это человеко-ориентированный формат документа, он понятен как человеку, так и компьютеру.
    • Поддерживает Юникод.
    • В формате XML могут быть описаны основные структуры данных - такие как записи, списки и деревья.
    • Это самодокументируемый формат, который описывает структуру и имена полей также как и значения полей.
    • Имеет строго определённый синтаксис и требования к анализу, что позволяет ему оставаться простым, эффективным и непротиворечивым.
    • Широко используется для хранения и обработки документов;
    • Это формат, основанный на международных стандартах;
    • Иерархическая структура XML подходит для описания практически любых типов документов;
    • Представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;
    • Не зависит от платформы;
    • Является подмножеством SGML , для которого накоплен большой опыт работы и созданы специализированные приложения;

    К известным недостаткам языка можно отнести следующие:

    • Синтаксис XML избыточен.
      • Размер XML документа существенно больше бинарного представления тех же данных (порядка 10 раз).
      • Размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON , YAML ) и особенно в форматах данных, оптимизированных для конкретного случая использования.
      • Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.
      • Для большого количества задач не нужна вся мощь синтаксиса XML , и можно использовать значительно более простые и производительные решения.
    • Пространства имён XML сложно использовать и их сложно реализовывать в XML парсерах .
    • XML не содержит встроенной в язык поддержки типов данных. В нём нет понятий "целых чисел", "строк", "дат", "булевых значений" и т. д.
    • Иерархическая модель данных , предлагаемая XML , ограничена по сравнению с реляционной моделью и объектно-ориентированными графами.

    Вообще говоря, XML можно рассматривать не только как новый язык разметки , но и как основу для целого семейства технологий:

    Таблица 9.1. Структура семейства XML
    XML Технические рекомендации об использовании XML
    DTD Определение типа документа (схема)
    XDR Формат XML Reduced (схема Microsoft )
    XSD Определение схемы XML (схемы W3C )
    Пространство имен Метод определения имен элементов и атрибутов
    XPath Язык путей XML
    XLink Язык ссылок XML
    XPointer Язык указателей XML
    DOM API для объектной модели документа
    SAX Простой API для XML
    XSL Расширяемый язык таблиц стилей
    XSL -FO Объекты форматирования XSL
    XSLT Язык преобразований XSL
    XInclude Синтаксис XML Include