Complex-type elements have attributes, child elements, or some combination of the two. For example, the Name and HomePage elements below are both complex-type elements.
<?xml version="1.0"?> <Person> <Name> <FirstName>Mark</FirstName> <LastName>Twain</LastName> </Name> <HomePage URL="http://www.marktwain.com"/> </Person>
As the diagram below shows, a complex-type element can be empty, contain simple content such as a string, or can contain complex content such as a sequence of elements.
Whereas it is not necessary to explicitly declare that a simple-type element is a simple type, it is necessary to specify that a complex-type element is a complex type. This is done with the xs:complexType element as shown below.