Робота xml схеми і складні типи

У продовження першої статті про простих типах (SimpleTypes) додам наступне.

Дуже часто на простих типах використовують обмеження - restriction. Тобто певні фільтри на дані, які ви будете використовувати. приклад:

У прикладі ми створили елемент number, він простого типу. Створимо обмеження на число: 3 - 40.

Ще один приклад із застосуванням фільтра, але йде перерахування днів тижня:

У цьому прикладі застосували фільтр на дні тижня, тобто допустимі тільки назви днів тижня в якості значень. Якщо я напишу 'як справи?', Обробник видасть помилку.

Часто такі фільтри ставляться на якісь перераховуються типи (наприклад, перерахування дати).

Тепер перейдемо до складних типам. У складні типи (ComplexType) можна помістити всередину кілька типів, а в прості типи (SimpleType) - нічого, крім у допустимих помістити.

Складні типи даних

Такі типи даних можна створювати самому, які хочеш. У 1-му рядку ми створили складний тип даних FruitType. Цей тип містить у собі 2 елементи з різними типами даних - рядок (назва фрукта) і число (ціна фрукта), тому він комплексного типу (complexType).

повторення елементів

Часто потрібно, щоб елементи повторювалися. І щоб в xml документі не дублювати ці елементи, придумали наступне (якщо пам'ятаєте, в DTD для цього застосовували модифікатори - * і +). Знову повернемося до фруктів:

Тут з'являються 2 атрибута - мінімальна кількість (minOccurs) і максимальну кількість (maxOccurs). Допускається використовувати значення від нуля до unbounded (необмежена).

визначення атрибутів

Атрибут є частиною типу. Якщо потрібно додати атрибут, застосуємо елемент attribute, у якого 3 обов'язкових атрибути:

Важливо! Атрибут не входить в елемент sequence! Туди входить тільки те, що всередині нашого елементу. Тому атрибути зазвичай пишуться після композитора sequence.

Групи елементів

Ми просто створюємо групу, а потім посилаємося на неї в іншому елементі.

Тобто групу використовують, щоб описати загальне у різних типів.

розширення типів

Тобто це створення одного типу на основі іншого. Розглянемо на прикладі:

І другий тип даних - депозитний рахунок. Це те ж саме, що і банківський рахунок, але у нього з'являються додаткові властивості. Наприклад, мінімальний баланс, при якому діє висока процентна ставка (minimalBalance). Усе інше, все як у звичайного рахунку.

Схожі статті