--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- The file "acpmenu.xsd" is used for xml-files which installs, updates or deletes acp-menu items. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:sequence>
+ <xs:element name="acpmenuitem" type="acpmenuitem_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:sequence>
+ <xs:element name="acpmenuitem" type="acpmenuitem_delete" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents an acpmenuitem which will be deleted. The node needs the attribute "name". -->
+ <xs:complexType name="acpmenuitem_delete">
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+
+ <!-- Represents an acpmenuitem which will be installed or updated. Extends the type "acpmenuitem_delete". -->
+ <xs:complexType name="acpmenuitem_import">
+ <xs:complexContent>
+ <xs:extension base="acpmenuitem_delete">
+ <xs:all>
+ <xs:element name="parent" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="link" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="icon" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="permissions" type="xs:string" minOccurs="0" />
+ <xs:element name="options" type="xs:string" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "cronjobs.xsd" is used for xml-files which installs, updates or deletes searchable cronjobs. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:sequence>
+ <xs:element name="cronjob" type="cronjob" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:sequence>
+ <xs:element name="cronjob" type="cronjob" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents a cronjob which will be installed,updated or deleted. Extends the type "cronjob_delete". -->
+ <xs:complexType name="cronjob">
+ <xs:all>
+ <xs:element name="classpath" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="description" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="startminute" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="starthour" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="startdom" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="startmonth" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="startdow" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="execmultiple" type="woltlab_boolean" minOccurs="0" default="0" />
+ <xs:element name="canbeedited" type="woltlab_boolean" minOccurs="0" default="1" />
+ <xs:element name="canbedisabled" type="woltlab_boolean" minOccurs="0" default="1" />
+ <xs:element name="active" type="woltlab_boolean" minOccurs="0" default="1" />
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "eventlistener.xsd" is used for xml-files which installs, updates or deletes event listeners. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:sequence>
+ <xs:element name="eventlistener" type="eventlistener" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:sequence>
+ <xs:element name="eventlistener" type="eventlistener" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents a eventlistener which will be installed, updated or deleted. -->
+ <xs:complexType name="eventlistener">
+ <xs:all>
+ <xs:element name="eventclassname" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="80" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="eventname" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="50" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="listenerclassname" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="200" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="inherit" type="woltlab_boolean" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "option.xsd" is used for xml-files which installs, updates or deletes options. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+ <!-- include option types -->
+ <xs:include schemaLocation="optiontypes.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:all>
+ <xs:element name="categories" type="categories_import" minOccurs="0" />
+ <xs:element name="options" type="options_import" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <!-- Represents the import-categories-node. -->
+ <xs:complexType name="categories_import">
+ <xs:sequence>
+ <xs:element name="category" type="category_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Represents a category which will be installed or updated. Extends the type "category_delete". -->
+ <xs:complexType name="category_import">
+ <xs:complexContent>
+ <xs:extension base="category_delete">
+ <xs:all>
+ <xs:element name="parent" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="options" type="woltlab_varchar_nullable" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- Represents the import-options-node. -->
+ <xs:complexType name="options_import">
+ <xs:sequence>
+ <xs:element name="option" type="option_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Represents an option which will be installed or updated. Extends the type "category_delete". -->
+ <xs:complexType name="option_import">
+ <xs:complexContent>
+ <xs:extension base="option_delete">
+ <xs:all>
+ <xs:element name="categoryname" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="optiontype" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="defaultvalue" type="xs:string" minOccurs="0" />
+ <xs:element name="validationpattern" type="xs:string" minOccurs="0" />
+ <xs:element name="enableoptions" type="xs:string" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="options" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="admindefaultvalue" type="xs:string" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "language.xsd" is used for xml-files which installs or updates language items. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="language">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="category" type="category" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="languagecode" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents a language-category-node. -->
+ <xs:complexType name="category">
+ <xs:sequence>
+ <xs:element name="item" type="item" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+
+ <!-- Represents a language-item-node. -->
+ <xs:complexType name="item" mixed="true">
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "option.xsd" is used for xml-files which installs, updates or deletes options. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+ <!-- include option types -->
+ <xs:include schemaLocation="optiontypes.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:all>
+ <xs:element name="categories" type="categories_import" minOccurs="0" />
+ <xs:element name="options" type="options_import" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <!-- Represents the import-categories-node. -->
+ <xs:complexType name="categories_import">
+ <xs:sequence>
+ <xs:element name="category" type="category_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Represents a category which will be installed or updated. Extends the type "category_delete". -->
+ <xs:complexType name="category_import">
+ <xs:complexContent>
+ <xs:extension base="category_delete">
+ <xs:all>
+ <xs:element name="parent" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="options" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="permissions" type="woltlab_varchar_nullable" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- Represents the import-options-node. -->
+ <xs:complexType name="options_import">
+ <xs:sequence>
+ <xs:element name="option" type="option_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Represents an option which will be installed or updated. Extends the type "option_delete". -->
+ <xs:complexType name="option_import">
+ <xs:complexContent>
+ <xs:extension base="option_delete">
+ <xs:all>
+ <xs:element name="categoryname" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="optiontype" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="defaultvalue" type="xs:string" minOccurs="0" />
+ <xs:element name="validationpattern" type="xs:string" minOccurs="0" />
+ <xs:element name="selectoptions" type="xs:string" minOccurs="0" />
+ <xs:element name="enableoptions" type="xs:string" minOccurs="0" />
+ <xs:element name="hidden" type="woltlab_boolean" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="options" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="permissions" type="woltlab_varchar_nullable" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "option.xsd" is used for xml-files which installs, updates or deletes options. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="optioncategory" type="category_delete" minOccurs="0" />
+ <xs:element name="option" type="option_delete" minOccurs="0" />
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Represents a category which will be deleted. The node requires the attribute "name". -->
+ <xs:complexType name="category_delete">
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+
+ <!-- Represents an option which will be deleted. The node requires the attribute "name". -->
+ <xs:complexType name="option_delete">
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+ <!-- include WoltLab data types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- data node -->
+ <xs:element name="package">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="instructions" type="instructions" minOccurs="1" maxOccurs="unbounded" />
+ <xs:element name="packageinformation" type="packageInformation" minOccurs="1" maxOccurs="1" />
+ <xs:element name="authorinformation" type="authorInformation" minOccurs="1" maxOccurs="1" />
+ <xs:element name="requiredpackages" type="requiredPackages" minOccurs="0" maxOccurs="1" />
+ <xs:element name="optionalpackages" type="optionalPackages" minOccurs="0" maxOccurs="1" />
+ <xs:element name="excludedpackages" type="excludedPackages" minOccurs="0" maxOccurs="1" />
+ </xs:choice>
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <!-- simplePackage element -->
+ <xs:complexType name="simplePackage">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="minversion" type="xs:string" />
+ <xs:attribute name="file" type="xs:string" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+
+ <!-- optionalPackage element -->
+ <xs:complexType name="optionalPackage">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="minVersion" type="xs:string" />
+ <xs:attribute name="file" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- excludedPackage element -->
+ <xs:complexType name="excludedPackage">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="version" type="xs:string" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- instructions node -->
+ <xs:complexType name="instructions">
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
+ </xs:sequence>
+ <xs:attribute name="type" type="instructionsType" use="required" />
+ <xs:attribute name="fromversion" type="woltlab_varchar" />
+ </xs:complexType>
+
+ <!-- instructionsType attribute -->
+ <xs:simpleType name="instructionsType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="install" />
+ <xs:enumeration value="update" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- packageInformation node -->
+ <xs:complexType name="packageInformation">
+ <xs:sequence>
+ <xs:element name="packagename" minOccurs="1" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="woltlab_varchar">
+ <xs:attribute name="language" type="xs:string" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="packagedescription" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="language" type="xs:string" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="standalone" type="woltlab_boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="isunique" type="woltlab_boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="version" type="woltlab_varchar" minOccurs="1" maxOccurs="1" />
+ <xs:element name="date" type="xs:date" minOccurs="1" maxOccurs="1" />
+ <xs:element name="plugin" type="woltlab_varchar" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- authorInformation node -->
+ <xs:complexType name="authorInformation">
+ <xs:all>
+ <xs:element name="author" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="authorurl" type="xs:anyURI" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <!-- requiredPackages node -->
+ <xs:complexType name="requiredPackages">
+ <xs:sequence>
+ <xs:element name="requiredpackage" type="simplePackage" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- optionalPackages node -->
+ <xs:complexType name="optionalPackages">
+ <xs:sequence>
+ <xs:element name="optionalpackage" type="optionalPackage" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- excludedPackages node -->
+ <xs:complexType name="excludedPackages">
+ <xs:sequence>
+ <xs:element name="excludedpackage" type="excludedPackage" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- section tag -->
+ <xs:element name="section">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="package" />
+ </xs:sequence>
+ <xs:attribute name="name" use="required" type="xs:NCName" />
+ </xs:complexType>
+ </xs:element>
+
+ <!-- package element -->
+ <xs:element name="package">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="packageinformation" />
+ <xs:element ref="authorinformation" />
+ <xs:element ref="versions" />
+ </xs:sequence>
+ <xs:attribute name="name" use="required" type="woltlab_varchar" />
+ </xs:complexType>
+ </xs:element>
+
+ <!-- package -->
+ <xs:element name="packageinformation">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="packagename" />
+ <xs:element ref="packagedescription" />
+ <xs:choice minOccurs="0">
+ <xs:element ref="plugin" />
+ <xs:element ref="standalone" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="packagename" type="woltlab_varchar" />
+ <xs:element name="packagedescription" type="woltlab_varchar" />
+ <xs:element name="plugin" type="woltlab_varchar" />
+ <xs:element name="standalone" type="woltlab_boolean" />
+
+ <!-- author -->
+ <xs:element name="authorinformation">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="author" />
+ <xs:element ref="authorurl" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="author" type="xs:string" />
+ <xs:element name="authorurl" type="xs:anyURI" />
+
+ <!-- versions -->
+ <xs:element name="versions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="version" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="version">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="fromversions" />
+ <xs:element minOccurs="0" ref="requiredpackages" />
+ <xs:element ref="updatetype" />
+ <xs:element ref="timestamp" />
+ <xs:element ref="versiontype" />
+ <xs:element ref="license" />
+ </xs:sequence>
+ <xs:attribute name="name" use="required" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="fromversions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="fromversion" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="fromversion" type="xs:string" />
+ <xs:element name="requiredpackages">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="requiredpackage" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="requiredpackage">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:NCName">
+ <xs:attribute name="minversion" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="updatetype" type="xs:NCName" />
+ <xs:element name="timestamp" type="xs:integer" />
+ <xs:element name="versiontype" type="xs:NCName" />
+ <xs:element name="license" type="xs:NCName" />
+</xs:schema>
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "pagelocation.xsd" is used for xml-files which installs, updates or deletes page locations. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:sequence>
+ <xs:element name="pagelocation" type="pagelocation_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:sequence>
+ <xs:element name="pagelocation" type="pagelocation_delete" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents a pagelocation which will be deleted. The node needs the attribute "name". -->
+ <xs:complexType name="pagelocation_delete">
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+
+ <!-- Represents a pagelocation which will be installed or updated. Extends the type "pagelocation_delete". -->
+ <xs:complexType name="pagelocation_import">
+ <xs:complexContent>
+ <xs:extension base="pagelocation_delete">
+ <xs:all>
+ <xs:element name="pattern" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="classpath" type="woltlab_varchar_nullable" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- The file "pagemenu.xsd" is used for xml-files which installs, updates or deletes header menu items. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:sequence>
+ <xs:element name="pagemenuitem" type="pagemenuitem_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:sequence>
+ <xs:element name="pagemenuitem" type="pagemenuitem_delete" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents a pagemenuitem which will be deleted. The node needs the attribute "name". -->
+ <xs:complexType name="pagemenuitem_delete">
+ <xs:attribute name="name" type="woltlab_varchar" use="required" />
+ </xs:complexType>
+
+ <!-- Represents a pagemenuitem which will be installed or updated. Extends the type "pagemenu_delete". -->
+ <xs:complexType name="pagemenuitem_import">
+ <xs:complexContent>
+ <xs:extension base="pagemenuitem_delete">
+ <xs:all>
+ <xs:element name="link" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="options" type="xs:string" minOccurs="0" />
+ <xs:element name="permissions" type="xs:string" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="position" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="header" />
+ <xs:enumeration value="footer" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "styleattributes.xsd" is used for xml-files which installs, updates or deletes style attributes. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:sequence>
+ <xs:element name="attribute" type="styleattribute" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents the delete-node. -->
+ <xs:complexType name="delete">
+ <xs:sequence>
+ <xs:element name="attribute" type="styleattribute" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Represents a styleattributes which will be installed, updated or deleted. -->
+ <xs:complexType name="styleattribute">
+ <xs:all>
+ <xs:element name="selector" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="200" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="name" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="50" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="value" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="50" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- Defines a string with a minimum length of 1 and a maximum length of 255 signs. -->
+ <xs:simpleType name="woltlab_varchar">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="255"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Defines a string with a minimum length of 0 and a maximum length of 255 signs. -->
+ <xs:simpleType name="woltlab_varchar_nullable">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="0" />
+ <xs:maxLength value="255" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Defines a boolean type which only accepts a '0' or a '1'. -->
+ <xs:simpleType name="woltlab_boolean">
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!-- The file "option.xsd" is used for xml-files which installs, updates or deletes options. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.woltlab.com" targetNamespace="http://www.woltlab.com" elementFormDefault="qualified">
+
+ <!-- include types -->
+ <xs:include schemaLocation="types.xsd" />
+ <!-- include option types -->
+ <xs:include schemaLocation="optiontypes.xsd" />
+
+ <!-- Represents the data-node. -->
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="import" type="import" minOccurs="0" />
+ <xs:element name="delete" type="delete" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Represents the import-node. -->
+ <xs:complexType name="import">
+ <xs:all>
+ <xs:element name="categories" type="categories_import" minOccurs="0" />
+ <xs:element name="options" type="options_import" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <!-- Represents the import-categories-node. -->
+ <xs:complexType name="categories_import">
+ <xs:sequence>
+ <xs:element name="category" type="category_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Represents a category which will be installed or updated. Extends the type "category_delete". -->
+ <xs:complexType name="category_import">
+ <xs:complexContent>
+ <xs:extension base="category_delete">
+ <xs:all>
+ <xs:element name="icon" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="menuicon" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="parent" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- Represents the import-options-node. -->
+ <xs:complexType name="options_import">
+ <xs:sequence>
+ <xs:element name="option" type="option_import" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Represents an option which will be installed or updated. Extends the type "category_delete". -->
+ <xs:complexType name="option_import">
+ <xs:complexContent>
+ <xs:extension base="option_delete">
+ <xs:all>
+ <xs:element name="categoryname" type="woltlab_varchar" minOccurs="1" />
+ <xs:element name="optiontype" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="defaultvalue" type="xs:string" minOccurs="0" />
+ <xs:element name="validationpattern" type="xs:string" minOccurs="0" />
+ <xs:element name="outputclass" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="selectoptions" type="xs:string" minOccurs="0" />
+ <xs:element name="enableoptions" type="xs:string" minOccurs="0" />
+ <xs:element name="required" type="woltlab_boolean" minOccurs="0" />
+ <xs:element name="editable" minOccurs="0" >
+ <xs:simpleType>
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="4" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="visible" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="4" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="searchable" type="woltlab_boolean" minOccurs="0" />
+ <xs:element name="deactivated" type="woltlab_boolean" minOccurs="0" />
+ <xs:element name="showorder" type="xs:unsignedInt" minOccurs="0" />
+ <xs:element name="options" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="permissions" type="woltlab_varchar_nullable" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file