XIP Format

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

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.

  1. Einfache XML-Datei
  2. Verzeichnisstruktur mit Dateien
  3. ZIP-Datei, die Verzeichnisstrukturen mit Dateien enthält


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"

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