7 Stimmen

Wie lässt sich in SharePoint am einfachsten eine benutzerdefinierte "schema.xml"-Datei für Listen erstellen?

Wie viele andere SharePoint-Benutzer musste auch ich eine benutzerdefinierte Listendefinition erstellen. Nach viel Mühe, ich habe es geschafft, eine zu erstellen (ich denke, lassen Sie mich durch alle Fehler zuerst), aber gibt es eine "grundlegende" Schema da draußen kann ich mit beginnen, oder einen Zweck gebaut Editor für Schema.xml Generation?

1voto

Oskar Austegard Punkte 4553

Das große Problem bei all den schema.xml-Dateien, die Sie normalerweise kopieren würden, ist, dass sich 90 % des Codes in den verschiedenen Ansichtselementen befinden. Hierfür gibt es eine extrem einfache Lösung - verwenden Sie einen der Standard-ViewStyles.

Hier ist ein einfaches, lesbares, minimalistisches Schema, mit dem Sie beginnen können. Lesen http://mo.notono.us/2009/02/moss-dreaded-schemaxml.html für Details. Es sei denn, Sie wirklich, wirklich brauchen, um die gerenderten html zwicken, nicht die Mühe mit der Ansicht caml Durcheinander:

<?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>

1voto

Jeremy Thake MSFT Punkte 1923

Ich und Rich Finn haben ein Tool namens SPSource geschrieben, das Listen in Listenvorlagen, Inhaltstypen und Site-Spalten zurückverwandelt. Bitte schauen Sie es sich an unter http://spsource.codeplex.com/ Es gibt ausführliche Benutzerhandbücher und Webcasts, die Ihnen zeigen, wie man es benutzt.

0voto

Jonathan Schuster Punkte 2340

Ergänzend zu EGs Antwort: Wenn Sie nur die Felder ändern wollen, die einer bestehenden Liste zugeordnet sind (aber die Ansichten usw. im Wesentlichen unverändert lassen), müssen Sie die Dinge im Wesentlichen an zwei Stellen ändern: Liste/MetaData/Fields und Liste/MetaData/Views/View/ViewFields.

Der Abschnitt "Felder" ist relativ einfach, vorausgesetzt, Sie folgen die Dokumentation .

Damit die Spalten in einer bestimmten Ansicht angezeigt werden, müssen Sie den Abschnitt ViewFields für eine bestimmte Ansicht bearbeiten. Wenn Sie z. B. Spalten mit den Namen Titel, Autor und Verlag haben, die in der Ansicht angezeigt werden sollen, suchen Sie den Abschnitt ViewFields dieser Ansicht und bearbeiten ihn wie folgt:

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

Diese Felder (und nur diese) sollten dann in dieser Ansicht angezeigt werden.

0voto

Erstellen Sie die Liste, die Sie in Ihrer lokalen Entwicklungsumgebung entwickeln möchten, mit Hilfe der Browseroptionen. Speichern Sie die Seite als Vorlage. Laden Sie sie in Ihr lokales Dateisystem herunter.

Erstellen Sie nun ein neues Visual Studio Projekt mit Vorlage, importieren Sie aus einem Solution Package. Suchen Sie das Lösungspaket, das im Dateisystem gespeichert ist. Wenn Sie nun die Projektmappe sehen, werden Sie die von Ihnen erstellte Liste finden. Datei schema.XML befindet sich in der Listendefinition. Kopieren Sie den Inhalt von Content Type, Fields und Views und fügen Sie ihn in Ihre schema.xml Datei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X