XIP Format: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Beschreibung==
 
XIP (e'''X'''change '''I'''nformation '''P'''ackage) 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.
 
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.
  
Zeile 10: Zeile 7:
  
  
 +
==Einfache XML Datei==
  
==Artikelpools==
+
Eine einfache XML Datei kann eines der Folgenden Elemente enthalten:
Um einen Artikelpool zu importieren, muss eine XML-Datei erstellt werden, die das Root-Element "<code>articlepool</code>" 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.
+
* [[XIP Article]]
 
+
* [[XIP User]]
Attribute des XML-Elements "<code>articlepool</code>"
+
* [[XIP Template]]
;<code>anchor</code>
+
* [[XIP Role]]
:Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]).
+
* [[XIP Pool]]
;<code>name</code>
+
* [[XIP Permissions]]
:Name des Pools ([[String]]).
 
;<code>parent</code>
 
:Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]).
 
;<code>directory</code>
 
:Angabe des Arbeitsverzeichnisses dieses Artikelpools ([[String]]).
 
  
Hier ein vollständiges Beispiel eines Artikelpools:
+
Eine einfache XIP-Datei mit einem Artikel könnte z.B. so aussehen:
 
<source lang="xml">
 
<source lang="xml">
<!--
+
<?xml version="1.0" encoding="UTF-8" ?>
Einen Artikelpool anlegen:
 
  
<articlepool   legt einen Artikel an
+
<article anchor="article.example.xip.1" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
 +
   <text name="sp_title">Einfache XIP-Datei</text>
 +
</article>
 +
</source>
  
