XML и XSLT (4) Матросов Александр Васильевич Санкт-Петербургский государственный университет.

Презентация:



Advertisements
Похожие презентации
Основы XML Презентация 6 – XML Schemas T-Systems CIS, 2011.
Advertisements

XSD XML Schema Definition среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.
Java Advanced Описание и проверка структуры XML. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Содержание 1.DTD 2.XML.
XML и XSLT (2) Матросов Александр Васильевич Санкт-Петербургский государственный университет.
Алфавит и синтаксис языка программирования Visual Basic.
DTD Document Type Definition среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013.
Данные в программах и алгоритмах Программы и их алгоритмы пишутся для обработки данных. Чтобы реализовать алгоритм, программам необходимо работать с данными.
Языки описания информации Лекция 3. Кафедра «ОСУ» Весенний семестр 2010/2011 уч. года XML Schema и XLink.
Введение в программирование. Машина должна работать, человек - думать. Принцип IBM Преподавание программирования - дело почти безнадежное, а его изучение.
Работу выполнили ученицы 9 «Б» класса Гордеева Татьяна и Шебаршова Рита.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Переменные, величины Переменные, величины Типы, имена переменных Типы, имена переменных Хранение величин Хранение величин Переменные, величины Переменные,
Тип, имя и значение переменной Урок в 10 классе. Тип переменной Возможные значенияОбъём занимаемой памяти Приставка к имени ByteЦелые числа от 0 до 2551.
Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
Основы языка Pasсal.
Схема XML-Data Reduced (XDR). Рассматриваются следующие темы для изучения: 1. Что такое схемы XDR. Различие между схемами DTD и другими схемами, такими.
Тип, имя и значение переменной. В объектно-ориентированных языках программирования переменные играют такую же важную роль, как и в процедурных языках.
Оператор ввода с клавиатуры Переменные величины. В большинстве случаев при решении задач в ходе работы программы, оператору описания необходимо менять.
Описание переменных в языке Visual Basic Презентацию подготовила учитель информатики МБОУ СОШ 3 г. Светлого Нетесова Н. А.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Транксрипт:

XML и XSLT (4) Матросов Александр Васильевич Санкт-Петербургский государственный университет

