Технология XSD

Содержание

Слайд 2

Что такое XML схема (XSD)? XML Schema definition language (XSD) в

Что такое XML схема (XSD)?

XML Schema definition language (XSD) в

настоящее время стандартный язык схем для XML документов и данных.
2 мая 2001, World Wide Web Consortium (W3C) опубликовал версию 1.0 стандарта XSD.
XML Schema описывает элементы XML документа
Описывает атрибуты в XML
Описывает дочерние элементы их порядок и количество
Описывает типы данных для элементов и атрибутов
Слайд 3

Зачем нужны схемы? Server-side programmer Client-side programmers

Зачем нужны схемы?

Server-side programmer

Client-side
programmers

Слайд 4

Создание XML Схемы Элемент - корневой элемент любой XML схемы xmlns:xs="http://www.w3.org/2001/XMLSchema"

Создание XML Схемы

Элемент - корневой элемент любой XML схемы
xmlns:xs="http://www.w3.org/2001/XMLSchema" -

Объявление пространства имен XML схемы c префиксом xs
targetNamespace="http://www.epam.com" – для этого пространства имен применяется схема
xmlns="http://www.epam.com" – пространство имен по умолчанию (без префикса)
elementFormDefault="qualified" - все элементы должны быть namespace qualified


targetNamespace="http://www.epam.com"
xmlns="http://www.epam.com"
elementFormDefault="qualified">
...

Слайд 5

Простые элементы Элементы объявляются с использованием элемента . Простой элемент может

Простые элементы

Элементы объявляются с использованием элемента .
Простой элемент может содержать только

текст.
Простой элемент не может содержать атрибутов.
Объявляется простым типом (базовым типом или новым типом с расширением или ограничением базового типа c помощью элемента simpleType).










Слайд 6

Объявление атрибутов Атрибуты объявляются с использованием элемента Атрибут всегда объявляется простым

Объявление атрибутов

Атрибуты объявляются с использованием элемента
Атрибут всегда объявляется простым типом
Для

атрибута можно определить значение по умолчанию или фиксированное значение


Smith



Слайд 7

Простой тип (Simple Type) Элемент simpleType определяет простой тип элементов или

Простой тип (Simple Type)

Элемент simpleType определяет простой тип элементов или атрибутов,

накладывая ограничения или расширения на базовые типы
Может быть именованным или анонимным внутри элемента (атрибута)
Описан элемент "age" который может иметь числовые значения от 0 до 100 включительно








101

Не валидный элемент

Слайд 8

Составной тип (Complex Type) Составной тип описывает элементы, содержащего другие элементы

Составной тип (Complex Type)

Составной тип описывает элементы, содержащего другие элементы и/или

атрибуты
Составной тип описывается с помощью элемента complexType
Может быть именованным или анонимным внутри элемента











Слайд 9

Элемент simpleContent Для расширения/ограничения составного типа, который может содержать только текст

Элемент simpleContent

Для расширения/ограничения составного типа, который может содержать только текст как

содержимое, используется элемент simpleContent
Используется для добавления атрибутов










Слайд 10

Элемент complexContent Элемент complexContent служит для расширения или ограничения составных типов, объявленных ранее

Элемент complexContent

Элемент complexContent служит для расширения или ограничения составных типов, объявленных

ранее


















Слайд 11

Объявление типов Типы для элементов /атрибутов могут быть Локальными и анонимными

Объявление типов

Типы для элементов /атрибутов могут быть
Локальными и анонимными (в теле

элемента element)
Глобальными и именованными (непосредственно в элементе schema)
У именованных объявлений определяется атрибут name

















Слайд 12

Использование элементов и атрибутов На именованные объявления элементов и атрибутов можно ссылаться с помощью атрибута ref

Использование элементов и атрибутов

На именованные объявления элементов и атрибутов можно ссылаться

с помощью атрибута ref














Слайд 13

Базовые типы XML schema содержит 44 базовых типа, общие из которых:

Базовые типы

XML schema содержит 44 базовых типа, общие из которых:
string
decimal
integer
boolean
date
time

Слайд 14

