
- •Лекция 4-03
- •Тема 4.2. Схемы xml
- •Тема 4.2. Схемы xml
- •4.2.1. Формирование описания документа с помощью схем
- •4.2.2. Задание данных в схемеXml
- •4.2.2.1. Типы данных в схеме xml
- •4.2.2.2. Компоненты типов данных в схеме xml
- •4.2.2.3. Свойства типов данных в схеме xml
- •4.2.3. Встроенные типы данных схемыXml
- •4.2.3.1.4. Представление шестнадцатеричных данных
- •4.2.3.1.5. Представление продолжительности, даты и времени
- •2002-12-30T13:20:00
- •4.2.3.1.6. ПредставлениеUri
- •4.2.3.2.2. Производные числовые типы данных
- •4.2.4. Компоненты схемыXml
- •4.2.5. Объявление аннотации в схемеXml
- •4.2.5.1. Элементannotation
- •4.2.5.2. Элементdocumentation
- •4.2.1.3. Элементappinfo
- •4.2.6. Определение простого типа в схемеXml
- •4.2.6.1. ЭлементsimpleType
- •4.2.6.2. Элементы ограничивающих свойств
- •4.2.6.2.1. Элемент length
- •4.2.6.2.2. Элементы minLength и maxLength
- •4.2.6.2.3. Элементpattern
- •4.2.6.2.4. Элементenumeration
- •4.2.6.2.5. ЭлементwhiteSpace
- •4.2.6.2.6. ЭлементыminExclusive иmaxExclusive
- •4.2.6.2.7. ЭлементыminInclusive иmaxInclusive
- •4.2.6.2.8. ЭлементыtotalDigitsиfractionDigits
- •4.2.6.3. Элементrestriction
- •4.2.6.4. Элементlist
- •4 4 5 3
- •3 3 1 3
- •4.2.1.5. Элементunion
4.2.2. Задание данных в схемеXml
4.2.2.1. Типы данных в схеме xml
В отличие от DTD, в схемеXMLопределены различные типы данных.Типы данныхв этой схеме разделяются на:
атомарные (atomic) наборы данных;
списки (list);
объединения (unions).
Атомарные типы данных содержат одно данное и в свою очередь делятся на примитивные и производные (определяемые в терминах других типов данных).
Список является конечным набором атомарных значений. Список является производным типом данных и используемый в нем атомарный тип данных определяется как itemType. Элементы списка в наборе отделяются друг от друга пробельными символами.
В отличие от списка, объединение включает в себя элементы различных типов данных (эти типы данных определяются в списке типов memberTypesданного объединения). Значение данного, определенного как объединение, должно быть одного из типов, определенных в списке. Так же, как и список, объединение является производным типом данных.
Типы данных разделяются также на встроенные (определены спецификации схемы XML) и пользовательские типы данных – типы данных, определяемые пользователем для своей конкретной схемы.
4.2.2.2. Компоненты типов данных в схеме xml
Тип данных в схеме XMLвключает три компонента:
набор значений, называемый пространством значений (value space);
набор лексических представлений, называемый лексическим пространством (lexical space);
набор свойств (facets), характеризующих пространство значений.
Каждое значение в пространстве значений типа данных обозначается одним или несколькими литералами в лексическом пространстве.
Пространство значений типа данных может быть определено одним из следующих способов:
автоматически из фундаментальных соображений;
перечислением;
ограничением пространства значений уже определенного типа данных к заданному подмножеству с заданным набором свойств;
как комбинация значений одного или более уже определенных пространств значений, полученной с помощью процедуры конструирования.
Лексическое пространство представляет собой набор действительных литералов для данного типа данных. Например, 100и1.0E2являются двумя различными литералами из лексического пространстваfloat, которые обозначают одну и ту же величину. Учитывая данную неоднозначность в схемеXMLвведено каноническое лексическое представление – это такой набор литералов из допустимого полного набора литералов для данного типа, для которого существует однозначное соответствие между литералами в этом представлении и значениями в пространстве значений.
4.2.2.3. Свойства типов данных в схеме xml
Каждое свойство типа данных характеризует пространство значений по независимым осям или измерениям. В схеме XMLтипы данных определяются как объединение значений свойств, которые совместно задают пространство значений и свойства типа данных.
Существуют два типа свойств: фундаментальные свойства, определяющие тип данных, и не фундаментальные, или ограничительные, свойства, которые ограничивают разрешенные значения для типа данных.
Фундаментальными свойствами являются следующие свойства:
equal(равенство и неравенство величин в пространстве значений);
ordered(полное или частичное отношение упорядоченности величин в пространстве значений);
bounded(ограниченность пространства значений по минимуму, по максимуму или и по минимальному и по максимальному значению);
cardinality(конечность или счетная бесконечность пространства имен);
numeric(тип данных является числовым или нечисловым).
В схеме XMLопределены следующие ограничивающие свойства:
length(длина – зависит от типа данных, например для строки – количество символов в строке, для списка – количество элементов списка);
minLengthиmaxLength(минимальное и максимальное значение свойстваlength);
pattern(шаблон – регулярное выражение, ограничивающее пространство значений, для формирования шаблона используются те же правила, что и в языкеPerl);
enumeration(ограничение пространства имен с помощью заданного набора значений);
whiteSpace(ограничивает пространство значений типов данных, производных от типаstring, причем свойство может иметь одно из трех значений:preserve– строка не меняется,replace– символы табуляции, новой строки и возврата каретки заменяются пробелами,collapse– после обработки строки, производимой для значенияreplace, в строке удаляются все пробелы в начале и конце строки, а также несколько пробелов внутри строки заменяются одним пробелом);
maxInclusiveи minInclusive(включающая верхняя и нижняя граница пространства значений для набора данных со свойствомordered,т.е. значение границы входит в пространство значений);
maxExclusiveи minExclusive(исключающая верхняя и нижняя граница пространства значений для набора данных со свойствомordered,т.е. значение границы не входит в пространство значений);
totalDigitsиfractionDigits(положительные числа, определяющие максимальное количество цифр в числе и его дробной части для типов данных, производных отdecimal).