2 Действительный XML-документ Жалобы пользователей: –Сложность определений DTD –Необходимость изучения нового языка Схемы XML сложнее определений DTD, но их возможности богаче: –Определить структуру документа (как и DTD) –Задать фактические типы данных каждого элемента (в DTD только #PCDATA) –Наследовать структуру других схем –Создавать простые и составные типы данных –Минимальное и максимальное появление элемента в документе –Ограничивать диапазоны значений –Возможность определения уникальности любого атрибута Спецификации можно найти – - учебник для начинающих – - структуры XML-схем, формальные подробности их создания – - типы данных XML-схем, все о типах данных, используемых в схемах

3 XML-схемы в Internet Explorer MSXML 4.0 и выше (msxml4.dll) function runParser(xmlFileName, namespace, xsdFileName){ var xmlSchema = new ActiveXObject("Msxml2.XMLSchemaCache.5.0"); try{ xmlSchema.add(namespace, xsdFileName); }catch(e){ output.innerHTML = "Название ошибки: " + e.name + " "+ "Сообщение ошибки: " + e.message + " "+ "Вспомогательный код ошибки: " + (e.number>>16 & 0x1FFF) + " " + "Истинный код ошибки: " + (e.number & 0xFFFF) + " " + "Номер ошибки: "+e.number return; } var xmlDoc = new ActiveXObject("Msxml2.DomDocument.5.0"); xmlDoc.async = false; xmlDoc.schemas = xmlSchema; xmldoc.validateOnParse = true; xmlDoc.load(xmlFileName); if(xmlDoc.parseError.errorCode != 0){ output.innerHTML = xmlDoc.parseError.errorCode + " " + xmlDoc.parseError.reason; } else{ output.innerHTML = "Ошибок в xml-документе нет!"; } }

4 Простой пример (1) DTD XML-документ --> The Waste Land April is the cruellest month, breeding Lilacs out of the dead land

5 Простой пример (2) XML-схема

6 Встроенные примитивные типы данных (1) Разработан язык определения XML-схем (XML Schema Definition Language – XSDL) Типы данных языков программирования –string – строка символов (CDATA) –boolean – false ( 0 ) или true ( 1 ) –decimal – вещественные числа произвольной точности –float – одинарной точности 32-битные вещественные числа –double – двойной точности 64-битные вещественные числа Типы данных XML –anyURI – URI (URN+URL) –QName – строка, квалифицированная префиксом пространства имен prefix:строка –NOTATION – соответствует XML-типу NOTATION атрибута Двоичные типы данных –hexBinary – двоичные данные в шестнадцатеричной нотации –base64Binary – base-64 закодированные данные Длительности (периоды времени) –P начальный префикс – Y – года; M – месяца; D – дней; –T символ, после которого отсчет минут, секунд и т.д. – H – часов; M – минут; S – секунд;

7 Встроенные примитивные типы данных (2) Даты и время –date – дата в формате YYYY-MM-DD (отрицательные -YYYY-MM-DD даты до новой эры) –time – время в формате hh:mm:ss (секунды могут иметь дробную часть), если время по UTC (или GMT), то добавить в конце суффикс Z, можно добавить + или - и после них смещение относительно Гринвича hh:mm –dateTime – комбинация двух предыдущих типов Повторяющиеся даты –gDay – день месяца в формате ---DD (8 день каждого месяца ) –gMonth – месяц в формате --MM (июнь --06 ) –gMonthDay – месяц и день в формате –MM-DD (3 июня ) –gYear – год в формате YYYY (минус – до нашей эры) –gYearMonth – год и месяц в формате YYYY–MM (минус – до нашей эры)

8 Производные типы данных (1) Целые –integer – любое целое –positiveInteger – положительное целое (>0) –negativeInteger – отрицательное целое (<0) –nonPositiveInteger – неположительное целое (<=0) –nonNegativeInteger – неотрицательное целое (>=0) Компьютерные целые –byte – 8-битное (между -128 и 127 ) –unsignedByte – 8-битное (между 0 и 255 ) –short – 16-битное (между и ) –unsignedShort – 16-битное (между 0 и ) –int – 32-битное (между и ) –unsignedInt – 32-битное (между 0 и ) –long – 64-битное (между и ) –unsignedLong – 64-битное (между 0 и )

9 Производные типы данных (2) Типы для XML-атрибутов –ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS Типы для XML-конструкций –Name – имя, начинающееся с буквы, подчеркивания или двоеточия –language – те же значения, что и атрибут xml:lang –NCName – имя без символа двоеточия в нем –normalizedString – строка, в которой символы табуляции и перехода на новую строку заменены пробелами (нормализованная строка) –token – строка, в которой непрерывная последовательность пробельных символов заменена одним пробелом, а лидирующие и замыкающие пробелы удалены

10 Определение новых типов данных (1) Элемент simpleType используется в XSDL для определения пользовательского производного типа Разные способы образования производных типов с помощью специальных дочерних элементов: –list (построение списком) – создается новый тип, значениями которого является список значений исходного типа –union (построение объединением) – новый тип образуется слиянием двух или более типов данных, значениями которого являются данные любого из участвующих в объединении типов –restriction (построение ограничением) – новый тип образуется сужением области допустимых значений исходного типа

11 Определение новых типов данных (2) Списком (обычно множественная форма от имени исходного типа) –Из существующего типа Multiple dates –Из анонимного типа... анонимное определение типа pubDate

12 Определение новых типов данных (3) Объединение – способ комбинирования существующих типов в один, например, объединить даты разных календарей: –григорианские date –Древний календарь ацтеков –Древний календарь иудеев Проблема в объединении типов – литеральные значения могут совпадать (григорианский тип начинается с цифры, а ацтекский и иудейский можно разработать так, что они начнутся, соответственно, с A (Aztec) и H (Hebrew) –... можно добавить к типам в атрибуте memberTypes (или вместо них без указанного атрибута) определение анонимных типов, входящих в объединение При возможности трактовки литерала в нескольких объединяемых типах, приоритет имеет тот, который первый в перечислении, начиная с атрибута memberTypes

13 Определение новых типов данных (4) Ограничение – способ построения нового типа введением ограничений на значения базового встроенного или пользовательского типа Ограничения задаются в единственном элементе restriction, в атрибуте base которого задается ограничиваемый тип Сами ограничения задаются с помощью фиксированного числа способов (ограничивающие фасеты – constraining facets) (их всего 12, разделенных на 6 типов) Фасеты – под элементы элемента restriction Ограничения диапазона –minInclusive, maxInclusive, minExclusive, maxExclusive – Базовый тип можно задать и как анонимный тип через элемент simpleType, определяемый без атрибутов

14 Определение новых типов данных (5) Ограничения длины –Длина для спискового типа (например, IDREFS) – количество элементов в списке –Длина для строкового типа (производного непосредственно или через несколько уровней наследования от типа string) – количество символов в строке –Длина для двоичного типа – количество байт в декодированных двоичных данных –minLength, maxLength, length Ограничения десятичных цифр –Применяются к десятичным числам и типам от них производных –totalDigits и fractionDigits Ограничение перечислением –

15 Определение новых типов данных (6) Фасет whiteSpace –Ограничивает не значения, а процесс обработки –preserve – сохранение процессором при обработке данных пробельных символов –replace – замена процессором при обработке данных любого пробельного символа в пробел –collapse – процессор при обработке данных заменяет непрерывную последовательность пробельных символов одним пробелом, убирая начальные и конечные пробельные символы Фасет pattern (регулярное выражение) –Синтаксис регулярных выражений Perl

16 Определение новых типов данных (7) Фасет pattern (регулярное выражение) –Ограничивает не значения, а процесс обработки –preserve – сохранение процессором при обработке данных пробельных символов –replace – замена процессором при обработке данных любого пробельного символа в пробел –collapse – процессор при обработке данных заменяет непрерывную последовательность пробельных символов одним пробелом, убирая начальные и конечные пробельные символы