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>

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 web ermöglicht eine leerzeichenseparierte Übergabe von Website-Guids, welche angezeigt werden soll. 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 Attribute 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.

<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 Type listItems lässt sich mit Hilfe des Attributes listItemsTypes einschränken. Das Attribut erwartet leerzeichenseparierte ContentTypes von Listeneinträgen.

Eine beispielhafte Anwendung der Einschränkung ist im folgenden Beispiel dargestellt.

<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>