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

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

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

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

Синтаксис XML

В этом разделе рассматривается лишь правильное построение документов XML, то есть их синтаксис.

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

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

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

Ниже приведён пример простого кулинарного рецепта, размеченного с помощью XML:

Простой хлеб Мука Дрожжи Тёплая вода Соль

Структура

Остальная часть этого XML-документа состоит из вложенных элементов , некоторые из которых имеют атрибуты и содержимое . Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы. Открывающий тег состоит из имени элемента в угловых скобках, например, « »; закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта, например, « ». Содержимым элемента (content) называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы. Ниже приведён пример XML-элемента, который содержит открывающий тег, закрывающий тег и содержимое элемента:

Замесить ещё раз, положить на противень и поставить в духовку.

Мука

В приведённом примере у элемента « ingredient » есть два атрибута: « amount », имеющий значение «3», и « unit », имеющий значение «стакан». С точки зрения XML-разметки, приведённые атрибуты не несут никакого смысла, а являются просто набором символов.

Кроме текста, элемент может содержать другие элементы:

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

В данном случае элемент « Instructions » содержит три элемента « step ». XML не допускает перекрывающихся элементов. Например, приведённый ниже фрагмент некорректен, так как элементы « em » и « strong » перекрываются.

Обычный акцентированный выделенный и акцентированный выделенный

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

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

Для обозначения элемента без содержания, называемого пустым элементом , необходимо применять особую форму записи, состоящую из одного тега, в котором после имени элемента ставится косая черта. Если в DTD элемент не объявлен пустым, но в документе он не имеет содержания, для него допускается применять такую форму записи. Например:

В XML определены два метода записи специальных символов: ссылка на сущность и ссылка по номеру символа. Сущностью (entity) в XML называются именованные данные, обычно текстовые, в частности, спецсимволы. Ссылка на сущность (entity references) указывается в том месте, где должна быть сущность и состоит из амперсанда (« & »), имени сущности и точки с запятой (« ; »). В XML есть несколько предопределённых сущностей, таких как « lt » (ссылаться на неё можно написав « < ») для левой угловой скобки и « amp » (ссылка - « & ») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков. Ниже приведён пример использования предопределённой сущности для избежания использования знака амперсанда в названии:

AT&T

Полный список предопределённых сущностей состоит из & («&»), < (« («>»), " («"»), и " («"») - последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD -документе.

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

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

AT&T

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

История

Годом рождения XML можно считать 1996 год , в конце которого появился черновой вариант спецификации языка, или , когда эта спецификация была утверждена. А началось всё с появления в 1986 году языка SGML.

SGML (Standard Generalized Markup Language - стандартный обобщённый язык разметки) заявил о себе как гибкий, комплексный и всеохватывающий мета-язык для создания языков разметки. Несмотря на то, что понятие гипертекста появилось в 1965 году (а основопологающие принципы сформулированы в 1945 году ), SGML не имеет гипертекстовой модели. Создание SGML можно с уверенностью назвать попыткой объять необъятное, так как он объединяет в себе такие возможности, которые крайне редко используются все вместе. В этом и состоит его главный недостаток - сложность и, как следствие, дороговизна этого языка ограничивает его использование только крупными компаниями, которые могут позволить себе купить соответствующее программное обеспечение и нанять высокооплачиваемых специалистов. Кроме того, у небольших компаний редко возникают настолько сложные задачи, чтобы привлекать к их решению SGML.

Наиболее широко SGML применяется для создания других языков разметки, именно с его помощью был создан язык разметки гипертекстовых документов - HTML , спецификация которого была утверждена в 1992 году . Его появление было связано с необходимостью организации стремительно увеличивающегося массива документов в сети Интернет. Бурный рост количества подключений к Интернету и, соответственно, Web -серверов повлек за собой такую потребность в кодировке электронных документов, с которой не мог справиться SGML вследствие высокой трудности освоения. Появление HTML - очень простого языка разметки - быстро решило эту проблему: лёгкость в изучении и богатство средств оформления документов сделали его самым популярным языком для пользователей Интернет. Но, по мере роста количества и изменения качества документов в Сети, росли и предъявляемые к ним требования, и простота HTML превратилась в его главный недостаток. Ограниченность количества тегов и полное безразличие к структуре документа побудили разработчиков в лице консорциума W3C к созданию такого языка разметки, который был бы не столь сложен, как SGML, и не настолько примитивен, как HTML. В результате, сочетая в себе простоту HTML, логику разметки SGML и удовлетворяя требованиям Интернет, появился на свет язык XML.

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

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

  • Применение стилей CSS ;
  • Применение преобразования XSLT ;
  • Написание на каком-либо языке программирования обработчика XML-документа.
  • Без использования CSS или XSL XML-документ отображается как простой текст в большинстве Web-браузеров. Некоторые браузеры, такие как Internet Explorer , Mozilla и Mozilla Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.

    Применение стилей CSS

    Процесс аналогичен применению CSS к HTML документу для отображения.

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

    Это отличается от подхода HTML, где используется элемент .

    Применение преобразования XSLT

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

    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 this

    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"а. В качестве значения идентификатора может быть использована обычная текстовая строка, за исключением того, что внутри одного документа все подобные идентификаторы должны быть уникальны.

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

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

    Примеры использования

    ...

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

    ...

    ...

    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 в браузере

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

    Такое решение содержится в стандарте 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, 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). Также здесь может быть указана кодировка символов и внешние зависимости.