Лекция МИР-10. Мировые информационные сети: структура информации, правила поиска, практикум. 1. XML - это способ записи структурированных данных Под "структурированными данными" обычно подразумевают такие вещи, как электронные таблицы, адресные книги, каталоги, конфигурационные параметры, финансовые транзакции, технические чертежи и так далее. XML представляет собой набор правил (вы можете также считать их инструкциями или соглашениями) для разработки текстовых форматов, которые позволят вам структурировать ваши данные. XML - это не язык программирования, и вам не нужно быть программистом, чтобы использовать или изучать его. XML облегчает компьютеру задачу создания и чтения данных, обеспечивая при этом однозначность их структуры. XML позволяет избежать распространенных ошибок проектирования языков: он расширяем, независим от платформы, включает поддержку интернационализации и локализации. XML полностью совместим с Unicode. 2. XML немного похож на HTML Также как и в HTML, в XML используются тэги (слова, заключенные в '<' и '>') и атрибуты (вида имя="значение"). Но если в HTML фиксируется смысловое значение каждого тэга и атрибута и часто то, как текст между ними будет выглядеть в браузере, в XML тэги используются только для логической разметки данных, и их интерпретация оставляется на усмотрение обрабатывающей программы. Другими словами, если вы встречаете "

" в XML-файле, то не стоит думать, что это параграф. В зависимости от контекста, это может быть цена (price), параметр (parameter), человек (person)... (вообще, кто сказал, что это должно быть слово, начинающееся с "p"?) 3. XML - это текст, но он не предназначен для чтения Программы, которые работают с электронными таблицами, адресными книгами или другими структурированными данными, часто сохраняют эти данные на диск, используя либо двоичный, либо текстовый формат. Одним из преимуществ текстового формата является то, что люди при необходимости могут просматривать данные без использования программы, в которой они были созданы. На худой конец, вы можете читать данные, записанные в текстовом формате, в своем любимом текстовом редакторе. Также текстовые форматы облегчают разработчикам отладку своих приложений. По этим причинам, подобно HTML-файлам, XML-файлы являются текстовыми: они не предназначены для чтения людьми, но при необходимости могут быть прочитаны. Однако правила для XML-файлов гораздо строже, чем для HTML. Пропущенный тэг или атрибут без кавычек сделает файл непригодным, тогда как в HTML это явно позволяется или, по крайней мере, допускается. Как написано в официальной спецификации XML, приложениям не позволяется пытаться предугадать создателя некорректного XML-файла; если файл некорректен, приложение тут же должно остановиться и выдать сообщение об ошибке. 4. XML умышленно многословен Так как XML - текстовый формат и использует тэги для разметки данных, XML-файлы почти всегда больше по размеру, чем аналогичные в двоичном формате. Это было сознательным решением разработчиков XML. Преимущества текстового формата очевидны (см. пункт 3), и недостатки обычно могут быть компенсированы на ином уровне. Дисковое пространство уже не столь дорого, как было раньше, а программы типа zip и gzip могут сжимать текстовые файлы очень хорошо и очень быстро. К тому же коммуникационные протоколы, такие как модемные протоколы и HTTP/1.1 (основной протокол Сети) могут сжимать данные "на лету", сохраняя, таким образом, пропускную способность так же эффективно, как и в случае с двоичным форматом. 5. XML - это семейство технологий Существует спецификация XML 1.0, в которой определяется, что такое "тэги" и "атрибуты". Но за XML 1.0 следует "семейство XML" - все более растущее множество модулей, предоставляющих полезные сервисы для решения важных и часто возникающих задач. Например, в Спецификации XLink (Рекомендация W3C от 27 июня 2001) описывается стандартный способ добавления гиперссылок в XML-документ. XPointer и XFragments (в стадии разработки) - синтаксис для адресации частей XML-документа. XPointer немного похож на URL, но вместо указания на документы в Сети, обращается к фрагментам данных внутри XML-документа. Каскадные таблицы стилей CSS могут применяться к XML-документам так же, как и к HTML. Но для XML существует свой специальный язык стилей XSL (Рекомендация W3C от 15 октября 2001). Он, в свою очередь, базируется на XSLT (Рекомендация W3C от 16 ноября 1999), языке трансформаций, использующемся для переформирования, добавления и удаления тэгов и атрибутов. DOM представляет собой стандартный интерфейс для манипулирования файлами XML (и HTML) из различных языков программирования. Языки XML Schema 1 и 2 призваны помочь разработчикам четко определять их собственные форматы, основанные на XML. Кроме перечисленных готово к использованию или находится в разработке еще множество модулей и средств. Следите за обновлениями на странице технических отчетов W3C. 6. XML нов, но не совсем Разработка XML началась в 1996 году, и с февраля 1998 года является стандартом W3C, что может заставить вас думать об этой технологии как о довольно не зрелой. Но, в действительности, она не так уж и нова. До XML был SGML, разработанный в начале 80-х и принятый в качестве стандарта ISO в 1986 году, который широко использовался в проектах, связанных с большим количеством документации. И, конечно, HTML, разработка которого началась в 1990 году. Создатели XML просто взяли лучшее из SGML, и, основываясь на опыте HTML, создали нечто новое, что по своей мощи не уступает SGML, но гораздо аккуратнее и проще для использования. Иногда эволюцию, однако, трудно отличить от революции... И надо заметить, что пока SGML в основном используется для технической документации и в значительно меньшей степени для других видов данных, с XML все с точностью до наоборот. 7. XML ведет HTML к XHTML Существует важное XML-приложение, являющееся форматом документов: W3C XHTML, преемник HTML. Большинство элементов XHTML такие же, как и в HTML. Синтаксис был немного изменен для соответствия правилам XML. Документ, являющийся "XML-based", наследует синтаксис XML и ограничивает его определенным способом (например, в XHTML разрешается "

