Кафедра «ОСУ» Весенний семестр 2012/2013 уч. года Языки описания информации Лекция 1. Введение в дисциплину Лектор: • Тузовский Анатолий Федорович – профессор каф. ОСУ • Рабочее место к. 316 КЦ ТПУ • Консультация: Четверг с 17-18 Материалы курса • Материалы по курсу будут расположены в локальной сети по адресу \\sinergy.main.tpu.ru\Info\Дисциплина - Языки описания информации (магистры) Цель преподавания данной дисциплины • На лекциях студенты должны получить знания по основным языкам описания информации: – XML-технологии; – семантические технологии. • На лабораторных занятиях студенты должны получить навыки – Разработка XML-документов с использованием среды Microsoft Visual Studio.Net. – Разработка XSLT-преобразований с использованием среды Microsoft Visual Studio.Net. – Разработка XQuery-запросов с использованием ххх. Организация преподавания дисциплины Распределение учебного времени • Лекции • Лабораторные занятия Всего аудиторных занятий • Самостоятельная работа - Общая трудоемкость - 80 часа Экзамен 16 часов 16 часов 40 часа 40 часа Самостоятельная работа (48 часа) • Изучение материала лекций. • Выполнение примеров сделанных на лекции. • Выполнение доп. заданий по ЛР • Самостоятельная работа может выполняться: – на своем компьютере – вечером в лабораториях кафедры Аттестация студентов • 100 баллов максимум. • Аттестация – 60 баллов: – Посещение лекций – 10 баллов – Две контрольные работы – 20 баллов – Лабораторные работы – 30 баллов • Допуск к экзамену: – Не менее 35 баллов – Сдача всех лабораторных работ. • Экзамен – 40 баллов. Материалы курса • в локальной сети по адресу \\Exilim\Info\Дисциплина - Языки описания информации • в Интернет сети ftp.tpu.ru\Information Description Languages\ (id = osu; psw = stud) – – – – Лекции – презентации Лабораторные работы Библиотека Курсовой проект Описание информации • Данные – информация - знания • Данные это некоторые описания реального мира, которые имеют исходный (сырой), простой формат (т.е., это биты и байты, которые хранятся в системе баз данных). • Информация создается по мере того, как простые данные получают некоторый смысл. Это может произойти в результате явного описания смысла некоторого концептуального термина или путем определения его смысла на основе логического вывода. • Знания создаются (генерируются), когда информация понимается, запоминается и интегрируется в текущее состояние знаний, которое может приводить к некоторым действиям или преобразованиям состояний знаний. • Так как экспертные системы используют формальные логики для представления данных, то в этом случае, обычные термины являются даже не информацией, а знаниями (специальная модель, обычно называемая базой знаний). • В общем случае, компьютер не может понимать информацию и поэтому любая информация для компьютера является просто данными. • Однако, если компьютер способен действовать интеллектуально, так как он может правильно интерпретировать (понимать) конкретные данные, то «простые» данные становятся информацией даже для компьютера. Общее определение информации (General Definition of Information, GDI) • Общее определение информации: является информацией, понимаемой, как семантическое содержание, если и только если выполняются следующие условия: – состоит из n данных, где n >= 1; – эти данные являются правильно-сформированными (well-formed); – правильно-сформированные данные должны иметь некоторый смысл (т.е. должны быть связаны с более широким описанием действительности, быть осмысленными, meaningful). • Иначе говоря, информация это данные, объединенные в соответствии с некоторым синтаксисом и имеющие некоторую семантику. • Смысл описываемой информации (составляющих ее данных) формально может быть определен за счет возможности выполнения на этих данных логического вывода. • Основная идея логического вывода заключается в том, что имеется возможность узнать больше о наборе данных, чем то, что явно записано в самих этих данных. • В результате того, что такая дополнительная информация становится явной, выполняется объяснение (кратким способом) смысла исходных данных. • Такая дополнительная информация получается в результате применения организованным способом шаблонов, которые имеются в исходных данных. Языки описания информации • Язык это набор знаков управляемый грамматическими правилами их объединения для передачи смысла. • Различают естественные языки для общения людей и формальные языки (например, математические языки; компьютерные языки). • Языков, также, как и информация, задаются их синтаксисом и семантикой. – Синтаксис это правила объединения элементов языка. – Семантика – это описание смысла, т.е. определение взаимосвязи между элементами языка (означающими, signifiers), такими, как слова, фразы и знаки, и тем, что они означают (обозначаемым, denotata). Языки описания информации • Языки описания информации основаны на моделях [организации] данных (data models), которые определяют способы (форматы) формирования информации из элементов данных. • Наиболее часто используемыми моделями данных являются иерархическая и сетевая. Пример иерархической и сетевой моделей данных XML-технологии • На основе иерархической модели данных разрабатываются языки описания информации, которые объединяются общим названием XMLтехнологии. • Основным языком данной группы является метаязык XML. • С помощью этих языков описание информации выполняется в виде иерархической структуры данных. • Такие языки обычно имеют хорошо определенный синтаксис, но не имеют формально описанную семантику. Семантические технологии • На основе сетевой модели разрабатываются языки описания информации, которые объединяются общим названием семантические технологии. • Основным языком данной группы является язык RDF. • Данный язык предоставляет возможность описывать сложные информационные структуры на основе набора бинарных отношений, вида (субъект, предикат, объект). – Имеются разные формы записи выражений языка RDF, которые называются способами сериализации. – Одной из таких форм является запись выражений на основе использования метаязыка XML – RDF/XML. Языки разметки • В настоящее основными активно используемыми языками описания информации являются языки разметки (markup languages). • Язык разметки это способ описания информации путем ее разделения на логически связанные части, выделения этих частей с помощью специальных знаков (тэгов) и задания этим частям их синтаксических и семантических свойств. • Тэги, добавляемые к информации, синтаксически отличаются от самого содержания информации. • Синтаксические свойства языков разметки задаются с помощью задания правил взаимного расположения знаков, их структурных взаимосвязей. • Семантические свойства задаются с помощью связывания знаков с семантическими моделями (словарями), которые описывают логические взаимосвязи между частями информации. • На основе использования тэгов, программы могут понять структуру и смысл обрабатываемой информации и могут выполнять обработку описанной информации. • Кроме того, большинство языков разметки также могут быть прочитанными человеком, т.е. являются для него понятными – согласуются с их знаниями, моделью внешнего мира. • Идея языков разметки и их терминология была заимствована из ручного внесения редакторами пометок в рукописные документы. • Первые языки разметки появились уже в 60-х годах прошлого века. • А в 1974 году был разработан метаязык разметки SGML (Standard Generalized Markup Language), который стал международным стандартом метаязыка разметки в 1986 (ISO 8879:1986). • Однако язык SGML является слишком низкоуровневым и сложным, для эффективного описания информации. Отношение между языками SGML, XML и HTML • В 1996 г. группа XML Working Group организации W3C, на основе положительного опыта использования языка HTML для Web-сети, разработала упрощенную версию языка SGML, назвав его расширяемым языком разметки – eXtensible Markup Language (XML). • XML – это метаязык, с помощью которого можно разрабатывать конкретные языки разметки. • Каждый конкретный язык разметки предназначен для описания информации некоторой конкретной предметной области (экономика, компьютерные сети, передача информации и т.п.). • Конкретные языки разметки, разработанные на основе XML также называются XML-приложениями или XMLреализациями. Примеры широко используемых конкретных языков разметки • XHTML (Extensible Hypertext Markup Language) – расширяемый язык разметки гипертекстов; • SOAP (Simple Object Access Protocol) – язык для работы с web-сервисами с помощью XML-сообщений; • OFX (Open Financial Exchange) – язык для обмена информацией финансовыми организациями (банками, общественными фондами); • HRMML (Human Resource Management Markup Language) – язык для обмена запросами по приему на работу и резюме; • MathML (Mathematical Markup Language) – язык форматирования математических формул и научной информации; • MusicML (Music Markup Language) – язык описание музыкальных партитур; • OMF (Weather Observation Markup Format) – язык для кодирование прогнозов погоды; • VML (Vector Markup Language) – язык для описания векторной графикой; • SVG (Scalable Vector Graphics) – язык разметки масштабируемой векторной графики; • ThML (Theological Markup Language) – язык представления религиозных текстов. Классификация языков разметки • Разработан и стандартизирован достаточно большой набор вспомогательных конкретных языков разметки, с помощью которых можно выполнять различные операции с конкретными языками разметки и XML-документами, как: – описание синтаксиса (схемы) конкретных языков разметки (языки DTD и XML Schema); – связывание XML-документов между собой (языки XPath, XPointer, XLink); – преобразование XML-документов в разные форматы (языки XSLT и XQuery); – описание семантики конкретных языков разметки (языки RDF/RDFS и OWL). Схема классификации языков разметки World Wide Web Consortium (W3C) • W3C была создана в Октябре 1994 года. • W3C была основана создателем Web сети - Tim Berners-Lee. • W3C является организацией содержащей Member Organization • W3C работает для создания стандартов Web сети. • W3C создает и поддерживает WWW стандарты, которые называются W3C Recommendations. Создание языка HTML • Язык HTML был разработан сотрудником института CERN - Tim Berners-Lee. • Позднее он стал открытым стандартом, принятым организацией World Wide Web Consortium (www.w3.org) (W3C) – Постоянно ведутся работы для того, чтобы HTML позволил реализовать полный потенциал Web сети. Язык HTML • Язык HTML предоставляет фиксированный набор элементов, которые можно использовать для описания элементов (разметки) обычной web-страницы. • Примерами таких элементов являются заголовки, абзацы, списки, таблицы, изображения и гиперссылки. • Например, с помощью HTML можно создать домашнюю web страницу. • Разработан ученым Тим Бернерс Ли в 1989 г. Пример HTML страницы с использованием языка HTML <HTML> <HEAD> <TITLE>Home Page</TITLE> </HEAD> <BODY> <H1><IMG SRC="MainLogo.gif"> Michael Young’s Home Page</H1> <P><EM>Welcome to my Web site!</EM></P> <H2>Web Site Contents</H2> <P>Please choose one of the following topics:</P> <UL> <LI><A Href="Writing.htm"><B>Writing</B></A></LI> <LI><A Href="Family.htm"><B>Family</B></A></LI> <LI><A Href="Photos.htm"><B>Photo Gallery</B></A></LI> </UL> <H2>Other Interesting Web Sites</H2> <P>Click one of the following to explore another Web site:</P> <UL> <LI> <A HREF=http://www.yahoo.com/>Yahoo Search Engine</A> </LI> <LI> <A HREF=http://www.amazon.com/>Amazon Bookstore</A> </LI> <LI> <A HREF=http://mspress.microsoft.com/>Microsoft Press</A> </LI> </UL> </BODY> </HTML> Документы, которые не могут быть описаны с помощью HTML • Документ, который не содержит типовых компонентов (заголовков, абзацев, списков, таблиц и т.д.) – Например, в языке HTML отсутствуют элементы, необходимые для отображения музыкальных символов или математических уравнений. • База данных, как например, каталог книг. – Можете использовать HTML-страницу, для хранения и отображения информацию из базы данных (например, перечень книг и их описание). – Однако, если потребуется выполнить сортировку, фильтрацию, поиск и обработку информации, придется задать каждой из составных частей информации соответствующие метки. – В языке HTML такие элементы не предусмотрены. • Документ, который нужно представить в виде иерархической структуры. – Например, при описании книги требуется разбить ее на части, главы, разделы A, B, C и т.д. – В дальнейшем программа, которая работает с таким описанием, могла бы использовать такую структуру документа для создания оглавления, оформления различных уровней в структуре с помощью различных стилей, извлечения определенных разделов, а также обработки информации иными способами. • Язык XML позволяет преодолеть эти ограничения! Метаязык XML • Метаязык XML (eXtensible Markup Language) разработан организацией W3C и предоставляет стандарт структурирования и разметки произвольной информации, за счет создания языков разметки. • В настоящее время существуют две версии языка XML – 1.0 и 1.1. • Наиболее важной заслугой XML является то, что программы различных производителей получили возможность обрабатывать информацию, на языках, имеющих сходный синтаксис. • Взамен многочисленных разрозненных способов представления информации и данных появился один универсальный синтаксис, который лег в основу передачи информации между программами, работающими в компьютерных сетях. Актуальность использования XML данных • Почти все современные приложения связаны в той или иной степени с XML. – формируют XML для использования другими приложениями или компонентами или – используют XML, созданный другими приложениями. • Все разработчики ПО осознанно или не осознанно, работают с XML. – Например, .NET приложения используют XML файлы для хранения информации о конфигурации. – ASP.NET web страницы являются XML документами. – Почти все современные web-сайты генерируют и публикуют информацию в виде XML поставок (feeds) (RDF, RSS, ATOM, OPML и т.п.). • Изменения в последнее время архитектур приложений способствовало широкому признанию XML. – Архитектуры, ориентированные на сервисы (Service-oriented architecture, SOA) способствовали использованию XML Web Services. – AJAX (Asynchronous JavaScript and XML) стал базовым требованием к почти каждому современному web приложению. – XHTML стал стандартным языком для всех web страниц. Синтаксис метаязыка XML • Метаязык XML представляет собой набор правил для создания разработчиками конкретных (специализированных) языков разметки и описания с их помощью информации в виде объектов данных, называемых XMLдокументами. • Такие документы могут хранится в отдельных файлах или в полях записей баз данных, а также могут передаваться между программами в виде сообщении. • XML-документы состоят из единиц хранения, называемых элементами, которые содержат либо грамматически анализируемые, либо не анализируемые данные. Пример XML-документа <?xml version="1.0" encoding="utf-8"?> <Склад> <книга наличие=”да”> <название>Приключения тома Соера</название> <автор>Марк Твен</автор> <страниц>298</страниц> <цена>155</цена> </книга> <книга наличие=”нет”> <название>Moby-Dick</название> <автор>Herman Melville</автор> <страниц>605</страниц> <цена>210</цена> </книга> <книга наличие=”да”> <название>The Scarlet Letter</название> <автор>Nathaniel Hawthorne</автор> <страниц>253</страниц> <цена>88</цена> </книга> </Склад> Иерархическая структура элементов рассмотренного XML-документа Для описания информации с использованием метаязыка XML нужно: • сформировать некоторый конкретный язык разметки; • описать его синтаксис – если требуется возможность формальной проверки правильности составления XML-документов их пользователями; • составить описание информации в виде XMLдокумента (или набора документов), которые могут храниться – в виде файлов или – в базах данных, или – передавать по компьютерным сетям (в виде содержания сообщений). Описание синтаксиса (схемы) конкретного языка разметки включает: • набор имен элементов; • правила вложенности одних элементов в другие элементы (составные); • набор имен атрибутов и их связь с элементами. Основные правила метаязыка XML • В общем случае, описание XML-документа составляется в соответствии с двумя наборами правил: – Основные правила метаязыка XML. – Правила (синтаксис) конкретного языка разметки. Основные правила метаязыка XML 1. XML-документ должен начинаться с XML–объявления для программы, выполняющей его обработку (XMLпроцессора). Например: <?xml version="1.1"?> В XML версии 1.0 XML-объявление может быть опущено, в версии XML 1.1 оно обязательно. 2. XML-документ состоит из элементов, каждый из которых выделяется начальным (открывающимся) тэгом и конечным (закрывающимся) тэгом. Например: <book> … </book> 3. Начало каждого тэга выделяется символом '<', а конец – символами '>'. Между этими символами записывается имя элемента. Например: <адрес> или <прибор>. 4. Имя элемента в конечном тэге должно в точности соответствовать имени элемента в начальном тэге, но начинаться с символа слэш ‘/’. Например: </адрес> или </прибор>. 5. В XML не разрешается опускать конечный тэг – даже в том случае, когда обрабатывающая программа может определить, где заканчивается элемент. Не правильно: <p>первый параграф<p>второй параграф</p> Правильно: <p>первый параграф</p><p>второй параграф</p> 6. Если в элементе нет содержания, то данный элемент может записываться в виде элемента, который заканчивается '/>'. Например: <br/> 7. Элементы XML-документа могут вкладываться друг в друга, но только целиком. То есть, если элемент начинается внутри другого элемента, он должен и заканчиваться внутри данного элемента. Не правильное вложение одного элемента в другой: <b><i>This text is bold and italic</b></i> Правильное вложения элемента: <b><i>This text is bold and italic</i></b> 8. Должен быть только один элемент самого верхнего уровня (корневой элемент), в который вложен все другие элементы документа. 9. В начальном тэге за именем элемента могут записываться атрибуты в виде пар “имя_атрибута=значение”, разделенных пробелами. Например: <прибор id="01318013">. 10.Все значения атрибутов элементов должно заключаться в кавычки (одинарные или двойные). Не правильно: <note date=12/11/2007> Правильно: <note date="12/11/2007"> 11. Если значение атрибута само содержит двойные кавычки, то для его выделения можно использовать одиночные кавычки. Например: <автомобиль марка=' Лада "Калина" '> 12. Каждый XML элемент может содержать (между начальным и конечным тэгами): – другие XML элементы; – текст; – комбинацию элементов и текста. • Документы, составленные в соответствии с базовыми правила метаязыка разметки XML, называются правильно-сформированными (well-formed). – Только правильно-сформированные описания информации называются XML-документами. • Правильно-сформированные документы, которые соответствуют формальным правилам синтаксиса (структуры, схемы) конкретного языка разметки, называются действительными (валидными, valid). Структура XML-документа Пример сложного элемента в XML документе Структура элемента XML документа • Элемент обычно состоит из начального тэга, содержимого и конечного тэга: • Имя, записанное в начальном тэге, должно в точности соответствовать имени в конечном тэге, включая регистр, в котором набраны буквы. Так, следующий элемент является некорректным. <Title>Chapter one </title> <!-- НЕ корректно. --> Имена элементов • При добавлении элемента в XML-документ можно выбрать любое желаемое имя, руководствуясь следующими правилами: – имя должно начинаться с буквы или с символа подчеркивания (_), после чего могут использоваться буквы, цифры, символы точки (.), тире (–) или подчеркивания; – в спецификации XML указано, что имена типов элементов, которые начинаются с префикса "xml" (при любом сочетании строчных или прописных букв), "зарезервированы для стандартных имен". • Примеры правильного задания имен типов элементов: Part _lstPlace A B-SECTION Street.Address.1 • Следующие имена использовать недопустимо: 1stPlace B Section B/Section :Chapter A:Section <!-- В качестве первого символа нельзя использовать цифру --> <!-- Пробел внутри имени не разрешается --> <!-- Косая черта внутри имени не разрешается --> <!-- Двоеточие нельзя использовать в качестве первого символа --> <!-- В IE5 допускается, только если вы объявили А как пространство имен --> Пустые элементы • В XML документе могут записываться пустые элементы – т.е. элементы, не имеющий содержимого. • Пустой элемент создается путем размещения конечного тэга сразу же после начального тэга. – Например: <HR></HR> или <HR /> Назначение пустых элементов • Для указания XML-приложению выполнить действие или отобразить объект. – например: HTML пустой элемент BR - указывает браузеру вставить разрыв строки; пустой элемент HR указывает на вставку горизонтальной разделительной линии. – другими словами, само присутствие элемента с определенным именем – без какого-либо содержимого – может послужить важной информацией для приложения; • Для задания атрибутов. – Аналогом в HTML является пустой элемент IMG (вставка изображения), содержащий атрибуты, которые сообщают процессору, где искать графический файл и как его отобразить. Задание имен элементов и атрибутов • При добавлении элемента в конкретный язык разметки можно использовать любое желаемое имя, которое соответствует следующих правилам: – имена не могут содержать пробелы; – имя должно начинаться с буквы или с символа подчеркивания ‘_’, после чего могут использоваться буквы, цифры или подчеркивания; – следует избегать использовать символы ‘-’, ‘:’ и ‘.’, т.к. обрабатывающие программы могут понимать их не правильно; – имена не могут начинаться с букв ‘xml’ (или XML, или Xml, и т.п.); – следует помнить, что имена являются чувствительными к регистру, т.е. маленькие и большие буквы являются разными символами. • Например, TITLE и Title это разные имена. Типы содержимого элемента • Содержимым элемента считается все, что, расположено между его начальным и конечным тэгами. • В качестве содержимого элемента может использоваться следующее: – вложенные элементы – элементы, которые расположены между открывающимся и закрывающимися тэгами. • Например, в элемент «книга» имеют такие вложенные элементы, как «название», «автор», «страница» и «цена»; – символьные данные – это текст, задающий информационное содержание элемента, например, название определенной книги в элементе «книга»; – сочетание вложенных элементов и символьных данных. Типы содержимого элемента • вложенные элементы Типы содержимого элемента • символьные данные Типы содержимого элемента • смешанное содержание • Программа, обрабатывающая XML-документы (синтаксический анализатор) ищет в символьных данных элемента XML-разметку. • Поэтому в составе символьных данных нельзя использовать символ «меньше» ‘<’, амперсенд ‘&’ или строку “]]>”. • Символы ‘<’ или ‘&’ можно записывать в содержании XML-документа без использования ссылок если они включены в раздел CDATA (рассмотрим далее). – В данном разделе также можно использовать любые символы (в том числе такие, которых нет на клавиатуре), воспользовавшись ссылкой на символ. Ссылки на символьные сущности • Пробелы в XML документе сохраняются, а не сжимаются до одного пробела, как в языке HTML. • В XML документе могут записываться пустые элементы – т.е. элементы, которые не имеют содержимого. • Пустой элемент создается путем размещения конечного тэга сразу же после начального тэга. – Например: <hr></hr> или <hr />. – Оба таких способа записи являются эквивалентными. Атрибуты элементов • В тэги элементов можно включать один или несколько описаний атрибутов. • Описание атрибута представляет собой пару «имя = значение». – Например, следующий элемент PRICE включает атрибут с именем Type, которому присвоено значение retail: <PRICE Type="retail">$10.95</PRICE> • Следующий элемент BOOK включает два атрибута, Category и Display: <BOOK Category="fiction" Display="emphasize"> <TITLE>The Marble Fauh</TITLE> <AUTHOR>Nathaniel Hawthorne</AUTHOR> <BINDING>trade paperback</BINDING> <PAGES>473</PAGES> <PRICE>$10.95</PRICE> </BOOK> • Пустой элемент может включать атрибуты. – Например : <COVER_IMAGE Source="Faun.gif" /> • Задание атрибутов обеспечивает альтернативный способ включения информации в элемент. • Обычно все относящиеся к элементу данные задаются внутри содержимого элемента. • Атрибуты же используются для хранения различных свойств элемента, которые не обязательно будут показаны – Например, категория, или указания по отображению. • В спецификации XML не задано строгое разделение типа информации, которую можно описывать с помощью атрибутов или внутри содержимого элемента. Правила для создания атрибутов • Описание атрибута состоит из имени атрибута, вслед за которым идет знак равенства и значение атрибута. • Имя атрибута можно задавать любое, придерживаясь при этом следующих правил: – имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать или не следовать другие буквы, цифры, символы точки (.), тире (-) или подчеркивания; – спецификация XML оговаривает, что имена атрибутов, начинающиеся с префикса "xml" (в любом сочетании строчных или прописных букв), "зарезервированы для стандартного использования"; – каждое имя атрибута может только один раз присутствовать в одном и том же начальном тэге или в тэге пустого элемента. Пример атрибутов • Например, следующие описания имен в стартовых тэгах являются допустимыми: <ANIMATION Filename="Waldo.ani"> <LIST _1stPlace="Sam"> <ENTRY Zip.Code="94941"> • Приведенные ниже имена атрибутов недопустимы: <!-- Дублирование имени атрибута внутри одного тэга: --> <ANIMATION Filename="Waldo1.ani" Filename="Waldo2.ani"> <LIST 1stPlace="Sam"> <!-- Первый символ не может быть цифрой --> <ITEM A:Category="cookware"> <!--B IE5 допускается, только если вы объявили А как пространство имен --> Правила для корректного задания значений атрибутов • Значение, которое вы присваиваете атрибуту, представляет собой группу символов, ограниченных кавычками, называемую также литералом. • Можно присвоить атрибуту в качестве значения любой литерал, придерживаясь при этом следующих правил: – строка может быть заключена как в одинарные ('), так и в двойные кавычки ("); – строка не может содержать внутри себя тот же символ кавычек, которыми она ограничена; – строка может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения; – строка не может содержать символ < (Синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.) – строка не может содержать символ &, если это не ссылка на символ или примитив. • В спецификации XML не задано строгое разделение типа информации, которую можно описывать с помощью атрибутов или внутри содержимого элемента. • Некоторые специалисты рекомендуют в таких ситуациях использовать элементы, а не атрибуты: – элементы могут содержать много значений, а атрибуты могут иметь только одно значение; – элементы могут содержать вложенные иерархические структуры, а элементы могут содержать только текстовую строку; – атрибуты трудно расширить для будущего использования; – атрибуты труднее читать и поддерживать. • Однако не следует использовать такое описание: < заметка день="10" месяц="01" год="2008" для="Tove" от="Jani" заголовок="Напоминание" содержание=" Не забудь о встрече!"> </note> • Чаще всего атрибуты используются только для данных, которые не включается в содержание элемента, а являются метаданными. Например: <заметка id="502"> <для_кого>Женя</для_кого> <от_кого>Петя</от_кого> <заголовок>Напоминание</заголовок> <содержание>Не забудь о встрече!</содержание> </заметка> • В данном случае атрибут id используется для идентификации разных заметок и не является частью самой заметки. Дополнительные элементы XMLдокументов • Кроме элементов и их содержания в XMLдокумент можно включать: – инструкции для программ, обрабатывающих XMLдокументы; – комментарии; – не анализируемые разделы. XML-процессоры • XML-процессор – это программный модуль, считывающий XML-документ и обеспечивающий доступ к его содержимому. • Он также предоставляет этот доступ другим программным модулям, или приложениям, которые манипулируют и отображают содержимое документа. • Браузеры включают XML-процессоры. • При использовании HTML сценариев можно выполнять работу с результатом выполнения XML-процессора. Инструкций по обработке • Инструкции по обработке предназначены для передачи информацию, XML-процессором приложения. • Инструкция по обработке имеет следующую общую форму записи: <?Кому инструкция ?> – Кому - это имя приложения, которому адресована инструкция. • Допускается любое имя при соблюдении стандартных правил задания имен тэгов. – Инструкция - это информация, которая передается приложению. • Она может состоять из любой последовательности символов, за исключением пары ?>, зарезервированной для обозначения окончания инструкции по обработке. Объявление XML-документа • В данной строке также могут использоваться дополнительно два атрибута: encoding и standalone. <?xml version="1.0" encoding="windows-1251" standalone="yes"?> • Атрибут encoding задает способ кодировки символов документа. • По умолчанию используется кодировка UTF-8 c набором символов Unicode. – XML-процессоры могут работать и с другими кодировками, например, encoding="windows-1251". • Атрибут standalone указывает, связан ли данный документ с документом на языке DTD, описывающим синтаксис (схему) используемого конкретного языка разметки для проверки правильности составления данного документа. • Значение по умолчанию “no” - XML-процессору может потребоваться прочитать внешний DTD-файл для определения правильности составления XML-документа. • XML-документы, не имеющие DTD-описания, обычно используют значение “yes” для атрибута “standalone”. Комментарии • С помощью Комментарий можно создавать понятные XML документы. Они могут помочь понять XML-документ (как комментарии в исходном коде программы на языке С или BASIC). • Комментарий – начинается с символов <!-– и заканчивается символами -->. • Между этими двумя ограничителями вы можете поместить любые символы, за исключением двойного тире (--). • Можно вставлять внутри комментария символ левой угловой скобки (<) и знак амперсенда (&). – Например: <!-- Здесь вы можете поместить любой текст, за исключением двойного тире. Символы < и & также допустимы! --> Пример комментариев • Комментарий могут вставиться в любое место в XML-документе, но вне описания разметки. – Например: <?xml version="1.0" encoding="windows-1251" ?> <DOCUMENT> This is a very simple XML-document. </ DOCUMENT> <!-- Это комментарий, следующий за элементом Документ. -->. Разделы CDATA • Внутри символьных данных в содержимом элемента, нельзя помещать символ левой угловой скобки (<) или знак амперсанда (&). • Одним из способов преодолеть это ограничение является – использование ссылки на символ (&#60; или &#38;), – либо на предопределенный общий примитив (&lt; или &amp;). • Однако в том случае, если требуется многократно вставлять символы < или &, то ссылок использовать неудобно и они затрудняют понимание данных. • В этом случае проще поместить текст, содержащий такие символы, в раздел CDATA. Типы содержимого элемента • Разделы CDATA – это текстовый блок, в котором вы можете свободно размещать любые символы, за исключением строки ]]>. • Раздел CDATA начинается с символов <![CDATA[ и заканчивается символами ]]>. • Ключевое слово CDATA (как и другие ключевые слова XML) должно быть набрано прописными буквами. • Между этими двумя ограничителями можете размещать любые символы (включая <или &), за исключением ]]> (что будет интерпретировано как конец раздела CDATA). • Все символы внутри раздела CDATA рассматриваются, как литеральная часть символьных данных элемента, а не XMLразметка. • Пример правильно записанного раздела CDATA: <![CDATA[ Здесь можно разместить любые символы, за исключением двух правых квадратных скобок с последующим знаком "больше". ]]> Пространства имен (namespaces) • При составлении XML-документа можно использовать разные конкретные языки разметки. – Например, XML-документ может содержать и рисунки на языке SVG, и формулы на языке MathML. – Оба этих языка используют элемент set (множество). • Для того, чтобы указать, к какому конкретному языку принадлежат используемые элементы применяются пространства имен. • В данном случае, под пространством имен понимается именованная совокупность имён элементов и атрибутов, служащая для обеспечения их уникальности в XML-документе. Смешивание разных конкретных языков Для смешивания разных конкретных языков разметки в одном документе используются : name spaces Default ‘type’ <?xml version="1.0" encoding="iso-8859-1"?> is xhtml <html xmlns="http://www.w3.org/1999/xhtml1" xmlns:mt=“http://www.w3.org/1998/mathml” > <head> <title> Title of XHTML Document </title> </head><body> <div class="myDiv"> <h1> Heading of Page </h1> <mt:mathml> <mt:sup> ...… MathML markup … </mt:mathml> <p> more html stuff goes here </p> </div> </body> mt: prefix indicates </html> 'type' mathml (a different language) Унифицированные идентификаторы ресурса URI • В XML-технологии для задания пространств имен используются унифицированные идентификаторы ресурса URI (Uniform Resource Identifier), с которым связывается конкретный язык разметки. • Идентификатор URI это символьная строка, позволяющая идентифицировать некоторое ресурсы web-сети или абстрактные понятие: документ, изображение, файл, службу, ящик электронной почты, понятия «сотрудник», «студент» и т.п. • URI является расширяемым способом идентификации, т.к. уже существуют разные схемы идентификации, и пользователи могут создаваться новые схемы. Две основные схемы описания URI • URL (Uniform Resource Locator) это URI, в котором ресурсы идентифицируются с помощью описания способа доступа к ним (т.е., их расположения в сети), а не путем задания имени или каких-то других атрибутов этих ресурсов. – Примерами URL являются: http://www.cctpu.edu.ru/kms/ или ftp://www.tpu.ru/; • URN (Uniform Resource Name) это идентификация ресурсов по имени в некотором локальном пространстве имён (и, соответственно, в определённом контексте). • URN позволяют идентификаторам оставаться глобально уникальными и неизменными, даже в тех случаях, когда ресурсы перестают существовать или становятся недоступными. – Примерами URN являются: urn:ISBN:0-395-36341-1 (международный стандартный книжный номер) или [email protected] (адрес электронной почты). Префиксы • В тексте XML-документов URI идентификаторы языков разметки непосредственно для задания элементов и атрибутов не используются. • Вместо URI используются, соответствующие им краткие строки – префиксы, такие как rdf и xsl. • Каждый префикс ставится в соответствие только одному URI. • Префиксы могут содержать любые символы, допустимые в метаязыке XML, кроме двоеточия. • Префиксы, начинающиеся тремя символами xml (в любой комбинации регистров), зарезервированы для использования XML и относящимися к нему спецификациями. Уточненные имена (qualified name, Qname) • Для точного указания, что элемент XMLдокумента относиться к некоторому конкретному языку разметки (к его пространству имен) нужно перед его именем указать префикс. • Префикс отделяется от имени элемента двоеточием ‘:’. – Например: rdf:description; XLink:type или xsl:template. • Полное имя элементов XML-документа, включая двоеточие, называется уточненным именем (qualified name) или QName. Примеры префиксов и URI некоторых, широко используемых конкретных языков разметки Реальное использование XML • • • • • • • • • • Структурирование документов. Работа с базами данных. Работа с векторной графикой (VML – Vector Markup Language). Мультимедиа презентации (SMIL – Synchronized Multimedia Integration Language, HTML + TIME – HTML Timed Interactive Multimedia Extensions). Описание каналов – автоматическая рассылка подписчикам XML файлов с новостями сайта (CDF – Channel Definition Format). Описание программных пакетов и их взаимосвязей - для распространения и обновления программных продуктов в сети (OSD – Open Software Description). Поддержка Web сервисов для взаимодействия приложений - сообщения являются независимыми от операционных систем, объектных моделей и компьютерных языков. (SOAP – Simple Object Access Protocol). Обмен финансовой информацией. Обмен информацией в открытом и понятном формате осуществляется между финансовыми программами (такими как Quicken и Microsoft Money) и финансовыми институтами (банками, общественными фондами) (OFX – Open Financial Exchange). Создание, управление и использование сложных цифровых форм для коммерческих Internet-транзакций. Подобные формы могут включать оцифрованные подписи, которые делают их признанными юридически. (XFDL – Extensible Forms Description Language). Обмен запросами по приему на работу и резюме (HRMML – Human Resource Management Markup Language). Реальное использование XML (2) • • • • • • • • • • • • Форматирование математических формул и научной информации в Web. (MathML – Mathematical Markup Language). Описание молекулярных структур (CML – Chemical Markup Language). Кодирование и отображение информации о ДНК, РНК и цепочках (BSML – Bioinformatic Sequence Markup Language). Кодирование генеалогических данных (GeDML – Genealogical Data Markup Language). Обмен астрономическими данными (AML – Astronomical Markup Language). Описание музыкальных партитур (MusicML –Music Markup Language). Работа с голосовыми сценариями для доставки информации по телефону. Голосовые сценарии могут быть использованы, например, для генерирования голосовых сообщений, справок о наличии товаров и прогнозов погоды (VoxML). Представление рекламы в прессе в цифровом формате (Ad Markup). Заполнение юридических документов и электронный обмен юридической информацией (XCL – XML Court Interface). Кодирование прогнозов погоды (OMF – Weather Observation Markup Format). Обмен новостями и информацией с использованием открытых Web-стандартов (XMLNews). Представление религиозной информации и разметка текстов богослужений (ThML – Theological Markup Language, LitML – Liturgical Markup Language).