Cosa fare se si ha bisogno di avere uno schema certo che
il nostro file di configurazione deve seguire? Che magari ci aiuti con il
supporto dell'intellisense (gran bella invenzione davvero!) per mostrarci anche
una lista di enumerati?
Semplice, associato al custom element della nostra custom section il
parametro xmlns, passandogli un URI contenente lo schema XSD che vogliamo sia
interpretato e utilizzato come linea guida. Così:
<UserSection xmlns="http://tempuri.org/PersoneSchema.xsd">
Generare uno schema XSD è semplice con il tool visuale messo a disposizione
nell'IDE, basta solo sapere cosa scriverci dentro.
Il nostro pattern deve essere una cosa di questo tipo:
NomeSezione -> NomeElemento -> Attributi [-> Eventuali
enumerati]
Che tradotto in xml, per un esempio sul quale stavo lavorando, diventa:
<xs:element name="Utente">
<xs:complexType>
<xs:sequence>
<xs:element name="Persona">
<xs:complexType>
<xs:attribute name="nome">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Andrea"/>
<xs:enumeration value="Giuseppe"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="cognome" type="xs:string"/>
<xs:attribute name="sposato" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>