anchor          Anker des Pools (dient beim wiederholten Import als Primärschlüssel
+
Um mehrere Elemente in einer XML Datei zu definieren können alle oben aufgeführten Elemente innerhalb eines <code><xip></code>-Elementes liegen.
                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
+
Eine einfache XML-Datei mit mehreren Artikeln könnte z.B. so aussehen:
  anchor="import.pool.1"
+
<source lang="xml">
  name="Pool für importierte Artikel (Ebene 1)"
+
<?xml version="1.0" encoding="UTF-8" ?>
  parent="gui.informations"
 
  directory="/level_1">
 
  
    <!--
+
<xip>
       Sämtliche META-Daten eines Pools werden vom System implizit in einer
+
  <article anchor="article.example.xip.1" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
      Resource gespeichert
+
       <text name="sp_title">Einfache XIP-Datei</text>
    -->
+
  </article>
    <resource>
+
  <media anchor="article.example.xip.2" name="Example 2" parent="pool.tutorial.xip">
        <!--
+
      <binary url="file://./logo.gif"/>
          einfache Textfelder, in denen die Konfiguration der Artikelpools
+
  </media>
          steht (auch hier über die Angabe von Ankern gelöst)
+
</xip>
        -->
+
</source>
  
        <!--
+
Um ganze Poolstrukturen zu importieren, können innerhalb eines Pool-Elementes weitere Elemente und Unterpools liegen.
          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>
 
  
        <!--
+
Eine einfache XML-Datei mit Poolstruktur könnte z.B. so aussehen:
          Angabe des Template-Pools, für die Auswahl von Templates in diesem Pool:
+
<source lang="xml">
          Ein Anker aus dem eigenem System
+
<?xml version="1.0" encoding="UTF-8" ?>
        -->
 
        <text name="editorTemplatePool" anchor="standard.container.editing"></text>
 
  
        <!--
+
<articlepool anchor="pool.tutorial" name="IES Tutorial" parent="gui.informations" directory="/tutorial">
          Angabe des Templates für die Artikelanmeldung:
+
  <articlepool anchor="pool.tutorial.xip" name="XIP" parent="pool.tutorial.xip" directory="/xip">
          "is5:gui.container.infosite.standard.all"
+
      <resource>
          erlaubt beispielsweise das Anlegen aller Artikeltypen
+
        <text name="container" anchor="is5:gui.container.infosite.standard"/>
        -->
+
        <text name="editorTemplatePool" anchor="standard.container.editing"/>
        <text
+
        <text name="registrationTemplate" anchor="is5:gui.container.infosite.standard.all"/>
          name="registrationTemplate"
+
      </resource>
          anchor="is5:gui.container.infosite.standard.all">
 
        </text>
 
  
        <!-- beliebige weitere Eingabefelder -->
+
      <article anchor="article.example.xip.1" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
        <text name="sp_rubric">demo</text>
+
        <text name="sp_title">Einfache XIP-Datei</text>
        <systemlink name="sp_parentLink" anchor="article.rubric"/>
+
      </article>
    </resource>
+
      <media anchor="article.example.xip.2" name="Example 2" parent="pool.tutorial.xip">
 +
        <binary url="file://./logo.gif"/>
 +
      </media>
 +
 
 +
  </articlepool>
 
</articlepool>
 
</articlepool>
 
</source>
 
</source>
  
===Angaben zur Konfiguration===
+
Das zusammenfassen von Elementen mit dem <code><xip></code>-Element und über Pool-Elemente läßt sich auch kombinieren, so das auch die unterschiedlichen Elemente innerhalb einer XML-Datei zusammengefasst werde können.
Damit ein Artikelpool in InfoSite 5 so funktioniert wie ein manuell ersteller Pool, müssen bestimmte Felder mit entsprechenden <code>META</code>-Daten angelegt werden. Hierzu zählen im Besonderen die Angaben zum Feld "<code>container</code>" und "<code>registration_template</code>". Die Felder "<code>editor_template_pool</code>" und "<code>editor_template</code>" verweisen auf das ausgewählte Template bzw. den Templatepool, der dem Redakteur zur Verfügung steht.
 
 
<source lang="xml">
 
<source lang="xml">
<!--
+
<?xml version="1.0" encoding="UTF-8" ?>
Angabe des Containers:
 
  is5:gui.container.infosite.standard
 
  is5:gui.container.infosite.media
 
-->
 
<text name="container" anchor="is5:gui.container.infosite.standard"></text>
 
  
<!--
+
<xip>
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>
 
  
<!--
+
  <articlepool ...>
Angabe des Templates für die Artikelanmeldung:
+
      <article ...>...</article>
  is5:gui.container.infosite.standard.all
+
      <articlepool ...>
  (erlaubt z.B. das Anlegen aller Artikeltypen)
+
        <article ...>...</article>
-->
+
      </articlepool>
<text
+
  </articlepool>
  name="registrationTemplate"
+
 
  anchor="is5:gui.container.infosite.standard.all">
+
  <userpool ...>
</text>
+
      <user ...>...</user>
 +
  </userpool>
 +
 
 +
  <template ...>...</template>
 +
 
 +
</xip>
 
</source>
 
</source>
  
====Standard InfoSite Container====
+
==Verzeichnisstruktur mit Dateien==
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 "<code>registration_template</code>" 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:
+
XIP Daten können nicht nur aus einer XML-Datei, sondern auch aus mehreren Dateien in einer Verzeichnisstruktur beliebiger Tiefe bestehen. In einem gemeinsamen Verzeichnis können mehrere XML-Dateien abgelegt werden, die, wie im [[#Einfache XML Datei|obigen Abschnitt]] beschrieben, aufgebaut sein können.
;"alle Artikel-Typen"
+
 
:<code>gui.container.infosite.standard.all</code>
+
Artikel des IES können auch Medien enthalten. Um Medien eines Artikels in XIP zu beschreiben, bestehen zwei Möglichkeiten.
;"nur Medien anlegen"
+
# Die binären Daten des Mediums werden BAS64-Encodiert in der XML-Datei abgelegt
:<code>gui.container.infosite.standard.media</code>
+
# Das Medium wird als eigene Datei in der Verzeichnisstruktur des XIP abgelegt. Der Pfad zu dem Medium kann innerhalb der XML-Datei des Artikels relativ zu dieser Datei angegeben werden.
;"nur Ressourcen anlegen"
 
:<code>gui.container.infosite.standard.resource</code>
 
;"nur Seiten anlegen"
 
:<code>gui.container.infosite.standard.page</code>
 
;"nur Seiten ohne Namensvergabe anlegen"
 
:<code>gui.container.infosite.standard.pageAutoName</code>
 
;"nur Seiten und Medien anlegen"
 
:<code>gui.container.infosite.standard.pageAndMedia</code>
 
;"nur Seiten und Ressourcen anlegen"
 
:<code>gui.container.infosite.standard.pageAndResource</code>
 
  
====Standard Medien Container====
+
===XIP-INF Verzeichnis===
Der "Standard Medien Container" wird für reine Medienpools verwandt. Hier sind neben der Angabe <code>Container</code> keine weiteren Angaben notwendig.
+
Für den Aufbau eines XIP ist es Sinnvoll alle in einem Pool liegenden Elemente auch als XIP-Dateien in einem Verzeichnis abzulegen.
 +
Bei den oben beschriebenen XML-Dateien muss aber für jedes Element ein <code>parent</code> angegeben werden, um zu bestimmten, in welchem Pool das Element enthalten ist. Soll nachträglich das Element in einem anderen Pool (also in einem anderen Verzeichnis) abgelegt werden, muss auch immer das <code>parent</code>-Attribut für den neuen Pool gesetzt werden. Um flexibler mit XIP-Element-Dateien innerhalb von Verzeichnissen umgehen zu können, kann ein Verzeichnis als Pool definiert werden. Hierzu muss dieses Verzeichnis ein Unterverzeichnis <code>XIP-INF</code> besitzen. In diesem Unterverzeichnis wird eine Datei <code>pool.xml</code> abgelegt, die die XIP-Pool-Daten enthält. Alle XIP-Element-Dateien in diesem als Pool definierten Verzeichnis benötigen kein <code>parent</code>-Attribut mehr. Durch das Verzeichnis wird definiert, in welchem Pools sich das Element befindet.
  
==Nutzer-, Template- und Rollenpools==
+
XIP-Basis-Verzeichnis
Um einen Nutzer-, Rollen oder Templatepool zu importieren, muss eine XML-Datei erstellt werden, die das entsprechende Root-Element, also "<code>userpool</code>", "<code>templatepool</code>" oder "<code>rolepool</code>" 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.
+
|
 +
+-- Tutorial-Verzeichnis
 +
    |
 +
    +-- XIP-INF
 +
    |  |
 +
    |  +-- pool.xml
 +
    |
 +
    +-- XIP-Verzeichnis
 +
        |
 +
        +-- XIP-INF
 +
        |  |
 +
        |  + pool.xml
 +
        |  |
 +
        |  + permissions.xml (wenn auch Rechte definiert werden sollen)
 +
        |
 +
        +-- Beispiel_1.xml
 +
        |
 +
        +-- Beispiel_2.xml
 +
 
 +
<code>Tutorial-Verzeichnis/XIP-INF/pool.xml</code>
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8" ?>
 +
 
 +
<articlepool anchor="pool.tutorial" name="IES Tutorial" parent="gui.informations" directory="/tutorial">
 +
</articlepool>
 +
</source>
 +
 
 +
<code>Tutorial-Verzeichnis/XIP-Verzeichnis/XIP-INF/pool.xml</code>
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8" ?>
 +
 
 +
<articlepool anchor="pool.tutorial.xip" name="XIP" directory="/xip">
 +
  <resource>
 +
      <text name="container" anchor="is5:gui.container.infosite.standard"/>
 +
      <text name="editorTemplatePool" anchor="standard.container.editing"/>
 +
      <text name="registrationTemplate" anchor="is5:gui.container.infosite.standard.all"/>
 +
  </resource>
 +
</articlepool>
 +
</source>
 +
 
 +
<code>Tutorial-Verzeichnis/XIP-Verzeichnis/Beispiel_1.xml</code>
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8" ?>
 +
 
 +
<article anchor="article.example.xip.1" name="Example 1" template="tpl.content" filename="article.example">
 +
  <text name="sp_title">Einfache XIP-Datei 1 von 2</text>
 +
</article>
 +
</source>
  
Attribute der XML-Elemente "<code>userpool</code>", "<code>templatepool</code>", "<code>rolepool</code>"
+
===Lange Verzeichnisnamen unter Windows===
;<code>anchor</code>
+
Auch wenn es für XIP keine Begrenzung der Verzeichnistiefe gibt, sollte dennoch beachtet werden das unter Windows ein Dateiname mit Verzeichnis-Pfad aus maximal 255 Zeichen bestehen darf. Für die im XIP enthaltenen Pfaden (die relativ sind) muss auch immer noch das Basis-Verzeichnis dazugerechnet werden (Z.B. <code>C:\Programme\Sitepark</code> oder ein beliebiges Verzeichnis, in dem mit XIP gearbeitet wird). Der daraus resultierende gesamte Pfad darf nicht mehr als 255 Zeichen enthalten.  
:Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]).
 
;<code>name</code>
 
:Name des Pools ([[String]]).
 
;<code>parent</code>
 
:Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]).
 
  
 +
