package.xml

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Die package.xml ist das Herzstück eines jeden Plugins. Hier werden alle möglichen Tags und deren Parameter erklärt.
    Die package.xml ist die einzige Pflichtdatei, die ihr für die Erstellung eines Plugins benötigt. Die package.xml wird wie alle PIP Dateien in xml geschrieben und muss "package.xml" heißen. Eine andere Schreibweise ist nicht möglich. Innerhalb der package.xml werden die generellen Installations- und Updateinformationen eines Plugins verfasst und sie muss sich im Hauptverzeichnis des Plugins befinden.

    Die XSD auf GitHub


    github.com/WoltLab/WCF/blob/master/XSD/package.xsd


    Mögliche Parameter



    TagParameterDefinition
    <package>name="Paketbezeichner"Einleitendes Elternelement
    <packageinformation>KeineEnthält die Meta-Informationen des Plugins
    <packagename>languagecode="de" (optional)Name des Plugins. Ohne Angabe des Parameters ist diese Angabe immer für en.
    <packagedescription>languagecode="de" (optional)Kurze Pluginbeschreibung. Ohne Angabe des Parameters ist diese Angabe immer für en.
    <readme>languagecode="de" (optional)Noch nicht unterstützt im WSC 5.2.
    Ohne Angabe des Parameters ist diese Angabe immer für en.
    <license>languagecode="de" (optional)Noch nicht unterstützt im WSC 5.2.
    Ohne Angabe des Parameters ist diese Angabe immer für en.
    <isapplication>Keine0 = Es handelt sich um keine Endanwendung
    1 = Es handelt sich um eine Endanwendung
    <packageurl>KeineWebsite des Plugins mit weiteren Informationen
    <version>KeineVersionsnummer des Plugins
    <date>KeineErstellungsdatum des Plugins
    <authorinformation>KeineEnthält Meta-Informationen über den Entwickler des Plugins
    <author>KeineName des Entwicklers
    <authorurl>KeineWebsite des Entwicklers
    <requiredpackages>KeineMeta-Informationen über zwingend vorausgesetzte Plugins
    <requiredpackage>minversion="1.0.0" (optional)Enthält den Paketbezeichner des benötigten Plugins.
    <excludedpackages>KeineMeta-Informationen über Plugins, mit denen sich ein Plugin nicht installieren lässt.
    <excludedpackage>version="2.2.0 Alpha 1" (optional)Enthält den Paketbezeichner und Version des Plugins, mit den es sich nicht installieren lässt.
    <compatibility>KeineMeta-Informationen über die Kompatibilität des Plugins.
    <api>version="2019"Enthält die API Kompatibilität als vierstellige Jahreszahl.
    <optionalpackages>KeineMeta-Informationen über Plugins, die während der Installation optional mit installiert werden können.
    <optionalpackage>file="optionals/de.yourecom.optional.tar"Dateipfad ausgehend von der package.xml innerhalb des Plugins zum optionalen Plugin.
    <instructions>type='install'
    type='update'
    fromversion="1.0.0"
    Enthält die Meta-Informationen zu der Installation oder zu einem Update.
    <instruction>type='file'
    type='templates'
    type='acpTemplate'
    etc.
    Enthält die zu erledigenden Installations- bzw. Updateanweisung.



    Beispiel package.xml


    XML Source Code: package.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <package name="de.yourecom.example" xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com https://www.woltlab.com/XSD/2019/package.xsd">
    3. <packageinformation>
    4. <packagename><![CDATA[Example Plugin]]></packagename>
    5. <packagename languagecode="de"><![CDATA[Beispiel Plugin]]></packagename>
    6. <packagedescription><![CDATA[This plugin is an example plugin.]]></packagedescription>
    7. <packagedescription languagecode="de"><![CDATA[Dieses Plugin ist ein Beispielplugin]]></packagedescription>
    8. <standalone>0</standalone>
    9. <version>1.0.0</version>
    10. <date>2015-10-01</date>
    11. <packageurl><![CDATA[http://yourecom.de]]></packageurl>
    12. </packageinformation>
    13. <authorinformation>
    14. <author><![CDATA[Marcel Beckers, YoureCom]]></author>
    15. <authorurl><![CDATA[http://yourecom.de]]></authorurl>
    16. </authorinformation>
    17. <requiredpackages>
    18. <requiredpackage minversion="5.2.0 Alpha 1">com.woltlab.wcf</requiredpackage>
    19. </requiredpackages>
    20. <optionalpackages>
    21. <optionalpackage file="optionals/de.yourecom.definition2.wbb.tar.gz">de.yourecom.definition2.wbb</optionalpackage>
    22. </optionalpackages>
    23. <excludedpackages>
    24. <excludedpackage version="5.3.0 Alpha 1">com.woltlab.wcf</excludedpackage>
    25. </excludedpackages>
    26. <compatibility>
    27. <api version="2019" />
    28. </compatibility>
    29. <instructions type="install">
    30. <instruction type="file" />
    31. <instruction type="acpTemplate" />
    32. <instruction type="template" />
    33. </instructions>
    34. <instructions type="update" fromversion="2.0.*">
    35. <instruction type="file" />
    36. <instruction type="acpTemplate" />
    37. <instruction type="template" />
    38. </instructions>
    39. </package>
    Display All


    Gut zu wissen


    • Der Paketbezeichner, wird mittels des Parameters name im package Tag definiert. Dieser muss zwingend aus mindestens 3 Teilen bestehen, die jeweils durch einen Punkt voneinander getrennt werden. Es hat sich etabliert, dass der erste Teil des Paketbezeichners die Domain Endung der Website des Entwicklers und der zweite Teil des Paketbezeichners aus dem Domainnamen des Entwicklers besteht. Der dritte Teil besteht dann aus dem Namen des Plugins, der dann auch ggf. in camelCase geschrieben wird. In meinem Fall sieht der Paketbezeichner als folgendermaßen aus: de.yourecom.example
    • Innerhalb von requiredpackages, compatibility, optionalpackages und excludedpackages können die Kindelemente beliebig oft wiederholt werden, um so mehrere Plugins verarbeiten zu können.
    • Alle Möglichkeiten des type Parameters im instruction Tag werden innerhalb der jeweiligen PIP´s erklärt.
    • Woltlab empfiehlt mittlerweile, mittels excludedpackage die nächste Major Version des WSC generell auszuschließen, um so Inkompatibilitäten bereits im Vorfeld auszuschließen.
    • Sollte das WSC nicht innerhalb des requiredpackages explizit angegeben werden, so setzt das wcf diese Information während der Installation automatisch.
    • Ein Update ist nur möglich, wenn mindestens eine instruction Anweisung vorhanden ist.
    • Generell empfehle ich, sich anzugewöhnen, alle möglichen Tags zu setzen. So hat man immer volle Kontrolle darüber, was geschieht und muss nicht ggf. später lästig suchen, wie nochmal der eine Tag lautete, den man ewig nicht benötigte.


    Ihr habt Fragen oder Anregungen? Lob oder Kritik? Lasst es mich doch durch einen Kommentar von euch wissen!

    14,517 times viewed