XIP Format: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
Zeile 89: Zeile 89:
  
 
==Verzeichnisstruktur mit Dateien==
 
==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 [[#Einfache XML Datei|obigen Abschnitt]] beschrieben
+
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.
 +
 
 +
===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 <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.
 +
 
 +
XIP-Basis-Verzeichnis
 +
|
 +
+-- Tutorial-Verzeichnis
 +
    |
 +
    +-- XIP-INF
 +
    |  |
 +
    |  +-- pool.xml
 +
    |
 +
    +-- XIP-Verzeichnis
 +
        |
 +
        +-- XIP-INF
 +
        |  |
 +
        |  + pool.xml
 +
        |
 +
        +-- 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>
  
 
===Lange Verzeichnisnamen unter Windows===
 
===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.
 
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.
 
 
  
 
<noinclude>
 
<noinclude>

Version vom 7. Mai 2009, 17:07 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 1 von 2</text>
   </article>
   <article anchor="article.example.xip.2" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
      <text name="sp_title">Einfache XIP-Datei 2 von 2</text>
   </article>
</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 1 von 2</text>
      </article>
      <article anchor="article.example.xip.2" name="Example 1" parent="pool.tutorial.xip" template="tpl.content" filename="article.example">
         <text name="sp_title">Einfache XIP-Datei 2 von 2</text>
      </article>

   </articlepool>
</articlepool>

Das zusammenfassen von Elementen mit dem <xip>-Element und über Pool-Elemente läßt sich auch kombinieren, so das auch die unterschiedlichsten 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.

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