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?
Antworten
Zu viele Anzeigen?Ich empfehle Ihnen, die SharePoint-Weboberfläche zu verwenden und Ihre Liste nach Ihren Wünschen einzurichten, einschließlich der Ansichten, benutzerdefinierten Spalten usw. Das wird Sie einer endgültigen Version am nächsten bringen. Dann speichern Sie die Liste als Vorlage.
Die .stp-Datei, die Sie erhalten, ist im Grunde nur eine .cab-Datei mit einem lustigen Namen. Benennen Sie sie in cab um und extrahieren Sie das Manifest, das eine fast fertige schema.xml-Datei enthält, die Sie verwenden können.
Was Sie ändern müssen, ist der Pfad oder Setuppfad der Listenformulare. Sie finden diese am Ende der Datei manifest.xml. Diese Formulare können, wenn Sie die Standard-SharePoint-Listen verwenden, auf SetupPath="pages/form.aspx" gesetzt werden. Hier ist ein Beispiel für das Element für benutzerdefinierte Listenformulare:
<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" />
Sie müssen auch den Ansichtspfad für jede Ansicht aktualisieren, der SetupPath="pages/viewpage.aspx" lauten sollte, wenn Sie die Standardformulare in Ihrer ursprünglichen Site verwenden.
Beachten Sie, dass Sie auch andere Attribute ändern müssen, aber wenn Sie sicherstellen, dass Sie das wss.xsd-Schema befolgen und dass Ihre benutzerdefinierte Liste schema.xml mit dem wss.xsd-Schema übereinstimmt, sollte alles in Ordnung sein.
.b
Um eine benutzerdefinierte Listendefinition zu erstellen, verwende ich immer eine eingebaute Listendefinition als Vorlage.
Erstellen Sie ein neues Merkmal, kopieren Sie dann schema.xml (vielleicht auch einige andere Dateien, falls vorhanden) aus dem bestehenden Merkmal und ändern Sie die Datei schema.xml direkt mit einem Texteditor. Ich habe nicht versucht, jede benutzerdefinierte Editor für das und immer die Arbeit mit Kopieren-Einfügen und Ändern von Attributen Werte getan.
Eingebaute Listendefinitionen befinden sich in 12 Hives als Features:
- Benutzerdefinierte Liste - Merkmale/CustomList/CustList/schema.xml;
- Dokumentenbibliothek - Funktionen/DocumentLibrary/DocLib/schema.xml;
- Kalender - Merkmal/EventsList/Events/schema.xml;
- Verwenden Sie die Suche, um andere zu finden.
Sie könnten verwenden SharePoint-Manager um die Liste auszuwählen, für die Sie das Schema wünschen, und diese als Vorlage zu verwenden.
Jede Schemaerstellung würde sich auf den Kontext stützen, da die GUIDs für benutzerdefinierte Felder spezifisch für diese SharePoint-Websitesammlung sind, es sei denn, sie werden als Teil eines zuvor festgelegten Features installiert (was voraussetzt, dass bereits ein XML-Schema erstellt wurde).
Der SharePoint Manager ist ein gutes Werkzeug dafür, nicht weil er speziell für dieses Problem geeignet ist, sondern weil er ein sehr eine nützliche Methode, um alle möglichen Informationen (z. B. Schema) aus einer SharePoint-Instanz zu erhalten.
Con la Windows SharePoint Services 3.0 Werkzeuge: Visual Studio 2008-Erweiterungen, Version 1.2 kommt eine Anwendung namens "SharePoint Solution Generator 2008". Diese Anwendung hat einige Einschränkungen ( das Schlimmste ist IMO dass Lookup-Spalten verschwinden ), aber es erstellt die Dateien, die Sie benötigen, um z.B. ein Feature aus einer bestehenden SharePoint-Liste zu erstellen. Dazu gehört auch die schema.xml.
Ich verwende immer Gary Lapointes STSADM-Erweiterungen zum Extrahieren dieser Art von Daten. Das heißt, ich erstelle sie zunächst mit der grafischen Benutzeroberfläche und extrahiere dann Listen, Inhaltstypen, Site-Spalten usw. mit der entsprechenden Methode.
Sehen Sie sich Garys Liste der Erweiterungen in _STSADM/PowerShell-Befehle_ .
- See previous answers
- Weitere Antworten anzeigen