Языки описания информации Введение в дисциплину Лекция 1. Кафедра «ОСУ»

реклама
Кафедра «ОСУ»
Весенний семестр 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
• Внутри символьных данных в содержимом элемента,
нельзя помещать символ левой угловой скобки (<) или
знак амперсанда (&).
• Одним из способов преодолеть это ограничение
является
– использование ссылки на символ (< или &),
– либо на предопределенный общий примитив (< или
&).
• Однако в том случае, если требуется многократно
вставлять символы < или &, то ссылок использовать
неудобно и они затрудняют понимание данных.
• В этом случае проще поместить текст, содержащий
такие символы, в раздел 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
(международный стандартный книжный номер) или
IvanovAP@mail.ru (адрес электронной почты).
Префиксы
• В тексте 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).
Скачать