Skip to content

XSD Attributes

How to define, constrain, and use XML Schema Definition (XSD) attributes with data types, default/fixed values, and required/optional settings.

An attribute is declared as a simple type.

What is an Attribute?

Remember that a simple element can't have attributes.

So, if an element has attributes, it is a complex type.

But the attribute is defined as a simple type.

How to Define an Attribute?

The syntax for defining an attribute is as follows:

<xs:attribute name="my-name" type="my-type"/>

where

  • my-name is the name of the attribute
  • my-type is the data type of the attribute.

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

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

Example

Attribute definitionxml
<xs:attribute name="lang" type="xs:string"/>
Examplexml
<lastname lang="EN">Nolan</lastname>

Default and Fixed Values for Simple Elements

Attributes can have a default value or a fixed value specified.

A default value is automatically assigned to the attribute when no other value is specified. For example default="EN".

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

A fixed value is also automatically assigned to the attribute, and you can't specify another value. For example fixed="EN".

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

Optional and Required Attributes

All attributes are optional by default.

To specify that an attribute is required, just use the use attribute:

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

Restrictions on Content

When an XML element or attribute has a defined data type, it places restrictions on the content of the element or attribute.

For example, if an XML element is of type xs:date and contains a string like Hello World, the element will not be validated.

Navigation