<?xml version='1.0' encoding='utf-8'?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="2.0">
    <xs:annotation>
        <xs:documentation>Generated by scripts/generate_xsd.py. Structural validation for QUIQQER 2.x; extensible UI and provider content is intentionally open. No runtime validation is implied.</xs:documentation>
    </xs:annotation>
    <xs:element name="quiqqer" type="Quiqqer" />
    <xs:complexType name="RichText" mixed="true">
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
        </xs:sequence>
        <xs:anyAttribute processContents="lax" />
    </xs:complexType>
    <xs:complexType name="Attribute">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="default" type="xs:string" />
                <xs:attribute name="encrypt" type="xs:string" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="Attributes">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="attribute" type="Attribute" />
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="LocaleReference">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="group" type="xs:string" use="required" />
                <xs:attribute name="var" type="xs:string" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="Control" mixed="true">
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
        </xs:sequence>
        <xs:anyAttribute processContents="lax" />
    </xs:complexType>
    <xs:complexType name="SettingsGroup">
        <xs:annotation>
            <xs:documentation>Use title for the heading and description for explanatory content. Direct text children are deprecated: readers retain them for compatibility, but this schema rejects them. Text labels inside controls and categories remain supported.</xs:documentation>
        </xs:annotation>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="title" type="RichText" />
            <xs:element name="description" type="RichText" />
            <xs:element name="template" type="RichText" />
            <xs:element name="input" type="Control" />
            <xs:element name="select" type="Control" />
            <xs:element name="textarea" type="Control" />
            <xs:element name="group" type="Control" />
            <xs:element name="button" type="Control" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
        <xs:attribute name="title" type="xs:string" />
        <xs:attribute name="index" type="xs:string" />
        <xs:attribute name="icon" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="Category">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="text" type="RichText" />
            <xs:element name="title" type="RichText" />
            <xs:element name="icon" type="xs:string" />
            <xs:element name="image" type="xs:string" />
            <xs:element name="settings" type="SettingsGroup" />
            <xs:element name="input" type="Control" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
        <xs:attribute name="index" type="xs:string" />
        <xs:attribute name="priority" type="xs:string" />
        <xs:attribute name="require" type="xs:string" />
        <xs:attribute name="click" type="xs:string" />
        <xs:anyAttribute processContents="lax" />
    </xs:complexType>
    <xs:complexType name="Categories">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="category" type="Category" />
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="Tab">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="text" type="RichText" />
            <xs:element name="image" type="xs:string" />
            <xs:element name="icon" type="xs:string" />
            <xs:element name="template" type="xs:string" />
            <xs:element name="onload" type="Control" />
            <xs:element name="onunload" type="Control" />
            <xs:element name="categories" type="Categories" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
        <xs:anyAttribute processContents="lax" />
    </xs:complexType>
    <xs:complexType name="Window">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="categories" type="Categories" />
            <xs:element name="tab" type="Tab" />
            <xs:element name="title" type="RichText" />
            <xs:element name="params" type="Control" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
        <xs:attribute name="menu-parent" type="xs:string" />
        <xs:anyAttribute processContents="lax" />
    </xs:complexType>
    <xs:complexType name="Quiqqer">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="settings" type="Settings" />
            <xs:element name="project" type="Project" />
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="Project">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="settings" type="Settings" />
            <xs:element name="wysiwyg" type="Control" />
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="Settings">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="config" type="Config" />
            <xs:element name="window" type="Window" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="Config">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="section" type="Section" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="Section">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="conf" type="Conf" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" use="required" />
        <xs:attribute name="type" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="Conf">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="type" type="xs:string" />
            <xs:element name="defaultvalue" type="xs:string" />
        </xs:choice>
        <xs:attribute name="name" type="xs:string" use="required" />
    </xs:complexType>
</xs:schema>
