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/.
Link A Schema
Add xmlns:xsi and xsi:noNamespaceSchemaLocation to the outer <quiqqer> element:
<?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 file | XSD for QUIQQER 2.x |
|---|---|
console.xml | console.xsd |
database.xml | database.xsd |
engines.xml | engines.xsd |
events.xml | events.xsd |
group.xml | group.xsd |
locale.xml | locale.xsd |
media.xml | media.xsd |
menu.xml | menu.xsd |
package.xml | package.xsd |
panel.xml | panel.xsd |
panels.xml | panels.xsd |
permissions.xml | permissions.xsd |
settings.xml | settings.xsd |
site.xml | site.xsd |
Editor XML toolbar | toolbar.xsd |
user.xml | user.xsd |
widgets.xml | widgets.xsd |
wysiwyg.xml | wysiwyg.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:
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.xmlUse 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.
