XIP Format
Beschreibung
XIP (eXchange Information Package) ist ein von Sitepark entwickeltes Format zum Austausch von Daten in und aus dem IES.
Im einfachsten Fall besteht ein XIP aus einer XML-Datei. Die auszutauschenden Daten werden in einem definierten XML-Format beschrieben. Bei komplexeren Daten kann ein XIP aus mehreren Dateien bestehen, die unterhalb eines Verzeichnis liegen müssen, aber auch Unterverzeichnisse beliebiger Tiefe enthalten können. Dieses Verzeichnis kann auch mit ZIP zu einer ZIP-Datei zusammengefasst werden.
Ein XIP ist ein drei verschiedenen Formen gültig.
- Einfache XML-Datei
- Verzeichnisstruktur mit Dateien
- ZIP-Datei, die Verzeichnisstrukturen mit Dateien enthält
Nutzer
Neben Artikeln können auch alle anderen IES-Elemente bzw. Pools über diese Schnittstelle importiert werden. Die Eigenschaften der Nutzer werden über Attribute bestimmt. Zusäzliche Inhalte (z.B. Telefonnummer) werden über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute des XML-Elements "user"
anchor
- Anker des Nutzers. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
firstname
- Vorname des Nutzers (String).
lastname
- Nachname des Nutzers (String).
login
- Login des Nutzers (String).
type
- Nutzertyp (Integer).
password
- binäres Passwort des Nutzers (i.d.R. wird das Attribut "
clear-password
" verwendet, um ein Passwort zu setzen) (Base64-Encoded Bytes
). clear-password
- Klartextpasswort des Nutzers (String).
email
- System-E-Mail-Adresse des Nutzers (String).
locale
- Sprache des Nutzers (z.B. "
de
" oder "de_DE
") (String). sex
- Geschlecht des Nutzers (
0=female, 1=male, -1=unknown
) (Integer). valid-from
- Ein Long-Wert mit der Angabe der Freischaltungszeit (Long).
valid-to
- Ein Long-Wert mit der Angabe der Freischaltungszeit (Long).
disabled
- Sperre des Nutzers (Boolean).
Templates
Die Eigenschaften für Templates werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte (z.B. das Layout) werden über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute bzw. Unterelemente des XML-Elements "template
"
anchor
- Anker des Templates. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
name
- Name des Templates (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
type
- Optionaler Typ des Templates (Template: 6000, Tag: 6001) (Integer).
spml-version
- Optionale Angabe der SPML-Version, auf der das Template basiert (String).
suffix
- Dateiendung für Artikel die mit diesem Template angelegt werden (String).
source
- Der SPML-Quellcode des Templates als sog. Body-Tag:
< source > ... < /source >
(String).
Das Feld "layout
" wird als "text
" innerhalb einer "resource
" definiert und hat folgende Werte:
common
- Normales Template.
handler
- Template welches eigene Handler-Aufrufe enthält.
tag
- Ein Tag-Template.
container
- Ein Template mit Angaben zum Container.
Rollen
Die Eigenschaften für Rollen werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte können über eine Resource beschrieben werden. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. Die Angabe der Publisher für diese Rolle wird über einen eigene Tag gesteuert. Dieser steht innerhalb des Tags "role
".
Attribute des XML-Elements "role
"
anchor
- Anker der Rolle. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
name
- Name der Rolle (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
new-element
- Das Recht neue Elemente anzulegen (Boolean).
read-element
- Das Recht Elemente zu lesen (Boolean]).
modify-element
- Das Recht Elemente zu verändern (Boolean).
delete-element
- Das Recht Elemente zu löschen (Boolean).
duplicate-element
- Das Recht Elemente zu duplizieren (Boolean).
max-element
- Maximale Anzahl von Elementen (Integer).
read
- Das Recht den aktuellen Pool zu lesen (Boolean).
modify
- Das Recht den aktuellen Pool zu verändern (Boolean).
duplicate
- Das Recht den aktuellen Pool zu duplizieren (Boolean).
new-pool
- Das Recht neue Pools anzulegen (Boolean).
delete-pool
- Das Recht Pools zu löschen (Boolean).
max-pool
- Maximale Anzahl von Pools (Integer).
editor-level
- Angabe des Level (Kommaseparierte Liste von Strings)
is-workflow-role
- Angabe, ob diese Rolle für Workflow verwendet werden soll (Boolean).
publisher
- Dieser Tag dient zur Konfiguration der Publisher dieser Rolle. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Das Feld "
hide
" (Boolean) steuert, ob der Publisher sichtbar sein soll oder nicht.
<publisher publisher-id="pub1" hide="true"/>
<publisher publisher-id="pub2" hide="false"/>
<publisher anchor="preview" hide="false"/>
Artikelpools
Um einen Artikelpool zu importieren, muss eine XML-Datei erstellt werden, die das Root-Element "articlepool
" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines Resource-Tags vorgenommen. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute des XML-Elements "articlepool
"
anchor
- Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
name
- Name des Pools (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
directory
- Angabe des Arbeitsverzeichnisses dieses Artikelpools (String).
Hier ein vollständiges Beispiel eines Artikelpools:
<!--
Einen Artikelpool anlegen:
<articlepool legt einen Artikel an
anchor Anker des Pools (dient beim wiederholten Import als Primärschlüssel
und als Parent für die Artikel)
name Name des Pools
parent Anker des Parentpools (Angabe muss über einen Anker erfolgen)
directory Angabe des Arbeitsverzeichnisses dieses Artikelpools
-->
<articlepool
anchor="import.pool.1"
name="Pool für importierte Artikel (Ebene 1)"
parent="gui.informations"
directory="/level_1">
<!--
Sämtliche META-Daten eines Pools werden vom System implizit in einer
Resource gespeichert
-->
<resource>
<!--
einfache Textfelder, in denen die Konfiguration der Artikelpools
steht (auch hier über die Angabe von Ankern gelöst)
-->
<!--
Angabe des Containers:
"is5:gui.container.infosite.standard" oder
"is5:gui.container.infosite.media" möglich
-->
<text name="container" anchor="is5:gui.container.infosite.standard"></text>
<!--
Angabe des Template-Pools, für die Auswahl von Templates in diesem Pool:
Ein Anker aus dem eigenem System
-->
<text name="editorTemplatePool" anchor="standard.container.editing"></text>
<!--
Angabe des Templates für die Artikelanmeldung:
"is5:gui.container.infosite.standard.all"
erlaubt beispielsweise das Anlegen aller Artikeltypen
-->
<text
name="registrationTemplate"
anchor="is5:gui.container.infosite.standard.all">
</text>
<!-- beliebige weitere Eingabefelder -->
<text name="sp_rubric">demo</text>
<systemlink name="sp_parentLink" anchor="article.rubric"/>
</resource>
</articlepool>
Angaben zur Konfiguration
Damit ein Artikelpool in InfoSite 5 so funktioniert wie ein manuell ersteller Pool, müssen bestimmte Felder mit entsprechenden META
-Daten angelegt werden. Hierzu zählen im Besonderen die Angaben zum Feld "container
" und "registration_template
". Die Felder "editor_template_pool
" und "editor_template
" verweisen auf das ausgewählte Template bzw. den Templatepool, der dem Redakteur zur Verfügung steht.
<!--
Angabe des Containers:
is5:gui.container.infosite.standard
is5:gui.container.infosite.media
-->
<text name="container" anchor="is5:gui.container.infosite.standard"></text>
<!--
Angabe des Template-Pools, für die Auswahl von Templates in diesem Pool:
Ein Anker aus dem eigenem System
-->
<text name="editorTemplatePool" anchor="standard.container.editing"></text>
<!--
Angabe des Templates für die Artikelanmeldung:
is5:gui.container.infosite.standard.all
(erlaubt z.B. das Anlegen aller Artikeltypen)
-->
<text
name="registrationTemplate"
anchor="is5:gui.container.infosite.standard.all">
</text>
Standard InfoSite Container
Der "Standard InfoSite Container" wird i.d.R. für alle normalen Artikelpools verwandt. Hierüber ist ein Redakteur in der Lage, Artikel jeden Typs anzulegen. Die Konfiguration der möglichen Artikeltypen wird über das Feld "registration_template
" vorgenommen. Dies erfolgt in InfoSite über eine Select-Box. Im XML-Dokument müssen diese Werte manuell über Anker eingestellt werden. Folgende Anker sind dafür vorhanden:
- "alle Artikel-Typen"
gui.container.infosite.standard.all
- "nur Medien anlegen"
gui.container.infosite.standard.media
- "nur Ressourcen anlegen"
gui.container.infosite.standard.resource
- "nur Seiten anlegen"
gui.container.infosite.standard.page
- "nur Seiten ohne Namensvergabe anlegen"
gui.container.infosite.standard.pageAutoName
- "nur Seiten und Medien anlegen"
gui.container.infosite.standard.pageAndMedia
- "nur Seiten und Ressourcen anlegen"
gui.container.infosite.standard.pageAndResource
Standard Medien Container
Der "Standard Medien Container" wird für reine Medienpools verwandt. Hier sind neben der Angabe Container
keine weiteren Angaben notwendig.
Nutzer-, Template- und Rollenpools
Um einen Nutzer-, Rollen oder Templatepool zu importieren, muss eine XML-Datei erstellt werden, die das entsprechende Root-Element, also "userpool
", "templatepool
" oder "rolepool
" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines Resource-Tags vorgenommen. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute der XML-Elemente "userpool
", "templatepool
", "rolepool
"