", но не ""); этот синтаксис также наделяется смысловым значением (XHTML определяет, что "

" обозначает "параграф" (paragraph), а не "цена" (price), "персона" (person) или что-либо еще). 8. XML - модульная технология XML позволяет вам определять новые форматы документов, комбинируя и повторно используя уже созданные. Поскольку два формата, разработанные независимо, могут иметь элементы или атрибуты с одинаковыми именами, при их комбинировании следует соблюдать осторожность (что должно отличать "

", обозначающий "paragraph" в одном формате, от "person" в другом?). Для устранения возможной путаницы при одновременном использовании разных форматов XML предоставляет механизм пространств имен. XSL и RDF являются хорошими примерами основанных на XML форматов, использующих пространства имен. XML Schema разработан для отражения подобной поддержки модульности на уровне определения структур XML-документа, облегчая процесс построения новой схемы на основе существующих. 9. XML - основа для RDF и Семантической Сети W3C Resource Description Framework (RDF) является текстовым форматом, основанным на XML, который поддерживает описание ресурсов и метаданных приложений, такие как списки музыкальных композиций, фотогалереи и библиографий. Например, RDF может позволить вам идентифицировать людей в сетевом фотоальбоме, используя информацию из персонального списка контактов; затем ваша почтовая программа может автоматически начинать письма этим людям с утверждения, что их фотографии находятся в Сети. Подобно тому, как HTML объединил документы, меню и формы, дав начало сегодняшней Сети, RDF объединяет приложения и агенты в Семантическую Сеть. Точно так же, как люди нуждаются в соглашениях о смысле слов, которые они используют между собой в общении, так и компьютеры для эффективного взаимодействия нуждаются в механизме согласования значений терминов. Формальные описания терминов некоторой области (например, похода по магазинам или производства) называются онтологиями и являются необходимой частью Семантической Сети. RDF, онтологии, и представление значений так, чтобы компьютеры могли помогать людям в их работе - это все темы деятельности Semantic Web Activity. 10. Технология XML свободна от лицензирования, платформо-независима и хорошо поддерживаема Выбирая XML в качестве основы для своего проекта, вы имеете доступ к большому и все более растущему семейству инструментов (один из которых уже, может, делает то, что вам нужно!) и опыту специалистов, работающих с этой технологией. Выбор XML немного похож на выбор SQL для баз данных: вы все еще должны строить свою базу данных и писать свои программы и процедуры для работы с ней, однако есть много инструментальных средств и людей, способных помочь вам. А так как XML свободен от лицензирования, вы можете строить свое программное обеспечение, не заплатив кому-либо ни копейки. Большая и все более растущая поддержка определяет то, что вы не привязаны к какому-либо конкретному производителю программ. XML - не всегда лучшее решение, но всегда стоит принимать его во внимание. XML: 1. Метаязык для спецификации и синтаксического анализа языков-диалектов электроннных данных в определенных областях деятельности; 2. Отделение содержания (контента) от представления (форматирования); и программ обработки данных; 3. Глобализация и всеобщность международных стандартов и др. См список XML-стандартов (XLink, XPoint, XForm) 4. Независимость от устройств в/в (монторов, принтеров, сотовых телефонов ) 5. Пространство имен XML - механизм объединения XML-диалектов и словарей Генезис: GML (~1965) -> SGML (~1986) -> HTML(~1990) -> XML (~1998) -> XML 1.1 (~2004) Что XML грядущий нам готовит? http://www.iworld.ru/magazine/index.phtml?do=show_article&p=61355261 Сегодня нередко можно услышать упоминания о расширяемом языке разметки XML. Однако, несмотря на утверждение консорциумом W3C языка разметки XHTML 2.0, отвечающего правилам упомянутой спецификации, столкнуться с документами, кодированными в этом языке, в Интернете не так уж и просто. В этом XHTML пока повторяет своего прародителя HTML 4.0. Сколько бы ни было шума вокруг спецификаций 4-й версии, на практике в подавляющем большинстве интернет- документов если и используются особенности этой спецификации, в незначительном минимуме. Скажем, задание стилей в теле самих тегов. Но, заглядывая в будущее, нельзя не признать концептуального преимущества XML над всеми имеющимися сегодня языковыми технологиями Интернета. Чем же так хорош этот самый XML? Рассматривать его можно и как глобальный язык описания взаимодействия объектов в распределенных системах, и как преемника семейства языков разметки HTML. Второе звучит как-то попроще, ближе к традиционному веб-мастерингу - вот с него и начнем. C появлением первых версий HTML стало ясно, что относительно глобальных концепций, разработанных в SGML, был сделан большой шаг назад. В то же время, именно эта жертва принесла столь высокую популярность HTML. Только представьте себе, как постепенно угасает энтузиазм пионеров веб-мастеринга с каждой новой главой в 500-страничном руководстве по SGML... Теперь, когда простой и доступный HTML давно утвердился как стандарт де-факто, главная регулирующая <сила> в Интернете (W3C) начала обратный путь к SGML, хотя и не по прямой, - в арсенале этой организации десятки лет мирового опыта. Что же в результате веб-мастера имеют на сегодня в своем распоряжении? Похоже, что они имеют язык разметки, лишенный врожденных недостатков HTML. Чем больше число проектов, в которых участвует веб-мастер, чем большее число страниц им создается, тем острее становятся проблемы унификации и структуризации контента в HTML. Вот давайте посмотрим на пример:

