Creazione di un Content Type tramite una Feature in SharePoint

di Giuseppe Marchi, in SharePoint,

La versione 3.0 di SharePoint introduce il concetto di Content Type, vale a dire una struttura logica di alto livello che consente di raggruppare un insieme di Site Columns (introdotte nello script #990). La funzionalità principale (e sicuramente la più utile) è la possibilità di fornire tipologie di contenuti diversi all'interno della stessa lista o document library, utilizzandola ad esempio per archiviare sia presentazioni PowerPoint che fogli Excel, pur mantenendo differenti strutture di metadati.

Per poter definire la struttura di un Content Type basta creare un file XML in cui si indicano i riferimenti alle singole Site Column che ne devono far parte, specificandone l'identificativo, l'internal name e se tale campo deve essere obbligatorio o meno:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0x01006F0D6E6D90434c239B32A2F049862E0F"
         Name="$Resources:CT_AspItaliaContentName"
         Group="$Resources:CT_AspItaliaContentGroup"
         Description="$Resources:CT_AspItaliaContentDesc"
         Version="0">
    <FieldRefs>
      <FieldRef ID="{86313240-cf4f-11dd-ad8b-0800200c9a66}"
          Name="DocumentType"
          Required="TRUE" />
      <FieldRef ID="{804a9380-cf4f-11dd-ad8b-0800200c9a66}"
          Name="Boss"
          Required="TRUE" />
      <FieldRef ID="{71d28150-cf4f-11dd-ad8b-0800200c9a66}"
          Name="SourceCodeUrl"
          Required="TRUE" />
    </FieldRefs>
  </ContentType>
</Elements>

Questo file poi deve a sua volta essere referenziato all'interno di Feature.xml, tramite il nodo ElementManifest.

<?xml version="1.0" encoding="utf-8"?>
<Feature Id="603c8932-7af7-45d0-a8f2-3fe16c5a56b7"
    Title="$Resources:FeatureTitle;"
    Description="$Resources:FeatureDesc;"
    Creator="$Resources:FeatureAuthor;"
    Version="1.0.0.0"
    Scope="Site"
    Hidden="FALSE"
    DefaultResourceFile="_Res"
    xmlns="http://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="SiteColumns\Columns.xml" />  
        <ElementManifest Location="ContentTypes\ASPItaliaContent.xml" />
    </ElementManifests>
</Feature>

Ovviamente è necessario che le Site Columns utilizzate dal Content Type siano già installate all'interno della site collection, ed è questa la ragione per cui nell'esempio proposto la Feature include anche il file di definizione di quest'ultime.
Una volta che la Feature sia stata installata ed attivata, il nuovo Content Type apparirà come nella figura seguente:

Un'ultima nota riguarda l'identificativo utilizzato; SharePoint, infatti, offre un meccanismo di ereditarietà che utilizza proprio questo attributo per determinare il tipo padre da cui il Content Type proviene. L'ID del tipo presentato in questo script inizia con i caratteri 0x01 e questo valore, ad esempio, sta ad indicare che il parent type è il tipo "Item"; ecco perché, come si può notare dall'immagine, è presente anche la colonna Title sebbene questa non sia stata menzionata nel file XML. La logica secondo la quale generare l'identificativo esula da questo script, ma chi volesse approfondire l'argomento può utilizzare la documentazione ufficiale al link
http://msdn.microsoft.com/en-us/library/aa543822.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi