Что такое XML? - 2.3 . Простые типы

E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
Что такое XML?
Невозможно найти взаимосвязанные ресурсы.
Применения XML
Структура XML-документа
8.1.3.2. Пролог и директивы
8.1.3.3. Комментарии
8.1.3.4. Имена и данные
Page 8
8.1.3.6. Секции CDATA
Разделы и их декларации
Декларация типа документа
8.1.6. Пример XML-документа
8.2.1. Общие сведения
8.2.2. Декларации типов элементов
8.2.3. Декларации списков атрибутов
8.2.4. Декларации нотаций
8.2.5. Пример DTD
8.2.6. Параметрические разделы
8.2.7. Условные секции
XML-схемы - стандарты, написанные на компьютерном языке
8.3.3. Область действия пространства имен
8.3.4. Базовые URI фрагментов XML-документа
Основные понятия: документ
2.1 Схема заказа на покупку
2.2 Определение комплексных типов, объявление элементов и атрибутов
2.2.1 Ограничение вхождений
2.2.2 Глобальные элементы и атрибуты
2.2.3 Конфликты имен
2.3 . Простые типы
2.3.1 Тип List
2.3.2 Тип Union
2.4 Определение анонимных типов
2.5 Содержимое элемента
2.5.2 Смешанное содержимое
2.5.3 Пустое содержимое
2.6 Аннотации
Page 37
2.8 Группы атрибутов
2.9 Значения Nil
3 Дополнительные понятия I: именные пространства, схемы & квалификация
3.1 Целевые именные пространства и не квалифицируемые локальные объекты
3.2 Квалифицируемые локальные объекты
3.3 Глобальные объявления в сравнении с локальными объявлениями
3.4 Необъявленные целевые именные пространства
4 . Дополнительные понятия II: международный заказ на покупку
4.1 Схема в нескольких файлах
4.2 Получение производных типов расширением
4.3 Использование производных типов в документах
4.4 Производные сложные типы, полученные путем ограничений
4.5 Переопределение типов и групп
4.6 Группы замены
4.7 Абстрактные элементы и типы
4.8 Управление созданием и использованием производных типов
5 Дополнительные понятия III: квартальный отчет
5.1 Определение уникальности
5.2 Определение ключей и ссылок на них
5.3 Ограничения XML-схемы в сравнении с атрибутом ID XML 1.0
5.4 Импортирование типов
5.4.1 Библиотеки типов
5.5 Любой элемент, любой атрибут
5.6 schemaLocation
5.7 Соответствие
A Благодарности
B Простые типы и их фасеты
C Использование сущностей
D Регулярные выражения
Все страницы
2.3 . Простые типы

XML-схема заказа на покупку содержит объявления нескольких элементов и атрибутов простого типа. Некоторые из этих простых типов, например string и decimal встроены в язык XML-схемы, в то время как другие определены специально для данного типа документа. Например, атрибут partNum имеет тип по имени SKU (Stock Keeping Unit), который получен из встроенного простого типа string. Встроенные простые типы, и их вариации могут использоваться в объявлениях элементов и атрибутов. В таблице 2 приводится список простых встроенных в язык XML-схемы типов.

Таблица 2. Список простых типов

Простой тип

Примеры (разграничены запятыми)

Примечания

string

Confirm this is electric

 

normalizedString

Confirm this is electric

см., 3)

token

Confirm this is electric

см., 4)

byte

-1, 126

см., 2)

unsignedByte

0, 126

см., 2)

base64Binary

GpM7

 

hexBinary

0FB7

 

integer

-126789, -1, 0, 1, 126789

см., 2)

positiveInteger

1, 126789

см., 2)

negativeInteger

-126789, -1

см., 2)

nonNegativeInteger

0, 1, 126789

см., 2)

nonPositiveInteger

-126789, -1, 0

см., 2)

int

-1, 126789675

см., 2)

unsignedInt

0, 1267896754

см., 2)

long

-1, 12678967543233

см., 2)

unsignedLong

0, 12678967543233

см., 2)

short

-1, 12678

см., 2)

unsignedShort

0, 12678

см., 2)

decimal

-1.23, 0, 123.4, 1000.00

см., 2)

float

-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN

32-х битовое число однократной точности с плавающей запятой. NaN - число не задано, прим. (2)

double

-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN

64-х битовое число двойной точности с плавающей запятой, см., 2)

boolean

true, false 1, 0

 

time

13:20:00.000, 13:20:00.000-05:00

см., 2)

dateTime

1999-05-31T13:20:00.000-05:00

31 мая 1999 года 13 часов 20 минут Восточноевропейского стандартного времени, которое на 5 часов отстает от Универсального времени. См.,2)

duration

P1Y2M3DT10H30M12.3S

1 год, 2 месяца, 3 дня, 10 часов, 30 минут, и 12.3 секунды

date

1999-05-31

см., 2)

gMonth

--05--

