В SharePoint, какой самый простой способ создать собственный файл списка schema.xml? - PullRequest
7 голосов
/ 14 января 2009

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

Ответы [ 9 ]

4 голосов
/ 14 января 2009

Для создания пользовательского определения списка я всегда использую некоторые встроенные определения списка в качестве шаблона.
Создайте новую функцию, затем скопируйте schema.xml (возможно, некоторые другие файлы, если они есть) из существующей функции и измените файл schema.xml напрямую с помощью текстового редактора. Я не пробовал никакого специального редактора для этого и всегда выполняю работу с копированием-вставкой и изменением значений атрибутов.

Встроенный список определений находится в 12 ульях как функции:

  • Пользовательский список - Функции / CustomList / CustList / schema.xml;
  • Библиотека документов - Возможности / DocumentLibrary / DocLib / schema.xml;
  • Календарь - Feature / EventsList / Events / schema.xml;
  • Используйте поиск, чтобы найти других.
4 голосов
/ 14 января 2009

Моя рекомендация и то, что приблизит вас к окончательной версии, - это использовать веб-интерфейс SharePoint, настроить список по своему усмотрению, включая представления, настраиваемые столбцы и т. Д. Затем сохраните список как шаблон.

Файл .stp, который вы получаете, в основном представляет собой файл .cab со смешным именем. Переименуйте в cab и распакуйте манифест, который будет включать почти готовый к использованию файл schema.xml для использования.

То, что вам нужно изменить, это путь или setuppath форм списка. Вы найдете их в нижней части файла 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

3 голосов
/ 18 января 2009

Я всегда использую расширения Gary Lapointes STSADM для извлечения подобных вещей. То есть сначала я создаю его с помощью графического интерфейса, а затем извлекаю списки, типы контента, столбцы сайта и т. Д., Используя соответствующий метод.

Проверьте список расширений Garys в STSADM / PowerShell Commands .

3 голосов
/ 14 января 2009

С инструментами Windows SharePoint Services 3.0: расширения Visual Studio 2008 версии 1.2 поставляется приложение под названием «SharePoint Solution Generator 2008». Это приложение имеет некоторые ограничения ( худшее - IMO , что столбцы поиска исчезают ), но оно создает файлы, необходимые для создания, то есть функции, из существующего списка SharePoint. Это включает в себя schema.xml.

3 голосов
/ 14 января 2009

Вы можете использовать Диспетчер SharePoint , чтобы выбрать список, для которого вы хотите схему, и использовать его в качестве шаблона.

Любое создание схемы будет зависеть от контекста, поскольку идентификаторы GUID для любых настраиваемых полей будут привязаны к этому семейству сайтов SharePoint, если только они не установлены как часть ранее указанной функции (полагаясь на уже созданную схему XML). *

Диспетчер SharePoint является хорошим инструментом для этого не потому, что он специфичен для этой проблемы, а потому, что это очень полезный способ получения всех видов информации (например, схемы) из экземпляра SharePoint.

1 голос
/ 18 августа 2009

Я и Рич Финн написали инструмент под названием SPSource, который обратный инжиниринг списков для списков шаблонов, типов контента и столбцов сайта. Пожалуйста, проверьте его на http://spsource.codeplex.com/, там есть подробные руководства пользователя и веб-трансляции, чтобы показать вам, как его использовать.

1 голос
/ 15 июля 2009

Большая проблема со всеми файлами schema.xml, которые вы обычно копируете, состоит в том, что 90% кода находится в различных элементах представления. Для этого есть чрезвычайно простое решение - используйте один из стандартных ViewStyles.

Вот простая, читаемая минималистическая схема для начала. Прочитайте 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>
0 голосов
/ 04 ноября 2011

Создайте список, который вы хотите разработать в локальной среде разработки, используя параметры браузера. Сохраните сайт как шаблон. Загрузите его в локальную файловую систему.

Теперь создайте новый проект Visual Studio с шаблоном, импортируйте из пакета решения. Найдите пакет решения, который хранится в файловой системе. Теперь, когда вы видите решение, вы найдете список, созданный вами. Файл schema.XML будет находиться в определении списка. Скопируйте содержимое типа контента, полей и представлений и вставьте его в файл schema.xml.

0 голосов
/ 20 января 2009

Добавляя к ответу EG, если вы хотите изменить только поля, прикрепленные к существующему списку (но оставить представления и т. Д. Практически одинаковыми), вам придется изменить положение в двух местах: List / MetaData / Поля и Список / Метаданные / Представления / Вид / Поля просмотра.

Раздел «Поля» относительно прост, если вы соблюдаете документацию .

Чтобы столбцы отображались в данном представлении, вам нужно отредактировать раздел ViewFields для данного представления. Например, если у вас есть столбцы с именами Title, Author и Publisher, которые вы хотите отобразить в представлении, найдите раздел ViewFields этого представления и измените его следующим образом:

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

Эти поля (и только эти поля) должны отображаться в этом представлении.

...