Что XML грядущий нам готовит?!

Дмитрий Шейко

Страна: Беларусь

Организация: Design Studio DS

WWW: http://sheiko.virtualave.net/ds/

E-Mail: bcf@mail.ru

UIN: 35325827

Это до боли знакомая разметка HTML. Никакой информации о структуре, только теги визуального отображения, минимум логической разметки. При использовании CSS можно несколько улучшить картину. Теги заголовков предварительно описываются, можно описать и форматирование абзацев. Но что еще лучше, различным записям можно задать уникальные стилевые идентификаторы, которыми в дальнейшем можно манипулировать. Например, изменение атрибутов вывода конкретного стиля приведет к соответствующим изменениям во всех документах сайта. Посмотрите, насколько дальше пошел XML: Дмитрий Шейко Что XML грядущий нам готовит?! Беларусь Design Studio DS http://sheiko.virtualave.net/ds/ bcf@mail.ru 35325827 Немного напоминает структуру базы данных, не правда ли? И не только внешним видом: XML позволяет производить такие манипуляции с полученными записями, как сортировка и поиск по заданным критериям. Кроме того, как вы наверняка заметили, в описаниях XML поощряется вложенность задаваемых тегов как способ задания иерархии данных. Пользовательские теги задаются вами в подключаемой таблице стилей XSL: text/xsl> href=>table_name.xsl> ?> Причем, в XML можно определять не только собственные теги, но и их свойства. В принципе, сама спецификация XSL еще в процессе разработки, но уже очевидны тенденции к двухэтапной интерпретации документов. Сначала структурное дерево исходного документа преобразуется в новое, где новые теги содержат параметры форматирования тех частей документа, которые подлежат выводу. На втором этапе происходит собственно форматирование. Теперь документ преобразуется к формату, понятному выводящему устройству (вывод может быть направлен на экран, на печать и т. д.). Еще одна примечательная особенность XML заключается в возможности задания ссылок на фрагменты кода текущего или внешнего документа. Это позволяет создавать поистине модульную структуру документа. Вот посмотрите: &banner; &title; &form1; &content; Таким небольшим фрагментом можно описать целую страницу. Подводя итог, в этом сравнении можно сказать, что в отличие от HTML, который принуждает веб-мастеров каждый раз переделывать свои документы при внесении изменений, XML (сегодня в лице XHTML) позволяет динамически менять данные в интернет-документах. Кстати, это разгрузит трафик и может послужить толчком к развитию различных переносных устройств. Как и в случае SQL, в XML-технологии основная часть вычислений, связанная с динамическими изменениями контента, производится на стороне хост-сервера, а броузер пользователя лишь получает результаты. Возможности XHTML по манипулированию данными дают преимущества и сайтам электронной коммерции, делая их более интерактивными. Теперь о XML более глобально. О связующем звене распределенных систем. Основная головная боль при интеграции распределенных систем заключается в том, что нет единой спецификации, которая описывала бы общую концепцию и частные рекомендации по стыковке различных систем. Может быть, вы помните, пару лет назад активно популяризировалась идея корпоративного управления на базе Web? Еще тогда лидерами компьютерной индустрии была создана рабочая группа по распределенному управлению DMTF. Сегодня эта идея представлена тремя основными компонентами: общей информационной моделью CIM (Common Information Model), универсальным транспортным протоколом для передачи информации HTTP, расширяемым языком разметки XML. Разработчик, взявший на вооружение CIM, может не беспокоиться о том, что его приложение не найдет общего языка с любым другим CIM-совместимым приложением, независимо от географического расположения его хост-сервера и его платформы. В чем здесь заслуга XML? Да в том, что распределенные приложения связываются друг с другом посредством протокола HTTP и передают потоки данных, структурированных согласно правилам именно XML. По сути, и здесь XML только представляет структуру отображения тегов, идентифицирующих объекты или атрибуты, на некоторую внешнюю семантическую структуру. Как все-таки безгранично число применений языка описания <всего и вся>! Чем-то это напоминает мечту Эйнштейна создать единую теорию поля. Видите ли, с помощью XML можно описывать структуры программ, написанных на высокоуровневых объектно-ориентированных языках программирования. И в этом есть смысл: XML позволяет отделить данные от их представления, упорядочить данные в деревья и списки, структурировать их и порождать из них объектные модели и описывать метаданные на метаязыке таким образом, чтобы программные модули стали абсолютно универсальными, поскольку они будут иметь дело только с XML-файлами и больше ни с чем другим. Таким образом, с помощью XML можно попытаться реализовать принцип <Данные должны управлять программами, а не наоборот>. Тут надо отметить, что это задает примечательные тенденции на будущее. Приложения как в Интернете, так и вне его станут более переносимыми и настраиваемыми. Каркасы программ будут проектироваться с максимальной тщательностью, теперь они не будут затронуты при внесении изменений в структуру программ. Программы смогут иметь дело не с самими данными, а с их описаниями. И повышение роли метаданных позволит подключить к разработке приложений большее число профессионалов в самых разных предметных областях. У вас, быть может, возник вопрос: <Есть ли уже в Интернете узлы, построенные на базе XML, и что необходимо для того, чтобы их просмотреть?> Пожалуй, самый известный на сегодня сайт, использующий XML, - это BizTalk (www.biztalk.org). Это детище Microsoft представляет собой программный инструмент, который облегчает на предприятиях обмен информацией между приложениями, интегрирует бизнес-процессы и дает возможность вести дела с торговыми партнерами и заказчиками через Интернет. Сегодня XML воспринимается броузерами MS-Explorer версии 4.0 и выше. На самом деле броузер с помощью подгружаемого ActiveX-модуля конвертирует XML-код в HTML и уже после этого отображает страницу. Далее, в недавно вышедшей Windows 2000 реализована высокоэффективная поддержка XML. В Windows 2000 встроен интерпретатор XML, есть поддержка потоковой передачи данных XML и средства сохранения объектов. Microsoft до того увлеклась перспективным языком описаний, что теперь даже в приложениях Microsoft Office в качестве альтернативного стандарта хранения данных будет XML. Вы думаете, что Microsoft ограничилась только своим детищем Windows? В MS-SQL Server 7.0 также интегрирован XML. Было даже обещано открыть разработчикам прямой URL-доступ к SQL Server 7.0 на веб-узле MSDN XML Developer Center (msdn.microsoft.com/xml). Кроме того, в Microsoft работают над XML Transaction Integrator (XML-TI). Это новый компонент проекта сервера интеграции Babylon, который позволит разработчикам легко интегрировать свои приложения масштаба предприятия, включая электронную коммерцию. Как видите, XML уделяется особое внимание со стороны крупнейших софтверных компаний. Это обещает большое число XML-совместимых приложений и ресурсов, но придет ли к XML тот невероятный успех, который пророчат ему в последние годы в прессе, покажет только время. Парадоксально, что язык описаний, созданный для интеграции приложений, технологий и устройств, может со временем разделиться на великое множество различных <диалектов и наречий>. С другой стороны, если посмотреть, как много сегодня всякими комитетами продвигается различных базовых концепций и информационных моделей, возникают сомнения по поводу того, сохранится ли при всем этом язык в первозданном виде, разработанном W3C. Опубликован проект новой версии HTML 6 августа 2002 года, 18:53 На сайте консорциума W3 (W3C), главной организации, ведущей разработку веб-стандартов, была опубликована первая черновая редакция языка разметки XHTML 2.0. Он должен придти на смену XHTML 1 и HTML 4, став в будущем основным языком для создания веб-страниц. XHTML - это развитие языка разметки HTML. Во-первых, каждый документ на XHTML является, в то же время, корректным документом на XML. Во-вторых, язык был избавлен от многочисленных оформительских средств, которыми HTML оброс за время своего существования. Для определения внешнего вида страниц должны использоваться стилевые таблицы CSS, а на XHTML описывается только их структура. На практике это означает, что вольности, в HTML считавшиеся вполне допустимыми (например, отсутствие кавычек у атрибутов или нестандартная последовательность вложения элементов), окажутся под категорическим запретом. Кроме того, в соответствии со стандартом XML, все элементы, в том числе и пустые (такие как br или meta), должны иметь закрывающий тэг, а запрещённые специальные символы (>, <, &) должны заменяться соответствующими обозначениями (entities) даже в интернет-адресах (URL) и включённых в документ скриптах и стилях. Фрагмент документа на XHTML В XHTML 2.0 продолжается линия на отдаление от HTML. Насколько можно понять, никаких компромиссов и поблажек старым браузерам не планируется: отказ от сохранения совместимости с прошлыми версиями HTML декларируется изначально. Поддержка XHTML 1 есть в последних версиях всех основных браузеров (Internet Explorer 6, Mozilla 1, Netscape 6 и 7, Opera 6). Проект, опубликованный на сайте W3C, носит предварительный характер. До сих пор не представлены определения новой версии языка в форматах DTD или XML Schema, некоторые разделы проекта отсутствуют. Тем не менее, интересующиеся могут ознакомиться с ним уже сейчас. В XHTML 2.0 появилось несколько новых тэгов, в том числе тэги section и h, предназначенные для выделения логических частей документа, обычные HTML-формы были заменены на так называемые XForms, введено понятие навигационных списков (
  • ). Тэг img исчез, теперь вместо него полагается использовать object. Между тем, вторая редакция XHTML 1.0 была одобрена консорциумом всего лишь несколькими днями ранее. От первой редакции она отличается несколькими поправками, в частности, определены MIME-типы для документов XHTML. Во всех случаях, кроме использования наиболее близкого к прошлым версиям HTML переходного варианта XHTML 1.0, предписывается применять типы application/xhtml+xml, application/xml или text/xml. XHTML - воспоминание о будущем HTML Кто работает прежде всего с HTML и клиентскими технологиями, обратят особое внимание на XHTML, расширяемый язык разметки гипертекста, предложенный Консорциумом WWW. Главный вопрос в продвижении этого языка заключается в том, чтобы HTML воспринимался новыми XML-совместимыми броузерами. Это позволит преодолеть сегодняшние ограничения HTML и привнести в него гибкость XML. XHTML служит для решения многих сегодняшних проблем HTML, а также проблем будущих, появление которых неизбежно будет сопутствовать развитию старых и созданию новых броузеров. Тот факт, что броузеры и прикладные программы должны быть согласованы с XHTML, говорит о том, что понадобится некоторое время, прежде чем новые языки смогут полностью влиться в реальный рабочий мир Web. Однако, как вы видели на примере HTML 4.0, это не означает, что XHTML не будет принят в качестве рекомендации еще до того, как появятся поддерживающие его программные средства. Для подготовки к работе с XHTML разработчикам HTML следует познакомиться с основными отличиями рекомендуемого языка от их сегодняшней практики. Создание корректно оформленных документов. По существу, это означает: ни строчки некорректного программного кода. Пора отвыкать от сомнительного достоинства многих броузеров прощать разработчику вольности с кодом. XHTML-документы должны быть написаны в строгом соответствии с правилами. Например, не должно быть неправильно вложенных элементов. Если некая часть текста оформлена как полужирный курсив, то дескрипторы должны появляться в симметричной форме - , но ни в коем случае не как * Для дескрипторов и атрибутов используется нижний регистр. Лично я этим довольна, но знаю, что многие программисты будут огорчены, потому что им придется изменять свой стиль работы. * Все атрибуты должны быть в кавычках. * Для непустых элементов требуются закрывающие дескрипторы. В HTML существует множество элементов, не требующих закрывающего дескриптора. Основной пример - абзац (<Р>), который в HTML 4.0 всегда корректен: и когда используется только открывающий дескриптор, и когда используется пара дескрипторов. Но в XHTML любой элемент, содержащий данные, должен быть закрыт. Пустым элементам требуется либо закрывающий дескриптор, либо открывающий дескриптор с косой чертой. Пустые дескрипторы, т.е. дескрипторы без содержания, такие как
    и
    , в XHTML должны либо иметь парные закрывающие дескрипторы, либо использоваться с косой чертой после дескриптора и перед закрывающей угловой скобкой -
    или
    . Переход на XHTML - непростая задача для HTML-дизайнеров, но куда более сложные проблемы встают перед разработчиками броузеров. Новые версии броузеров должны поддерживать XML, XHTML и при этом быть обратно совместимыми, т.е. поддерживать HTML. Новые броузеры, создаваемые для мобильных устройств, должны использовать расширяемую технологию, так как это позволит разработчикам быстро внедрять новые технические средства вместо того, чтобы ждать появления новой официальной версии языка. Разработчики приложений должны уже сегодня обратить внимание на предлагаемые изменения. Даже лучшие редакторы HTML в настоящее время не соответствуют строгим правилам XHTML, например требованию заключения всех атрибутов в кавычки. Дополнительную информацию об XHTML и его текущем статусе в Консорциуме WWW можно получить по адресу http://www.w3.org