<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Worksheet">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Tag"/>
                <xs:element ref="Name"/>
                <xs:element ref="Description"/>
                <xs:element ref="Source"/>
                <xs:element ref="Nav"/>
                <xs:element maxOccurs="unbounded" ref="Step"/>
            </xs:sequence>
            <xs:attribute name="id" use="required" type="xs:NCName"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Name" type="xs:string"/>
    <xs:element name="Source">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="host"/>
                <xs:element ref="username"/>
                <xs:element ref="password"/>
                <xs:element ref="database"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="host" type="xs:NCName"/>
    <xs:element name="username" type="xs:NCName"/>
    <xs:element name="password" type="xs:NCName"/>
    <xs:element name="database" type="xs:NCName"/>
    <xs:element name="Nav">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="link"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="link">
        <xs:complexType>
            <xs:attribute name="href" use="required" type="xs:anyURI"/>
            <xs:attribute name="title" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Step">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Task"/>
                <xs:element minOccurs="0" ref="Tag"/>
                <xs:element minOccurs="0" ref="Description"/>
                <xs:element minOccurs="0" ref="MySQL"/>
                <xs:choice minOccurs="0">
                    <xs:element ref="Discussion"/>
                    <xs:element ref="Hint"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="getSQL" type="xs:NCName"/>
            <xs:attribute name="showResult" type="xs:NCName"/>
            <xs:attribute name="showSQL" type="xs:NCName"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Task" type="xs:string"/>
    <xs:element name="MySQL" type="xs:string"/>
    <xs:element name="Discussion">
        <xs:complexType>
            <xs:sequence>
                <xs:any/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Hint" type="xs:string"/>
    <xs:element name="Tag">
        <xs:complexType mixed="true">
            <xs:attribute name="cat" type="xs:NCName"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Description">
        <xs:complexType>
            <xs:sequence>
                <xs:any/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