==ZIP-Datei, die Verzeichnisstrukturen mit Dateien enthält==
 +
Um XIP über das Netzwerk auszutauschen ist eine Verzeichnisstruktur ungeeignet. Die Verzeichnisstruktur kann gezippt werden, um daraus eine Datei zu erzeugen. Diese ZIP-Datei ist ebenfalls eine gültige XIP-Datei und sollte die Endung <code>.xip</code> besitzen.
  
 
<noinclude>
 
<noinclude>

Aktuelle Version vom 14. April 2010, 09:30 Uhr

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


Einfache XML Datei

Eine einfache XML Datei kann eines der Folgenden Elemente enthalten:

Eine einfache XIP-Datei mit einem Artikel könnte z.B. so aussehen:

<?xml version="1.0" encoding="UTF-8" ?>

<article anchor="article.example.xip.1" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
   <text name="sp_title">Einfache XIP-Datei</text>
</article>

Um mehrere Elemente in einer XML Datei zu definieren können alle oben aufgeführten Elemente innerhalb eines <xip>-Elementes liegen.

Eine einfache XML-Datei mit mehreren Artikeln könnte z.B. so aussehen:

<?xml version="1.0" encoding="UTF-8" ?>

<xip>
   <article anchor="article.example.xip.1" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
      <text name="sp_title">Einfache XIP-Datei</text>
   </article>
   <media anchor="article.example.xip.2" name="Example 2" parent="pool.tutorial.xip">
      <binary url="file://./logo.gif"/>
   </media>
