XSD Attributes


XSD Attributes

Here all attributes are declared as simple types.

Here all attributes are declared as simple types.

XSD Attributes


All attributes are declared as simple types.

What is an Attribute?

Simple elements do not contain attributes. If an element has attributes, then it is of a complex type element. But the attribute itself is always declared as a simple type.

Defining an Attribute?

The syntax for defining an attribute is:

<xs:attribute name="aaa" type="bbb"/>

where aaa is the name of the attribute and bbb specifies the data type of the attribute.

XML Schema has a lot of built-in data types. The most common types are:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time


Here is an XML element with an attribute:

<name lang="EN">Rahul</name>

And here is the corresponding attribute definition:

<xs:attribute name="lang" type="xs:string"/>

Default Values for Attributes

Attributes may have a specified default value OR a  specified fixed value A default value is automatically assigned to the attribute when no other value is specified for example..the default value is "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

Fixed Values for Attributes

A fixed value is automatically assigned to the attribute, and it cannot further specify another value for example..the fixed value is "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Optional and Required Attributes

Attributes are optional by default. To specify that the attribute is required, use the "use" attribute:

<xs:attribute name="lang" type="xs:string" use="required"/>

Restrictions on Content

When an XML element or attribute has a data type defined, it can put restrictions on the element's or attribute's content. If an XML element is of type "xs:age" and contains a string like "Hello", the element will not validate. With XML Schemas, user can also add his own restrictions to  XML elements and attributes. These restrictions are called facets.