Ограничения (Restrictions) Ограничения предназначены для контроля возможных значений элементов и атрибутов XML.

Ограничения (Restrictions)

Ограничения предназначены для контроля возможных значений элементов и атрибутов XML.

Слайд 15

Ограничения на значения Ограничение списком возможных значений

Ограничения на значения


















 

Ограничение списком возможных значений

Слайд 16

Ограничение с помощью шаблона Ограничение в один символ нижнего регистра от

Ограничение с помощью шаблона















Ограничение в один символ нижнего регистра от “a” до “z”

Ограничение тремя символами верхнего регистра от “a” до “z”

Слайд 17

Ограничение с помощью шаблона Три символа любого регистра от “a” до

Ограничение с помощью шаблона







Три символа

любого регистра от “a” до “z”

Один символ из трех возможных (x, y или z)

Пять цифр

Любое количество символов нижнего регистра от “a” до “z”

Слайд 18

Ограничение с помощью шаблона Несколько пар чередующихся регистрами символов Два возможных

Ограничение с помощью шаблона




Несколько пар чередующихся регистрами символов

Два

возможных варианта значения

Ровно восемь букв или цифр

Слайд 19

Ограничение на длину Значение должно содержать ровно 8 символов Задаем максимальное и минимальное количество символов

Ограничение на длину








name="password">







Значение должно содержать ровно 8 символов

Задаем максимальное и минимальное количество символов

Слайд 20

Ограничения на пробельные символы Ограничение whiteSpace может принимать три значения: preserve

Ограничения на пробельные символы

Ограничение whiteSpace может принимать три значения:
preserve – оставляет

все пробелы, символы табуляции и пустой строки как они есть
replace – заменяет все такие символы на один пробел
collapse – удаляет все пробелы спереди и сзади и заменяет все промежуточные на одиночные пробелы








Слайд 21

Индикаторы (Indicators) В XML Schema существуют 7 элементов-индикаторов которые задают поведение

Индикаторы (Indicators)

В XML Schema существуют 7 элементов-индикаторов которые задают поведение элементов

и атрибутов в XML
Индикаторы порядка:
all
choice
sequence
Индикаторы вхождения:
maxOccurs
minOccurs
Индикаторы груп:
group
attributeGroup
Слайд 22

Индикаторы порядка Элементы могут следовать в любом порядке Только один из представленных элементов может присутствовать

Индикаторы порядка

















Элементы могут следовать в любом порядке

Только один из представленных элементов может присутствовать

Слайд 23

Индикаторы порядка Элементы должны следовать в заданном порядке

Индикаторы порядка









Элементы должны следовать в заданном порядке

Слайд 24

Индикаторы вхождения Индикаторы вхождения показывают количество вхождений элемента Если индикатор не

Индикаторы вхождения

Индикаторы вхождения показывают количество вхождений элемента
Если индикатор не указан, то

по умолчанию должен быть только один элемент. По умолчанию:
minOccurs=1
maxOccurs=1





maxOccurs="10"/>



Элемент должен следовать за и может быть представлен минимум 1 и максимум 10 раз

Слайд 25

Индикаторы вхождения Индикатор maxOccurs может иметь минимальное значение 1, а minOccurs

Индикаторы вхождения

Индикатор maxOccurs может иметь минимальное значение 1, а minOccurs значение

0
Для указания любого количества вхождений ставим maxOccurs="unbounded"





minOccurs="0" maxOccurs="10"/>



Элемент может отсутствовать либо должен следовать за в количестве максимум 10 раз

Слайд 26

Индикаторы групп (Элемент group) Индикаторы групп объявляют связанные наборы элементов или

Индикаторы групп (Элемент group)

Индикаторы групп объявляют связанные наборы элементов или атрибутов

для последующей ссылки на них















Слайд 27

Индикаторы групп (Элемент attributeGroup) Элемент используется также как и

Индикаторы групп (Элемент attributeGroup)

Элемент используется также как и











Слайд 28

