Dunque,
Mi sono imbattuto nel problema ed essendone venuto a capo ti lascio una risposta ad uso dei naviganti.
il minoccurs = 0 significa che il tag è opzionale cioè che può esserci o non esserci, nillable indica che può esserci con valore null (tag vuoto). In tal caso però il tag sull'xml dovrà riportare l'attributo xsi:nil="true".

nel caso di stringhe che accettano un <xs:minLength value="0"> (valore di default) l'xsd valida anche un tag vuoto ma va notato che concettualmente quel valore è stringa vuota, non un valore null.

ovviamente se io specifico un tipo int il tag vuoto non viene validato.

ti alego qualche esempio:

##############ESEMPIO 1 STRINGA VUOTA CON NULL NON SPECIFICATO
l'xsd richiede un valore di tipo stringa che può avere len=0, il tag vuoto viene accettato perchè rappresenta una stringa vuota, in questo scenario non è possibile rappresentare una stringa null

xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Anagrafica">
<xs:complexType>
<xs:sequence>
<xs:element name="Indirizzo" type="Indirizzo" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="Indirizzo">
<xs:restriction base="xs:string">
<xs:maxLength value="100"/>
<xs:minLength value="0" />
</xs:restriction>
</xs:simpleType>
</xs:schema>



<?xml version="1.0" encoding="utf-8"?>
<Anagrafica xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="xsdNillable.xsd">
<Indirizzo></Indirizzo>
</Anagrafica>


##########################################
##############ESEMPIO 2 STRINGA NULL
l'xsd richiede un valore di tipo stringa che NON può avere len=0 ma può avere valore null, il tag vuoto viene accettato solo se inviato con l'attributo xsi:nil="true" cioè se rappresenta una stringa null, senza attributo rappresenterebbeuna stringa vuota e l'xsd non validerebbe:


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Anagrafica">
<xs:complexType>
<xs:sequence>
<xs:element name="Indirizzo" type="Indirizzo" nillable="true" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="Indirizzo">
<xs:restriction base="xs:string">
<xs:maxLength value="100"/>
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:schema>


<?xml version="1.0" encoding="utf-8"?>
<Anagrafica xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="xsdNillable.xsd">
<Indirizzo xsi:nil="true"></Indirizzo>
</Anagrafica>




per cui se nel primo esempio specifico xsi:nil="true" il file non viene validato perchè manxa nillabel=true nell'xsd, nel secondo caso se tolgo xsi:nil="true" l'xml non viene validato perchè la <xs:minLength value="1"> fa si che non vengano accettate stringhe vuote.