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>

Posts a cui potresti essere interessato:
  1. Come validare il contenuto di un attributo personalizzato in un file di configurazione
  2. Implementare una collection di elementi personalizzati per il web.config
  3. I named parameters, questi benedetti