OpenCms-eigene Import-Spezifikation

Einer der Vorteile von OpenCms ist die durchgängige XML-Unterstützung. Alle Inhalte sind als XML-Dokumente gespeichert und werden als solche exportiert und importiert. Die Metadaten der Inhalte (Eigenschaften, Berechtigungen, Zugriffsdaten) werden ebenso als XML exportiert/importiert.

Damit existiert ein weiteres Migrationsverfahren, dass aus ihrem bisherigen System direkt das notwendige Import-Archiv direkt erzeugt wird. Dies ist vor allem dann einfach zu realisieren, wenn Inhalte in Datenbanken liegen und mit Skripten die entsprechenden Ausgaben leicht erzeugt werden können.

Es müssen also zwei Punkte realisiert werden:



Verzeichnisstruktur und XML-Dateien

Sie erstellen eine Verzeichnisstruktur und legen in den jeweiligen Unterverzeichnissen Ihre XML-Dateien ab. Hierfür benutzen Sie das XML-Schema der "Freitextseiten" (Typ xmlpage). Pro Inhaltesseite legen Sie eine Datei (in der Terminologie von OpenCms "Ressource" genannt) an. Zur Erinnerung: in einer Ressource sind alle Sprachen vorhanden (s. Attribut 'language="iso"'). Die Ressourcen sind in der richtigen Verzeichnishierarchie anzulegen und zu benennen. Dies sind die späteren URLs, mit der Sie Ihre Seiten erreichen. Diese Seite basiert z.B. auf folgendem XML-Dokument:

<?xml version="1.0" encoding="UTF-8"?>
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.opencms.org/dtd/6.0/xmlpage.xsd">
  <page language="de">
    <element name="body">
      <links/>
      <content><![CDATA[<p>Einer der Vorteile von OpenCms ist die durchgängige ... ]]></content>
    </element>
  </page>
  <page language="en">
    <element name="body">
      <links/>
<content><![CDATA[<p>One of the advantages of OpenCms is the consequent ... ]]></content>
</element>
</page>
</pages>

Beachten Sie bitte dabei:

  • Sie dürfen (nur) ein HTML-Fragment einbetten.
  • Das Fragment darf kein <html>-, <header>- oder <body>-Tag enthalten
  • Das Fragment darf keine CDATA-Sektion enthalten
  • Inhalt kann in mehreren Sprachen abgelegt werden. Der jeweilige Inhalt ist in einem <page>-Tag mit dem Attribut language="iso".
  • Nur die Sprachen deutsch und englisch sind momentan verfügbar.
  • Dieses Shell-Skript konvertiert die HTML-Fragmente (ersetzt sie!) zu XML-Dokumente. Sie benötigen dazu noch diese Bibliothek im gleichen Verzeichnis.


Zusätzliche Definition von Metadaten

Die Manifest-Datei (manifest.xml) enthält Metadaten der Ressourcen. Pro Datei legen Sie im <files>-Tag ein <file>-Tag an. Einige Tags müssen, gemäß der Schemadefinition, trotz fehlendem Inhalt angegeben werden. Ein Beispiel:

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

<export>
        <info>
                <creator/>
                <opencms_version>7.0.5</opencms_version>
                <createdate/>
                <infoproject>Offline</infoproject>
                <export_version>7</export_version>
        </info>
        <files>
                <file>
                        <source>fak7/isys</source>
                        <destination>fak7/isys</destination>
                        <type>folder</type>
                        <datelastmodified/>
                        <userlastmodified/>
                        <datecreated/>
                        <usercreated/>
                        <flags>0</flags>
                        <properties>
                                <property>
                                        <name>Title</name>
                                        <value><![CDATA[Seiten des ISYS]]></value>
                                </property>
                                <property>
                                        <name>NavText</name>
                                        <value><![CDATA[ISYS]]></value>
                                </property>
                        </properties>
                        <relations/>
                        <accesscontrol/>
                </file>
      </files>
<export>

Bitte beachten Sie folgende Punkte:

  • Das Tag <type> definiert den Typ: es sollte für Sie nur folder (ein Verzeichnis) oder xmlpage (eine Freitextseite) sein.
  • Das Tag <property> nimmt die zwei wichtigen Metadaten für Ihre Seiten auf: NavText (Navigationsbezeichnung) und Title (Seitentitel).
  • Die Eigenschaft locale (mit Wert z.B. de) definiert die Standardsprache einer Seite, falls mehrsprachiger Inhalt vorhanden ist.
  • Mit diesem einfachen Shell-Skript (writemanifest.sh sourcedir) können Sie dieses XML-Dokument erzeugen lassen.Die Annahme ist dabei, dass alle HTML-Dateien die Extension .html oder .htm haben und vom Typ xmlpage sind. Sie benötigen hier wiederum diese Bibliothek im gleichen Verzeichnis.


Übergabe an uns

Als letzten Schritt verpacken Sie bitte alles in ein ZIP-Archiv ohne weitere Unterverzeichnisse, d.h. manifest.xml liegt in keinem Unterverzeichnis! Dieses Archiv übergeben Sie bitte an uns. Ggf. können Sie auf einem OpenCms-Testsystem, bei dem Sie Adminstationsrechte haben Ihr Archiv selbständig prüfen. Ein Beispielarchiv können Sie hier herunterladen.
Nach der Übergabe und dem Import bleiben für uns eine Punkte der Bereinigung, v.a. der URLs. Alle Referenzen auf eigene Dokumente werden in die OpenCms-Verzeichnisstruktur überführt.