<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="ValueField" type="xs:string"/>
    <xs:element name="TextField">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="id" type="xs:string" use="required"/>
                </xs:extension>
            </xs:simpleContent> 
        </xs:complexType>
    </xs:element>
    <xs:element name="RadioField">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:decimal">
                    <xs:attribute name="id" type="xs:string" use="required"/>
                </xs:extension>
            </xs:simpleContent> 
        </xs:complexType>
    </xs:element>
    
    <xs:element name="Column">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="id" type="xs:string" use="required"/>
                </xs:extension>
            </xs:simpleContent> 
        </xs:complexType>
    </xs:element>

    <xs:element name="Row">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Column" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    

    <xs:element name="TableField" >
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Row" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="id" type="xs:string" />
        </xs:complexType>
    </xs:element>
    
    <xs:element name="ArrayField">
        <xs:complexType>
            <xs:sequence>
                <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element ref="ValueField" />
                <xs:element ref="TableField" />
                <xs:element ref="RadioField"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="id" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    
    <xs:element name="Eform">
        <xs:complexType>
            <xs:sequence>
                <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element ref="TextField" />
                <xs:element ref="ArrayField" />
                <xs:element ref="TableField" />
                <xs:element ref="RadioField" />
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="id" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    
</xs:schema>