Simple Typen

Nach der Installation der SharePoint Schemas kann man diese innerhalb des onion.net Editors nutzen.
Für diesen Zweck stehen drei simple Typen zur Verfügung.

  • web
  • list
  • listItem

Diese Typen können in einem XML Schema einem Element oder Attribut zugewiesen werden. Um die Typen nutzen zu können ist ein Import des Namensraumes »http://onion.net/sharepointintegration/editor« notwendig. In dem folgenden Beispiel werden die drei möglichen Typen in einem Schema genutzt.

<xs:schema xmlns:references="http://onionworks.net/2004/references" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:onion="http://onionworks.net/2004/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sharepoint="http://onion.net/sharepointintegration" elementFormDefault="qualified" onion:schemaLocation="http://www.example.com/test/container">
<xs:import schemaLocation="http://onion.net/sharepointintegration/editor" namespace="http://onion.net/sharepointintegration" />
<xs:element name="container">
<xs:complexType>
<xs:sequence>
<xs:element name="testElement1" type="sharepoint:list" />
<xs:element name="testElement2" type="sharepoint:listItem" />
</xs:sequence>
<xs:attribute name="testAttribute" type="sharepoint:web" />
</xs:complexType>
</xs:element>
</xs:schema>

Weitere Einschränkung

Die simplen Typen lassen sich durch das Setzen bestimmter Attribute am XML Schema einschränken. An jedem Typen lassen die Attribute webs und languages setzen. Mit Hilfe dieser Attribute lassen sich die angezeigten Websites, Listen und Listeneinträge einschränken. 

Das Attribut webs ermöglicht eine leerzeichenseparierte Übergabe von Website-Guids, welche angezeigt werden sollen.

Das Attribut languages schränkt nach Sprachen ein und erwartet die leerzeichenseparierte Eingabe von sogenannten TwoLetterISOLanguageNames. Sollte die Standardsprache des Webs nicht erlaubt sein, so wird dieses jedoch trotzdem angezeigt, kann jedoch nicht gespeichert werden.

Zusätzlich zu den allgemeinen Restriktionen können die simplen Typen list und listItems weiter eingeschränkt werden.

Der Typ list kann mit dem Attribut listTypes eingeschränkt werden. In diesem Attribut ist die Übergabe von leerzeichenseparierten Listennamen möglich. Da SharePoint nur begrenzt die Listentypen unterscheidet (bspw. SPList, SPPictureLibrary), kann für eine granulare Differenzierung der Listen in der web.config der onion.net Render Engine für Listen ein Alias-Listentyp angegeben werden. Wie diese Aliase konfiguriert werden wird im Abschnitt der SharePoint Render Engine Konfiguration beschrieben.

Der nachfolgende Code zeigt beispielhaft den entsprechenden Abschnitt, in dem ein Listen-Typ "Glossary" definiert wird.

<source xlinkPrefix="sharepoint" type="Onion.RenderEngine.DataSources.SharePointIntegration.Client.SharePointRepository, Onion.RenderEngine.DataSources.SharePointIntegration.Client">
<server uri="tcp://localhost:8081/onion/sharepointintegration" />
<typedLists>
<type name="Glossary" listGuids="00000000-0000-0000-0000-000000000000" />
</typedLists>
</source>

Der simple Typ listItems lässt sich mit Hilfe des Attributes listItemTypes einschränken. Das Attribut erwartet leerzeichenseparierte ContentTypes von Listeneinträgen.

Beispiel

Der folgende Code zeigt beispielhaft die Einschränkung der unterschiedlichen SharePoint Typen.

<xs:schema xmlns:references="http://onionworks.net/2004/references" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:onion="http://onionworks.net/2004/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sharepoint="http://onion.net/sharepointintegration" elementFormDefault="qualified" onion:schemaLocation="http://www.example.com/test/container">
<xs:import schemaLocation="http://onion.net/sharepointintegration/editor" namespace="http://onion.net/sharepointintegration" />
<xs:element name="container">
<xs:complexType>
<xs:sequence>
<xs:element name="test1" type="sharepoint:web" sharepoint:languages="de en" />
<xs:element name="test2" type="sharepoint:web" sharepoint:webs="1afa5b78-83b4-44b9-b3d8-65da514dfffa" />
<xs:element name="test3" type="sharepoint:list" sharepoint:listTypes="Glossary" />
</xs:sequence>
<xs:attribute name="test4" type="sharepoint:listItem" sharepoint:listItemTypes="BlogComment WhatsNew" />
</xs:complexType>
</xs:element>
</xs:schema>