</xip>

Um ganze Poolstrukturen zu importieren, können innerhalb eines Pool-Elementes weitere Elemente und Unterpools liegen.

Eine einfache XML-Datei mit Poolstruktur könnte z.B. so aussehen:

<?xml version="1.0" encoding="UTF-8" ?>

<articlepool anchor="pool.tutorial" name="IES Tutorial" parent="gui.informations" directory="/tutorial">
   <articlepool anchor="pool.tutorial.xip" name="XIP" parent="pool.tutorial.xip" directory="/xip">
      <resource>
         <text name="container" anchor="is5:gui.container.infosite.standard"/>
         <text name="editorTemplatePool" anchor="standard.container.editing"/>
         <text name="registrationTemplate" anchor="is5:gui.container.infosite.standard.all"/>
      </resource>

      <article anchor="article.example.xip.1" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
         <text name="sp_title">Einfache XIP-Datei</text>
      </article>
      <media anchor="article.example.xip.2" name="Example 2" parent="pool.tutorial.xip">
         <binary url="file://./logo.gif"/>
      </media>

   </articlepool>
</articlepool>

Das zusammenfassen von Elementen mit dem <xip>-Element und über Pool-Elemente läßt sich auch kombinieren, so das auch die unterschiedlichen Elemente innerhalb einer XML-Datei zusammengefasst werde können.

<?xml version="1.0" encoding="UTF-8" ?>

<xip>

   <articlepool ...>
      <article ...>...</article>
      <articlepool ...>
         <article ...>...</article>
      </articlepool>
   </articlepool>

   <userpool ...>
      <user ...>...</user>
   </userpool>

   <template ...>...</template>

</xip>

Verzeichnisstruktur mit Dateien

XIP Daten können nicht nur aus einer XML-Datei, sondern auch aus mehreren Dateien in einer Verzeichnisstruktur beliebiger Tiefe bestehen. In einem gemeinsamen Verzeichnis können mehrere XML-Dateien abgelegt werden, die, wie im obigen Abschnitt beschrieben, aufgebaut sein können.

