Dans SharePoint, quel est le moyen le plus simple de créer un fichier de liste personnalisée 'schema.xml'?

StackOverflow https://stackoverflow.com/questions/441252

Question

Comme beaucoup d'autres utilisateurs de SharePoint, j'ai dû créer une définition de liste personnalisée. Après beaucoup de problèmes, j'ai réussi à en créer une (je pense, laissez-moi d'abord résoudre toutes les erreurs), mais existe-t-il un "basique"? Je peux commencer par utiliser un schéma ou un éditeur spécialement conçu pour la génération Schema.xml ?

Était-ce utile?

La solution

Pour créer une définition de liste personnalisée, j'utilise toujours une définition de liste intégrée comme modèle.
Créez une nouvelle fonctionnalité puis copiez schema.xml (peut-être d'autres fichiers également, le cas échéant) à partir d'une fonctionnalité existante et modifiez le fichier schema.xml directement avec un éditeur de texte. Je n'ai jamais essayé d'éditeur personnalisé pour cela et je travaille toujours avec des fonctions de copier-coller et de modification des valeurs d'attributs.

Les définitions de liste intégrées sont situées dans 12 ruches en tant que fonctionnalités:

  • Liste personnalisée & # 8211; Fonctions / CustomList / CustList / schema.xml;
  • bibliothèque de documents & # 8211; Features / DocumentLibrary / DocLib / schema.xml;
  • Calendrier & # 8211; Feature / EventsList / Events / schema.xml;
  • Utilisez la recherche pour trouver d'autres personnes.

Autres conseils

Ma recommandation, et ce qui vous rapprochera le plus d'une version finale, consiste à utiliser l'interface Web SharePoint, à configurer votre liste comme vous le souhaitez, y compris les vues, les colonnes personnalisées, etc. Ensuite, enregistrez la liste sous forme de fichier. modèle.

Le fichier .stp que vous obtenez est fondamentalement juste un fichier .cab avec un nom amusant. Renommez le fichier CAB et extrayez-le, ce qui inclura un fichier schema.xml presque prêt à être utilisé.

Ce que vous devez changer est le chemin ou le chemin défini dans les formulaires de liste. Vous les trouverez au bas du fichier manifest.xml. Si vous utilisez les listes SharePoint par défaut, ces formulaires peuvent être définis sur SetupPath = "pages / form.aspx". Voici un exemple tiré de l'élément de liste personnalisé:

    <Form Type="DisplayForm" Url="DispForm.aspx" 
SetupPath="pages\form.aspx" WebPartZoneID="Main" />
    <Form Type="EditForm" Url="EditForm.aspx" 
SetupPath="pages\form.aspx" WebPartZoneID="Main" />
    <Form Type="NewForm" Url="NewForm.aspx" 
SetupPath="pages\form.aspx" WebPartZoneID="Main" />

Vous devez également mettre à jour le chemin d'accès à la vue pour chaque vue, à savoir SetupPath = & pages; view / viewpage.aspx " si vous utilisez les formulaires par défaut sur votre site d'origine.

Notez que vous devez également modifier d'autres attributs, mais si vous veillez à suivre le schéma wss.xsd et que votre liste personnalisée schema.xml est validée dans le schéma wss.xsd, vous devriez être d'accord.

.b

Avec le Services Windows SharePoint 3.0 Outils: La version 1.2 de la version 1.2 de Visual Studio 2008 Extensions est une application appelée "SharePoint Solution Generator 2008". Cette application a quelques restrictions ( le pire est IMO les colonnes de recherche disparaissent ), mais crée les fichiers que vous devez créer, c'est-à-dire une fonctionnalité à partir d'une liste SharePoint existante. Cela inclut le fichier schema.xml.

J'utilise toujours les extensions Gary Lapointes STSADM pour extraire ce genre de choses. C’est-à-dire que je le crée d'abord à l'aide de l'interface graphique puis extrait les listes, les types de contenu, les colonnes de site, etc. à l'aide de la méthode appropriée.

Consultez la liste des extensions de Gary dans STSADM / PowerShell Commands .

Vous pouvez utiliser le gestionnaire SharePoint pour sélectionner la liste pour laquelle vous souhaitez utiliser le schéma et l'utiliser en tant que modèle.

Toute génération de schéma dépend du contexte car les GUID de tous les champs personnalisés seront spécifiques à cette collection de sites SharePoint, à moins qu'ils ne soient installés dans le cadre d'une fonctionnalité spécifiée précédemment (reposant sur un schéma XML déjà créé).

Le gestionnaire SharePoint est un bon outil pour cela, non pas parce qu’il est spécifique à ce problème, mais parce que c’est un moyen très utile de récupérer toutes sortes d’informations (telles que le schéma) d’une instance SharePoint. .

Rich Finn et moi-même avons écrit un outil appelé SPSource permettant de procéder à l’ingénierie inverse des listes de modèles, types de contenu et colonnes de site. Consultez-la à l'adresse http://spsource.codeplex.com/ . Des guides de l'utilisateur et des diffusions Web détaillés vous sont proposés. vous montrer comment l'utiliser.

Le gros problème avec tous les fichiers schema.xml que vous devez normalement copier est que 90% du code réside dans les divers éléments de vue. Il existe une solution extrêmement simple pour cela: utilisez l’un des ViewStyles par défaut.

Voici un schéma minimaliste simple et lisible. Lisez http://mo.notono.us/2009/02/moss -dreaded-schemaxml.html pour plus de détails. Sauf si vous avez vraiment, vraiment besoin de peaufiner le rendu HTML, ne vous embêtez pas avec la vue caml:

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Id="{AB426CDE-98F2-432A-B296-880C7931DEF3}"
     Title="Setting" Url="Lists/Setting" BaseType="0"
     FolderCreation="FALSE" DisableAttachments="TRUE" VersioningEnabled="FALSE"
     Direction="$Resources:Direction;"
     xmlns="http://schemas.microsoft.com/sharepoint/">
       <MetaData>
              <Fields>
                     <Field Type="Text" Name="Title" DisplayName="Name" Required="TRUE" />
                     <Field Type="Text" Name="Value" DisplayName="Value" Required="TRUE" />
              </Fields>
              <Views>
                     <View BaseViewID="0" Type="HTML" WebPartZoneID="Main" DisplayName="All Items" DefaultView="TRUE"
                         MobileView="True" MobileDefaultView="False" SetupPath="pages\viewpage.aspx"
                         ImageUrl="/_layouts/images/issues.png" Url="AllItems.aspx">
                           <ViewStyle ID="17"/>
                           <RowLimit Paged="TRUE">100</RowLimit>
                           <Toolbar Type="Standard" />
                           <ViewFields>
                                  <FieldRef Name="Edit" />
                                  <FieldRef Name="Title"/>
                                  <FieldRef Name="Value"/>
                           </ViewFields>
                           <Query>
                                  <OrderBy>
                                         <FieldRef Name="Title"/>
                                  </OrderBy>
                           </Query>
                     </View>
              </Views>
              <Forms>
                     <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
                     <Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
                     <Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
              </Forms>
              <DefaultDescription>Settings used in the application.</DefaultDescription>
       </MetaData>
</List>

En ajoutant à la réponse de EG, si vous souhaitez uniquement modifier les champs associés à une liste existante (tout en conservant les vues, etc.), vous devez modifier les éléments essentiellement à deux endroits: List / MetaData / Champs, et Liste / MetaData / Views / View / ViewFields.

La section Champs est relativement simple, si vous suivez la documentation .

Pour que les colonnes apparaissent dans une vue donnée, vous devez modifier la section ViewFields pour une vue donnée. Par exemple, si vous souhaitez afficher les colonnes Titre, Auteur et Éditeur dans la vue, recherchez la section ViewFields de cette vue et modifiez-la comme suit:

<ViewFields>
  <FieldRef Name="Title" />
  <FieldRef Name="Author" />
  <FieldRef Name="Publisher" />
</ViewFields>

Ces champs (et uniquement ces champs) doivent ensuite s'afficher dans cette vue.

Créez la liste que vous souhaitez développer sur votre environnement de développement local à l’aide des options du navigateur. Enregistrez le site en tant que modèle. Téléchargez-le sur le système de fichiers local.

Créez maintenant un nouveau projet Visual Studio avec un modèle, importez-le à partir d'un package de solution. Localisez le package de solution stocké sur le système de fichiers. Maintenant, lorsque vous voyez la solution, vous trouverez la liste créée par vous. Le fichier schema.XML sera situé dans la définition de liste. Copiez le contenu Type de contenu, Champs et Vues et collez-le dans votre fichier schema.xml .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top