Как и многим другим пользователям SharePoint, мне пришлось создать собственное определение списка. После долгих проблем мне удалось создать его (я думаю, позвольте мне сначала пройти через все ошибки), но есть ли там «базовая» схема, с которой я могу начать, или специальный редактор для генерации Schema.xml?





Вы можете использовать Менеджер SharePoint, чтобы выбрать список, для которого вы хотите создать схему, и использовать его в качестве шаблона.
Любое создание схемы будет зависеть от контекста, поскольку идентификаторы GUID для любых настраиваемых полей будут специфичными для этого семейства сайтов SharePoint, если они не установлены как часть ранее указанной функции (полагаясь на уже созданную схему XML).
Менеджер SharePoint - хороший инструмент для этого не потому, что он специфичен для этой проблемы, а потому, что это полезный способ очень для получения всевозможной информации (например, схемы) из экземпляра SharePoint.
Моя рекомендация, которая приблизит вас к окончательной версии, - это использовать веб-интерфейс SharePoint, настроить свой список по своему усмотрению, включая представления, настраиваемые столбцы и т. д. Затем сохраните список как шаблон.
Полученный файл .stp - это просто CAB-файл с забавным названием. Переименуйте в cab и извлеките манифест, который будет включать в себя почти готовый к использованию файл schema.xml, который вы можете использовать.
Что вам нужно изменить, так это путь или настройку формы списка. Вы найдете их внизу файла manifest.xml. Для этих форм, если вы используете списки SharePoint по умолчанию, можно задать значение SetupPath = "pages / form.aspx". Вот пример элемента настраиваемой формы списка:
<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" />
Вам также необходимо обновить путь просмотра для каждого представления, который должен быть SetupPath = "pages / viewpage.aspx" при использовании форм по умолчанию на исходном сайте.
Обратите внимание, что вам необходимо изменить и другие атрибуты, но если вы убедитесь, что следуете схеме wss.xsd и что ваш настраиваемый список schema.xml соответствует схеме wss.xsd, все должно быть в порядке.
.b
Для создания настраиваемого определения списка я всегда использую какое-либо встроенное определение списка в качестве шаблона. Создайте новую функцию, затем скопируйте schema.xml (возможно, некоторые другие файлы, если они есть) из существующей функции и измените файл schema.xml непосредственно с помощью какого-либо текстового редактора. Я не пробовал никаких специальных редакторов для этого и всегда делаю работу с копипастом и изменением значений атрибутов.
Встроенные определения списков расположены в 12 улье как функции:
Вместе с Инструменты Windows SharePoint Services 3.0: расширения Visual Studio 2008, версия 1.2 поставляется приложение под названием «Генератор решений SharePoint 2008». Это приложение имеет некоторые ограничения (худшее - IMO столбцы поиска исчезают), но оно создает файлы, которые вам нужно создать, то есть функцию из существующего списка SharePoint. Сюда входит schema.xml.
Я всегда использую расширения STSADM от Gary Lapointes для извлечения подобных материалов. То есть я сначала создаю его с помощью графического интерфейса, а затем извлекаю списки, типы контента, столбцы сайта и т. д., Используя соответствующий метод.
Ознакомьтесь со списком расширений Гариса в Команды STSADM / PowerShell.
Добавляя к ответу EG, если вы хотите изменить только поля, прикрепленные к существующему списку (но оставив представления и т. д. По существу такими же), вам придется изменить вещи по существу в двух местах: List / MetaData / Fields и Список / Метаданные / Представления / Просмотр / ViewFields.
Раздел Поля относительно прост, если вы следуете документация.
Чтобы столбцы отображались в данном представлении, вам необходимо отредактировать раздел ViewFields для данного представления. Например, если у вас есть столбцы с именами Title, Author и Publisher, которые вы хотите отобразить в представлении, найдите раздел ViewFields этого представления и отредактируйте его следующим образом:
<ViewFields>
<FieldRef Name = "Title" />
<FieldRef Name = "Author" />
<FieldRef Name = "Publisher" />
</ViewFields>
Эти поля (и только эти поля) должны отображаться в этом представлении.
Большая проблема со всеми файлами schema.xml, которые вы обычно копируете, заключается в том, что 90% кода находится в различных элементах представления. Для этого есть очень простое решение - использовать один из стилей просмотра по умолчанию.
Вот простая, удобочитаемая минималистичная схема для начала. Подробности читайте в http://mo.notono.us/2009/02/moss-dreaded-schemaxml.html. Если вам действительно действительно не нужно настраивать визуализированный html, не беспокойтесь о том, чтобы возиться с представлением 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>
Я и Рич Финн написали инструмент под названием SPSource, который преобразовывает списки в шаблоны списков, типы контента и столбцы сайта. Пожалуйста, проверьте его на http://spsource.codeplex.com/, там есть подробные руководства пользователя и веб-трансляции, чтобы показать вам, как его использовать.
Создайте список, который вы хотите разработать в своей локальной среде разработки, с помощью параметров браузера. Сохраните сайт как шаблон. Загрузите его в локальную файловую систему.
Теперь создайте новый проект Visual Studio с шаблоном, импортируйте из пакета решения. Найдите пакет решения, который хранится в файловой системе. Теперь, когда вы видите решение, вы найдете созданный вами список. Файл schema.XML будет находиться в определении списка. Скопируйте содержимое типа содержимого, полей и представлений и вставьте его в файл schema.xml.