Subtypes are created for a number of reasons like identifying distinct data object. Another reason is that specific types of an object may have different properties such as different date formats.

Think of subtypes as different "flavors". Ice cream flavors can be chocolate, strawberry, or vanilla. To create a schema to represent ice cream as data, the different flavors of ice cream could be subtypes of the type IceCream.

The type IceCream is generic and describes any kind of ice cream. The type Chocolate, a subtype of IceCream, represents a certain kind of ice cream: chocolate.

A file of purchase order data may have two different kinds of records: header and detail. The schema representing this data might have a Record type with Detail and Header as subtypes of Record.