The elements and attributes within a complex type can be optional, but the type itself can't (it doesn't make sense). To make an element optional, use minOccurs="0". To make an attribute optional, write use="optional".
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference