Skip to content

XML Schemas ​

QUIQQER provides XSD 1.0 schemas for package XML files. Link a schema from your XML document to enable structural validation and completion in XML-aware editors. The public schema URLs for QUIQQER 2.x use /docs/schemas/2.x/.

Add xmlns:xsi and xsi:noNamespaceSchemaLocation to the outer <quiqqer> element:

xml
<?xml version="1.0" encoding="UTF-8"?>
<quiqqer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="https://www.quiqqer.com/docs/schemas/2.x/user.xsd">
    <user>
        <attributes>
            <attribute>vendor.package.reference</attribute>
        </attributes>
        <window>
            <categories>
                <category name="vendor.package.settings">
                    <text>Package Settings</text>
                    <settings>
                        <title>Reference</title>
                        <input conf="vendor.package.reference" type="text">
                            <text>Reference</text>
                        </input>
                    </settings>
                </category>
            </categories>
        </window>
    </user>
</quiqqer>

Use <quiqqer> as the root for new XML files read by Core and Utils. Keep the format-specific element inside it: for example, <quiqqer><locales>…</locales></quiqqer> or <quiqqer><user>…</user></quiqqer>. Files such as settings.xml already use <quiqqer> and need no additional wrapper.

Existing files with roots such as <locales>, <user>, or <database> remain supported by the readers for backward compatibility. The 2.x schemas require <quiqqer> and report a validation error for a legacy root, so editors guide new and updated files toward the standard. Module-specific formats such as cron.xml and demodata.xml, and external tool formats such as PHPUnit XML, are outside this standard.

These schemas describe XML without a target namespace. Do not set the schema URL as the default xmlns namespace. The xmlns:xsi declaration only enables the schema-location attribute.

An editor may ask permission before downloading remote schemas. You can also download a schema and use a local path in xsi:noNamespaceSchemaLocation. Each schema is standalone and needs no additional XSD downloads.

Available Schemas ​

XML fileXSD for QUIQQER 2.x
console.xmlconsole.xsd
database.xmldatabase.xsd
engines.xmlengines.xsd
events.xmlevents.xsd
group.xmlgroup.xsd
locale.xmllocale.xsd
media.xmlmedia.xsd
menu.xmlmenu.xsd
package.xmlpackage.xsd
panel.xmlpanel.xsd
panels.xmlpanels.xsd
permissions.xmlpermissions.xsd
settings.xmlsettings.xsd
site.xmlsite.xsd
Editor XML toolbartoolbar.xsd
user.xmluser.xsd
widgets.xmlwidgets.xsd
wysiwyg.xmlwysiwyg.xsd

locale.xsd supports both manifests containing <file> references and translation catalogs containing <groups>, including separate language files. database.xsd supports portable field attributes, multiple indexes, and foreign-key declarations.

The engines.xsd and wysiwyg.xsd schemas cover template-engine and editor registrations read by Core and Utils. toolbar.xsd describes legacy XML editor toolbars; use editor-native JSON for new toolbars.

Validate Locally ​

With xmllint installed, download the schema and validate your file:

sh
curl -fsSLo /tmp/quiqqer-user.xsd https://www.quiqqer.com/docs/schemas/2.x/user.xsd
xmllint --nonet --noout --schema /tmp/quiqqer-user.xsd user.xml

Use the matching schema for each file. A locale manifest validates its file references, but does not automatically validate the referenced language files; validate those separately with locale.xsd.

Validation Scope ​

The schemas check document structure, known configuration elements, and required attributes. They deliberately allow extensible content such as settings controls, translated markup, and provider-specific metadata.

Schema validity does not establish that a referenced PHP class, JavaScript module, template, translation key, or permission exists. It also does not replace testing the package in QUIQQER. Adding a schema-location attribute does not enable automatic XSD validation during QUIQQER imports.

Inside UI <settings> groups, schemas accept <description> and reject the deprecated direct <text> child. Existing readers still accept that legacy form. Use <title> for headings and <description> for explanatory text; control labels such as <input><text>…</text></input> remain valid. See Settings Descriptions.

Some legacy syntax remains valid for compatibility. In particular, user/window/tab is deprecated even though user.xsd accepts it. Prefer user/window/categories/category/settings; user/profile/tab remains a separate supported extension point. See User XML.

The schemas are generated from maintained format definitions in the documentation repository. The 2.x URLs identify the supported major-version family; future major versions can publish their own paths without replacing these URLs.

Released under GPL-3.0-or-later.