Have you tried nillable=”true” to accept empty values?
In the importmapping add a conversion microflow to the integer-attribute setting the value to empty when ‘’ is received.
*Edited after your response*
Ah, got it. Your the xsd-definition to accept the value as an integer and also as empty, but that means a string. Ok, use union to do this:
<xs:element name="job_code">
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base='xs:integer' />
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:element>
This gets your element the best of both types.
If you need more details: I found this solution on https://stackoverflow.com/questions/7109910/xsd-allow-element-type-as-integer-or-empty.