Уникальность (Элемент unique) Указывает, что значение атрибута или элемента (либо их

Уникальность (Элемент unique)

Указывает, что значение атрибута или элемента (либо их сочетание)

должно быть уникально в данной области видимости
{any attributes with non-schema Namespace}...>
Content: (annotation?, selector, field+)

Слайд 29

Уникальность – Пример country="Italy"/> country="France"/> country="Germany"/> country="France"/> country="Italy"/> country="Italy"/> maxOccurs="unbounded"/> Нарушение уникальности

Уникальность – Пример



country="Italy"/>

country="France"/>
country="Germany"/>
country="France"/>
country="Italy"/>
country="Italy"/>




maxOccurs="unbounded"/>







Нарушение уникальности

Слайд 30

Ключи (Элемент key) Указывает, что значение атрибута или элемента (либо набор

Ключи (Элемент key)

Указывает, что значение атрибута или элемента (либо набор значений)

должно быть ключом в данной области видимости
Ключ должен быть уникальным в пределах конкретной области действия, не нулевым и постоянно доступным
{any attributes with non-schema Namespace}...>
Content: (annotation?, selector, field+)

Слайд 31

Ссылки на ключи (Элемент keyref) Указывает, что значение атрибута или элемента

Ссылки на ключи (Элемент keyref)

Указывает, что значение атрибута или элемента (или

набор значений) соответствует значению указанного элемента key или unique
{any attributes with non-schema Namespace}...>
Content: (annotation?, selector, field+)

Слайд 32

... xpath="e:cities/e:city"/> refer="e:cityName"> xpath="e:persons/e:person"/> Ключи – Пример country="Italy"/> country="France"/> country="Germany"/> city="Paris"/> city="London"/> Ключевое значение отсутствует



...


xpath="e:cities/e:city"/>


refer="e:cityName">
xpath="e:persons/e:person"/>



Ключи – Пример




country="Italy"/>
country="France"/>
country="Germany"/>


city="Paris"/>
city="London"/>


Ключевое значение отсутствует

Слайд 33

Использование содержимого других схем Элемент используется для добавления элемента из другого

Использование содержимого других схем

Элемент используется для добавления элемента из

другого пространства имен
Элемент может быть дочерним для , , или .




minOccurs="0" maxOccurs="unbounded"
processContents="skip"/>



Слайд 34

Документирование схем Можно использовать обычные XML комментарии Аннотации могут появляться везде

Документирование схем

Можно использовать обычные XML комментарии

Аннотации могут появляться везде в схеме
- родительский для и
- предоставляет информацию для внешних приложений
- позволяет размещать комментарии для разработчиков



Schema for processing submitted applications
Submitted for Human Resources




No further processing is required.
This element is for determining relocation status to determine help determine costs.




Слайд 35

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.epam.com note.xsd"> Tove Jani Reminder Don't forget me this weekend!


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.epam.com note.xsd">
Tove
Jani
Reminder
Don't forget

me this weekend!

Описание ссылки на XSD в XML

xmlns="http://www.epam.com" - пространство имен по умолчанию
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - пространство имен экземпляра схемы одним из имен в котором является атрибут schemaLocation
xsi:schemaLocation="http://www.epam.com note.xsd" - определяет какой схеме (пространству имен) соответствует данный XML и где находится схема для валидации данного XML

Пространство имен

Местоположение схемы

Слайд 36

Описание ссылки на XSD в XML xsi:noNamespaceSchemaLocation используется, когда не используются

Описание ссылки на XSD в XML

xsi:noNamespaceSchemaLocation используется, когда не используются пространства

имен
Можно использовать URL файловой системы
xsi:schemaLocation используется, когда префиксы пространств имен явно определены и используются


Presenting XML
Richard Light

xsi:noNamespaceSchemaLocation=“file:///d:/xml/schemas/epam.xsd"

xmlns:data="http://www.epam.com"
xsi:schemaLocation="http://www.epam.com
http://www.epam.com/epam.xsd">
...

Слайд 37

Задание John Item1 Item2 John Item1 Item2 Создать схему, описывающую подобную структуру данных

Задание





John


Item1
Item2




John
Item1
Item2



Создать схему, описывающую подобную структуру данных