<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" 
   vc:minVersion="1.1">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="importfile" minOccurs="1" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="columns" minOccurs="1" maxOccurs="2">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="col" minOccurs="1" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:attribute name="ignore" type="xs:boolean" use="required"/>
                        <xs:attribute name="name" type="xs:string" use="optional"/>
                        <xs:attribute name="ord" type="xs:integer" use="optional"/>
                        <xs:attribute name="type" type="xs:string" use="optional"/>
                        <xs:attribute name="strict" type="xs:boolean" use="optional"/>
                        <xs:attribute name="regexp" type="xs:base64Binary" use="required"/>
                        <xs:attribute name="mapcolumn" type="xs:string" use="optional"/>
                        <xs:attribute name="min" type="xs:integer" use="optional"/>
                        <xs:attribute name="max" type="xs:integer" use="optional"/>
                        <xs:attribute name="maxlen" type="xs:integer" use="optional"/>
                        <xs:attribute name="mapvalues" type="xs:boolean" use="optional"/>
                        <xs:assert test="exists(@name|@ord)"/>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="columnheaders" type="xs:boolean" use="required"/>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="type" type="xs:string" use="required"/>
            <xs:attribute name="linebreaks" type="xs:string" use="required"/>
            <xs:attribute name="quotes" type="xs:boolean" use="required"/>
            <xs:attribute name="delimiter" type="xs:string" use="required"/>
            <xs:attribute name="maptable" type="xs:string" use="required"/>
            <xs:attribute name="quotechar" type="xs:string" use="required"/>
            <xs:attribute name="mimetype" type="xs:string" fixed="text/csv" use="required"/>
            <xs:attribute name="mode" type="xs:string" use="optional"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
