В SharePoint самый простой способ создания схемы пользовательского списка.xml-файл?

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

9 ответов


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

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

  • пользовательский список-функции / CustomList / Customlist / schema.в формате XML;
  • библиотека документов-функции / DocumentLibrary/DocLib / schema.в формате XML;
  • календарь-функция / список событий / События / схема.в формате XML;
  • используйте поиск, чтобы найти другие.

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

The .stp-файл, который вы получаете, в основном просто .cab файл с забавным именем. Переименуйте в cab и извлеките манифест, который будет включать почти готовую к использованию схему.XML-файл для использования.

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

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


с Средства Windows SharePoint Services 3.0: Расширения Visual Studio 2008, Версия 1.2 поставляется приложение под названием "SharePoint Solution Generator 2008". Это приложение имеет некоторые ограничения (хуже всего ИМО что столбцы поиска исчезают), но он создает файлы, которые вам нужно создать, т. е. функцию из существующего списка SharePoint. Это включает в себя схему.XML.


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

проверьте список расширений Garys в команды STSADM/PowerShell.


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

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

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


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


большая проблема со всей схемой.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>

добавление в ответ EG, если вы хотите только изменить поля, прикрепленные к существующему списку (но оставьте представления и т. д. по сути, то же самое), вам придется изменить вещи в основном в двух местах: список/метаданные/поля и список/метаданные/представления/просмотр/поля просмотра.

раздел поля относительно прямолинейный, если вы следуете документация.

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

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

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


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

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