<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="MyRootObject">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ASimpleStringMandatoryElement" type="xs:string"/>
                <xs:element name="ASimpleDateMandatoryElement" type="xs:date"/>
                <xs:element name="AComplexMandatoryElement">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="ChildItem" type="xs:string"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="ASimpleStringOptionalElement" type="xs:string" minOccurs="0"/>
                <xs:element name="ASimpleDateOptionalElement" type="xs:date" minOccurs="0"/>
                <xs:element name="AComplexOptionalElement" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="ChildItem" type="xs:string"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="ASimpleStringCollectionElement" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="ASimpleDateCollectionElement" type="xs:date" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="AComplexCollectionElement" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="ChildItem" type="xs:string"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>