Defines a simple type, which determines the constraints on and information about the values of attributes or elements with text-only content.
<simpleType final = (#all | (list | union | restriction)) id = ID name = NCName {any attributes with non-schema Namespace}…> Content: (annotation?, (restriction | list | union)) </simpleType>
list | Prevents derivation by list. |
union | Prevents derivation by union. |
restriction | Prevents derivation by restriction. |
#all | Prevents all derivation (list, union, restriction). |
Optional.
Optional.
If specified, the name must be unique among all simpleType and complexType elements.
Required if the simpleType element is a child of the schema element, and not allowed at other times.
Number of occurrences | Unlimited |
Parent elements | attribute, element, list, restriction (simpleType), schema, union |
Contents | annotation, list, restriction (simpleType), union |
Simple types are defined by deriving them from existing simple types (built-in data types and derived simple types). A simple type cannot contain elements and cannot have attributes.
Simple types can be defined in one of the following ways.
restriction | Restricts the range of values for the simple type to a subset of those for inherited simple type. |
list | Defines a simple type that contains a white space-separated list of values of an inherited simple type. |
union | Defines a simple type that contains a union of the values of two or more inherited simple types. |
A simpleType declaration contained within a complexType or attribute element defines that simple type within the scope of the complexType or attribute that contains it. If a simpleType declaration has the schema element as its parent, it has global scope within that schema.
After a simple type is defined, it can be used in an attribute or element declaration or complexType (which, in turn, can be used in an element declaration) definition.
The following examples show simple type definitions using restriction, list, and union elements.
Restriction
<xs:simpleType name="freezeboilrangeInteger"> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType>
List
<xs:simpleType name="listOfDates"> <xs:list itemType="xs:date"> </xs:simpleType>
Union
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:attribute name="allframesize"> <xs:simpleType> <xs:union> <xs:simpleType> <xs:restriction base="roadbikesize"/> </xs:simpleType> <xs:simpleType> <xs:restriction base="mountainbikesize"/> </xs:simpleType> </xs:union> </xs:simpleType> </xs:attribute> <xs:simpleType name="roadbikesize"> <xs:restriction base="xs:positiveInteger"> <xs:enumeration value="46"/> <xs:enumeration value="52"/> <xs:enumeration value="55"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="mountainbikesize"> <xs:restriction base="xs:string"> <xs:enumeration value="small"/> <xs:enumeration value="medium"/> <xs:enumeration value="large"/> </xs:restriction> </xs:simpleType> </xs:schema>
XML Schema Reference (XSD) | XML Schema Elements
For more information, see the W3C XML Schema Part 1: Structures Recommendation at http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-simpleType.
W3C Namespaces in XML Recommendation