Языки информационного обмена

         

Определение новых типов простых элементов


Кроме встроенных типов в схемах XML можно определить новые типы простых элементов. Они вводятся как

  1. сужение (restriction) встроенного или ранее определенного простого типа,
  2. список (list) простых типов
  3. объединение (union) простых типов.

Сужение простого типа определяется компонентом restriction, в котором атрибут base указывает сужаемый простой тип, а в содержимом задаются ограничения, выделяющие определяемый простой тип.

Теги задающие ограничения, называются фасетками (facets). Вот их список:

  1. <maxExclusive> - наибольшее значение, которое уже не входит в определяемый тип;
  2. <maxInclusive> - наибольшей значение определяемого типа;
  3. <minExclusive> - наименьшее значение, уже не входящее в определяемый тип;
  4. <minInclusive> - наименьшее значение определяемого типа;
  5. <totalDigits> - общее количество цифр в определяемом числовом типе - сужении типа decimal;
  6. <fractionDigits> - количество цифр в дробной части числа;
  7. <length> - длина значений определяемого типа;
  8. <maxLength> - наибольшая длина значений определяемого типа;
  9. <minLength> - наименьшая длина значений определяемого типа;
  10. <enumeration> - одно из перечислимых значений;
  11. <pattern> - регулярное выражение;
  12. <whitespace> - применяется при сужении типа string и определяет способ преобразования пробельных символов <'>\n<'>, <'>\r<'>, <'>\t. Атрибут value этого тега принимает одно из трех значений:
    • preserve - не убирать пробельные символы;
    • replace - заменить пробельные символы пробелами;
    • collapse - после замены пробельных символов пробелами убрать начальные и конечные пробелы, а из нескольких подряд идущих пробелов оставить только один.

В тегах-фасетках можно записывать следующие атрибуты, называемые базисными фасетками (fundamental facets):

  1. ordered- задает упорядоченность определяемого типа, принимает одно из трех значений:
    • false - тип неупорядочен;
    • partial - тип частично упорядочен;
    • total - тип полностью упорядочен;

  2. bounded - задает ограниченность или неограниченность типа значением true или false;
  3. cardinality - задает конечность или бесконечность типа значением finite или countably infinite;
  4. numeric - показывает, числовой этот тип или нет, значением true или false.

Список определяется компонентом list, в котором атрибутом itemType указывается тип элементов определяемого списка. Тип элементов списка можно определить и в содержимом элемента list.

При определении списка можно применять фасетки <length>, <minLength>, <maxLength>, <enumeration>, <pattern>.

Простой тип-объединение определяется компонентом union, в котором атрибутом memberTypes можно указать имена объединяемых типов. Например:

<xsd: union memberTypes="xsd: string xsd; integer lisstOfInteger" />

Другой способ - записать в содержимом компонента union определения простых типов, входящих в объединение.



Содержание раздела