Designing Your own XML Schema: Restrictions and User Defined Types - How to define your own simple type (user-defined data type) in XML Schema
(Page 3 of 7 )
This is another interesting topic in XML Schema. The XML Schema vocabulary was already defined with plenty of data types, together with “restriction” facets to support broad varieties of information. But there always exists some room for enhancements.
XML Schema vocabulary is extensible. This means you can also define (or extend) your own vocabulary from the existing one.
Coming to our scenario, let us consider that I would like to define my own data type called “AgeType” exclusively for the “Age” element. The following listing of a complete XML Schema does the same:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault=
"unqualified">
<xs:element name="Employees">
<xs:annotation>
<xs:documentation>Contains All Employee information</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Employee" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:string">
</xs:element>
<xs:element name="Name" type="xs:string" />
<xs:element name="Age" type="AgeType" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="PK_Employee_ID">
<xs:selector xpath=".//Employee" />
<xs:field xpath="ID" />
</xs:key>
</xs:element>
<xs:simpleType name="AgeType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
<xs:maxInclusive value="100" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
I shall explain the above schema in the next section.
Next: Understanding the user-defined simple type in XML Schema >>
More XML Articles
More By Jagadish Chaterjee