Advanced XSD: Restrictions, Extensions, and Identity Constraints

Unit 3â€ĸCLO02, CLO05

Learning Objectives

Course Learning Outcomes

CLO02
CLO05

Course Outcomes

CO03
â„šī¸

Introduction

Advanced schemas capture business rules. XSD can restrict values (ranges, patterns, enumerations), derive new types via extension/restriction, and enforce identity constraints like unique keys.

The Basics

Facets (restrictions)

Common facets:

  • minInclusive, maxInclusive
  • pattern
  • enumeration

Derivation

  • extension: add new fields
  • restriction: narrow allowed values

Technical Details

Restriction example

<xs:simpleType name="CgpaType">
  <xs:restriction base="xs:decimal">
    <xs:minInclusive value="0.0"/>
    <xs:maxInclusive value="10.0"/>
  </xs:restriction>
</xs:simpleType>

Enumeration example

<xs:simpleType name="DeptType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="CSE"/>
    <xs:enumeration value="ECE"/>
  </xs:restriction>
</xs:simpleType>

Examples

Pattern example

<xs:simpleType name="PhoneType">
  <xs:restriction base="xs:string">
    <xs:pattern value="[0-9]{10}"/>
  </xs:restriction>
</xs:simpleType>

Real-World Use

Practical

  • Add restrictions to your schema (enum, range, pattern).
  • Create one derived type using extension.

📝 For exams

Exam

  • Explain facets and type derivation.
  • Discuss identity constraints (key/keyref) conceptually.

✨ Key points

Takeaways

  • Restrictions encode business rules early.
  • Type derivation improves reuse.