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
Example:
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.