Artikel des IES können auch Medien enthalten. Um Medien eines Artikels in XIP zu beschreiben, bestehen zwei Möglichkeiten.

  1. Die binären Daten des Mediums werden BAS64-Encodiert in der XML-Datei abgelegt
  2. Das Medium wird als eigene Datei in der Verzeichnisstruktur des XIP abgelegt. Der Pfad zu dem Medium kann innerhalb der XML-Datei des Artikels relativ zu dieser Datei angegeben werden.

XIP-INF Verzeichnis

Für den Aufbau eines XIP ist es Sinnvoll alle in einem Pool liegenden Elemente auch als XIP-Dateien in einem Verzeichnis abzulegen. Bei den oben beschriebenen XML-Dateien muss aber für jedes Element ein parent angegeben werden, um zu bestimmten, in welchem Pool das Element enthalten ist. Soll nachträglich das Element in einem anderen Pool (also in einem anderen Verzeichnis) abgelegt werden, muss auch immer das parent-Attribut für den neuen Pool gesetzt werden. Um flexibler mit XIP-Element-Dateien innerhalb von Verzeichnissen umgehen zu können, kann ein Verzeichnis als Pool definiert werden. Hierzu muss dieses Verzeichnis ein Unterverzeichnis XIP-INF besitzen. In diesem Unterverzeichnis wird eine Datei pool.xml abgelegt, die die XIP-Pool-Daten enthält. Alle XIP-Element-Dateien in diesem als Pool definierten Verzeichnis benötigen kein parent-Attribut mehr. Durch das Verzeichnis wird definiert, in welchem Pools sich das Element befindet.

XIP-Basis-Verzeichnis
|
+-- Tutorial-Verzeichnis
    |
    +-- XIP-INF
    |   |
    |   +-- pool.xml
    |
    +-- XIP-Verzeichnis
        |
        +-- XIP-INF
        |   |
        |   + pool.xml
        |   |
        |   + permissions.xml (wenn auch Rechte definiert werden sollen)
        |
        +-- Beispiel_1.xml
        |
        +-- Beispiel_2.xml

Tutorial-Verzeichnis/XIP-INF/pool.xml

<?xml version="1.0" encoding="UTF-8" ?>

<articlepool anchor="pool.tutorial" name="IES Tutorial" parent="gui.informations" directory="/tutorial">
</articlepool>

Tutorial-Verzeichnis/XIP-Verzeichnis/XIP-INF/pool.xml

<?xml version="1.0" encoding="UTF-8" ?>

<articlepool anchor="pool.tutorial.xip" name="XIP" directory="/xip">
   <resource>
      <text name="container" anchor="is5:gui.container.infosite.standard"/>
      <text name="editorTemplatePool" anchor="standard.container.editing"/>
      <text name="registrationTemplate" anchor="is5:gui.container.infosite.standard.all"/>
   </resource>
</articlepool>

Tutorial-Verzeichnis/XIP-Verzeichnis/Beispiel_1.xml

<?xml version="1.0" encoding="UTF-8" ?>

<article anchor="article.example.xip.1" name="Example 1" template="tpl.content" filename="article.example">
  <text name="sp_title">Einfache XIP-Datei 1 von 2</text>
</article>

Lange Verzeichnisnamen unter Windows

Auch wenn es für XIP keine Begrenzung der Verzeichnistiefe gibt, sollte dennoch beachtet werden das unter Windows ein Dateiname mit Verzeichnis-Pfad aus maximal 255 Zeichen bestehen darf. Für die im XIP enthaltenen Pfaden (die relativ sind) muss auch immer noch das Basis-Verzeichnis dazugerechnet werden (Z.B. C:\Programme\Sitepark oder ein beliebiges Verzeichnis, in dem mit XIP gearbeitet wird). Der daraus resultierende gesamte Pfad darf nicht mehr als 255 Zeichen enthalten.

ZIP-Datei, die Verzeichnisstrukturen mit Dateien enthält

Um XIP über das Netzwerk auszutauschen ist eine Verzeichnisstruktur ungeeignet. Die Verzeichnisstruktur kann gezippt werden, um daraus eine Datei zu erzeugen. Diese ZIP-Datei ist ebenfalls eine gültige XIP-Datei und sollte die Endung .xip besitzen.