У продовження першої статті про простих типах (SimpleTypes) додам наступне.
Дуже часто на простих типах використовують обмеження - restriction. Тобто певні фільтри на дані, які ви будете використовувати. приклад:
У прикладі ми створили елемент number, він простого типу. Створимо обмеження на число: 3 - 40.
Ще один приклад із застосуванням фільтра, але йде перерахування днів тижня:
У цьому прикладі застосували фільтр на дні тижня, тобто допустимі тільки назви днів тижня в якості значень. Якщо я напишу 'як справи?', Обробник видасть помилку.
Часто такі фільтри ставляться на якісь перераховуються типи (наприклад, перерахування дати).
Тепер перейдемо до складних типам. У складні типи (ComplexType) можна помістити всередину кілька типів, а в прості типи (SimpleType) - нічого, крім у допустимих помістити.
Складні типи даних
Такі типи даних можна створювати самому, які хочеш. У 1-му рядку ми створили складний тип даних FruitType. Цей тип містить у собі 2 елементи з різними типами даних - рядок (назва фрукта) і число (ціна фрукта), тому він комплексного типу (complexType).
повторення елементів
Часто потрібно, щоб елементи повторювалися. І щоб в xml документі не дублювати ці елементи, придумали наступне (якщо пам'ятаєте, в DTD для цього застосовували модифікатори - * і +). Знову повернемося до фруктів:
Тут з'являються 2 атрибута - мінімальна кількість (minOccurs) і максимальну кількість (maxOccurs). Допускається використовувати значення від нуля до unbounded (необмежена).
визначення атрибутів
Атрибут є частиною типу. Якщо потрібно додати атрибут, застосуємо елемент attribute, у якого 3 обов'язкових атрибути:
Важливо! Атрибут не входить в елемент sequence! Туди входить тільки те, що всередині нашого елементу. Тому атрибути зазвичай пишуться після композитора sequence.
Групи елементів
Ми просто створюємо групу, а потім посилаємося на неї в іншому елементі.
Тобто групу використовують, щоб описати загальне у різних типів.
розширення типів
Тобто це створення одного типу на основі іншого. Розглянемо на прикладі:
І другий тип даних - депозитний рахунок. Це те ж саме, що і банківський рахунок, але у нього з'являються додаткові властивості. Наприклад, мінімальний баланс, при якому діє висока процентна ставка (minimalBalance). Усе інше, все як у звичайного рахунку.