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:stringxs:decimalxs:integerxs:booleanxs:datexs:time
Example
<xs:attribute name="lang" type="xs:string"/><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.