Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-03.doc
Скачиваний:
6
Добавлен:
12.05.2015
Размер:
261.12 Кб
Скачать

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).

Соседние файлы в папке Лекции