TechBubbles Microsoft Technology BLOG

XML Schema Basics(XSD)


This post gives a basic overview of XML Schema and how to use in development. XML schema describes what XML document contains and content of the XML document what fields and sub elements it can contain.

Standards for Describing XML Document

  • DTD : was the First formulized standard.
  • XDR: Much comprehensive standard than DTD.
  • XSD: Currently de facto standard for describing the XML documents. There are two versions in use 1.0 and 1.1. An XSD schema it self is a XML document.

XSD Elements

Elements are building blocks for any XML document, element defines the structure of the XML document. The following is the syntax to define the element in XSD Schema.


<xs: element name=”abc” type=”xyz” /> 

  1. An Element must have the name property, the same will appear in the XML document.
  2. Type property describes about what can be contained in the element when it appears in XML document. eg: xs:string, xs:integer, xs:boolean or xs:date


Sample XSD

<xs:element name="Employee_dob"

Sample XML


Fixed and Default Properties

The XSD element can contain the Fixed or Default properties.

Default means that if no value specified in the XML document then application uses the default value specified in the XSD document.


<xs:element name="Employee_name" type="xs:string" default="unknown"/>

Fixed means the value in the XML document can only have the value specified in the XSD.


<xs:element name="Customer_location" type="xs:string" fixed="UK"/> 


Specifies how many times an element can appear can be called Cardinality. it is specified using the attributes minOccurs and maxOccurs. Both attributes can assigned a non-negative value.

The default value for minOccurs and maxOccurs is 1.


<xs:element name="Employee_hobbies"





Employee_hobbies element must appear at least twice and not more than 10 times in the XML document.


Simple Types

We can define our own types by modifying the existing types.

example: Define a code, that may be an integer with a max limit.

<xs:element name="Employee" type="xs:string"/> 
Complex Types:  is a container for other elements which specifies child
elements an element can contain.
<xs:element name="Employee">
                <xs:element name="Dob" type="xs:date" />
                <xs:element name="Address" type="xs:string" /> 
  1. Created a definition for element Employee
  2. <xs:complexType> is a container for other <xs:elements>
  3. Complex type do not have the type attribute and contains the <xs:sequence> element.
  4. The sequence element specifies that XML document must appear in the same order they are declared in the XSD Schema.
    <Dob> 2000-01-12T12:13:14Z </Dob>
    <Address> 39 spring field road London </Address>

About the author

Kalyan Bandarupalli

My name is kalyan, I am a software architect and builds the applications using Microsoft .NET technologies. Here I am trying to share what I feel and what I think with whoever comes along wandering to Internet home of mine.I hope that this page and its contents will speak for me and that is the reason I am not going to say anything specially about my self here.


TechBubbles Microsoft Technology BLOG

Follow me


Tag Cloud