Май, см., 2) и 5)

gYear

1999

1999, см., 2) и 5)

gYearMonth

1999-02

Февраль 1999 года, не зависимо от номера дня, см., 2) и 5)

gDay

---31

31 день, см., 2) и 5)

gMonthDay

--05-31

31 мая, см., 2) и 5)

Name

shipTo

XML 1.0 тип Name

QName

po:USAddress

XML Namespace QName

NCName

USAddress

XML Namespace NCName, то есть QName без префикса и двоеточия

anyURI

http://www.example.com/, http://www.example.com/ doc.html#ID5

 

language

en-GB, en-US, fr

Значения допустимые для xml:lang как определено в XML 1.0

ID

 

XML 1.0 атрибут типа ID, см., 1)

IDREF

 

XML 1.0 атрибут типа IDREF, см., 1)

IDREFS

 

XML 1.0 атрибут типа IDREFS, см., 1)

ENTITY

 

XML 1.0 атрибут типа ENTITY, см., 1)

ENTITIES

 

XML 1.0 атрибут типа ENTITIES, см., 1)

NOTATION

 

XML 1.0 атрибут типа NOTATION, см., 1)

NMTOKEN

US, Bresil

XML 1.0 атрибут типа NMTOKEN, см., 1)

NMTOKENS

US UK, Bresil Canada Mexique

XML 1.0 атрибут типа NMTOKENS, то есть список NMTOKEN разделенных пробелами, см., 1)

Примечания:
1) Для обеспечения совместимости XML-схем и XML 1.0 DTD, простые идентификаторы типов ( IDREF, IDREFS, ENTITY, ENTITIES, NOTATION, NMTOKEN, NMTOKENS), должны использоваться только в атрибутах.
2) Значение этого типа может быть представлено больше чем одним лексическим форматом. Например, 100 и 1.0E2 - оба значения представлены в формате с плавающей точкой, и значением равным "сто". Однако, для этого типа были установлены правила, которые определяют канонический лексический формат (см., "XML-схема. Часть 2: Типы данных").
3) Символы перевода строки, табуляции, и перевода каретки в типе normalizedString перед обработкой схемы преобразуются в пробелы.
4) Как и в normalizedString, смежные пробелы сокращены до единственного пробела, предшествующие и завершающие пробелы удаляются.
5) Префикс "g", задает время по Григорианскому календарю.

Новые простые типы можно определить, получая их от существующих простых типов (встроенных или ранее определенных). В частности мы можем получить новый простой тип, ограничивая существующий простой тип. Другими словами, для нового типа мы можем установить собственный диапазон значений как подмножество диапазона значений существующего типа. Для определения имени и типа собственного простого типа используют оператор simpleType. При этом c помощью оператора restriction указывают прототип, и идентифицируют фасеты (параметры), которые ограничивают диапазон значений базового типа. Список фасетов приводится в приложении B.

Предположим, что мы хотим создать новый тип целого числа, названного myInteger, чей диапазон значений должен находиться между 10000 и 99999 (включительно). Мы базируем наше определение на встроенном простом типе integer, чей диапазон значений включает так же и целые числа как меньше чем 10000, так и больше чем 99999. Чтобы определить тип myInteger, мы ограничиваем диапазон базового типа integer, используя два фасета, названные minInclusive и maxInclusive.

Определение myInteger. Диапазон 10000-99999:

Приведенный пример показывает использование одной из возможных комбинаций базового типа, и двух фасетов, которые были применены для определения myInteger. Но возможно использование и других комбинаций встроенных простых типов и фасетов (см., приложение B). Рассмотрим более сложный пример определения простого типа. Тип по имени SKU получен из простого типа string. Мы ограничиваем значения SKU путем использования фасета pattern, который содержит регулярное выражение, определяющее допустимый формат строки "\d{3}-[A-Z]{2}". Это выражение читается следующим образом: "строка начинается с трех цифр, за которыми следует дефис, за дефисом следует два ASCII-символами верхнего регистра".

Определение простого типа SKU:

Более полно язык регулярных выражений описан в приложении D.

Язык XML-схем определяет пятнадцать фасетов, которые перечислены в приложении B. Среди них особенно полезен фасет enumeration. Его можно использовать для ограничения значения почти каждого простого типа, кроме boolean. Фасет enumeration ограничивает простой тип набором явных значений. Например, мы можем использовать enumeration, чтобы определить новый простой тип по имени USState, полученный из типа string, значение которого должно быть одним из стандартных сокращений наименования штатов США.

Использование фасета enumeration:

Использование типа USState является хорошей заменой типа string, при использовании в элементе state (содержит наименование штата). За счет такой замены мы можем ограничить значения элемента state в подэлементах billTo и shipTo. При этом эти значения ограничены следующим перечнем: AK, АL, AR, и т.д. Обратите внимание, что перечисляемые значения, указанные для данного типа должны быть уникальны.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий: