dev
Documentation icon Module documentation
[create]

The documentation for this module is missing. Click here to create it.

return [=[
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- XML schema for Wikia's propietary XML syntax. -->
<!-- For simplicity, this file does not include MediaWiki and HTML tags. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!-- # Validator restrictions used in infobox attributes. # -->
    <!-- ## Infobox title color validation. ## -->
    <!-- Source: [[github:Wikia/app/blob/release-1073.001/extensions/wikia/PortableInfobox/services/Helpers/InfoboxParamsValidator.php#L45]] -->
    <xs:simpleType name="piColor">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-f0-9]{3}([a-f0-9]{3})?)" />
        </xs:restriction>
    </xs:simpleType>
    <!-- ## Infobox layout attribute validation. ## -->
    <!-- Source: [[github:Wikia/app/blob/release-1073.001/extensions/wikia/PortableInfobox/services/Helpers/InfoboxParamsValidator.php#L54]] -->
    <xs:simpleType name="piInfoboxLayout">
        <xs:restriction base="xs:string">
            <xs:enumeration value="default" />
            <xs:enumeration value="stacked" />
        </xs:restriction>
    </xs:simpleType>
    <!-- ## Group layout attribute validation. ## -->
    <!-- Source: [[github:Wikia/app/blob/release-1073.001/extensions/wikia/PortableInfobox/services/Parser/Nodes/NodeGroup.php#L7]] -->
    <xs:simpleType name="piGroupLayout">
        <xs:restriction base="xs:string">
            <xs:enumeration value="default" />
            <xs:enumeration value="horizontal" />
        </xs:restriction>
    </xs:simpleType>
    <!-- ## Group show attribute validation. ## -->
    <!-- Source: [[github:Wikia/app/blob/release-1073.001/extensions/wikia/PortableInfobox/services/Parser/Nodes/NodeGroup.php#L9]] -->
    <xs:simpleType name="pigroupShow">
        <xs:restriction base="xs:string">
            <xs:enumeration value="default" />
            <xs:enumeration value="incomplete" />
        </xs:restriction>
    </xs:simpleType>
    <!-- ## Group collapse attribute validation. ## -->
    <!-- Source: [[github:Wikia/app/blob/release-1073.001/extensions/wikia/PortableInfobox/services/Parser/Nodes/NodeGroup.php#L12]] -->
    <xs:simpleType name="piGroupCollapse">
        <xs:restriction base="xs:string">
            <xs:enumeration value="open" />
            <xs:enumeration value="closed" />
        </xs:restriction>
    </xs:simpleType>
    <!-- # Group element definition. # -->
    <xs:element name="group">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element maxOccurs="unbounded" ref="panel" />
                <xs:element maxOccurs="unbounded" ref="header" />
                <xs:element maxOccurs="unbounded" ref="title" />
                <xs:element maxOccurs="unbounded" ref="image" />
                <xs:element maxOccurs="unbounded" ref="navigation" />
                <xs:element maxOccurs="unbounded" ref="data" />
            </xs:choice>
            <xs:attribute name="layout" type="piGroupLayout" />
            <xs:attribute name="show" type="pigroupShow" />
            <xs:attribute name="collapse" type="piGroupCollapse" />
            <xs:attribute name="row-items" type="xs:int" />
            <xs:attribute name="name" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <!-- # Panel element definition. # -->
    <xs:element name="panel">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element maxOccurs="unbounded" ref="section" />
                <xs:element maxOccurs="unbounded" ref="header" />
            </xs:choice>
            <xs:attribute name="name" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <!-- # Section element definition. # -->
    <!-- Serves as tabbed group in panel container -->
    <xs:element name="section">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element maxOccurs="1" ref="label" />
                <xs:element maxOccurs="unbounded" ref="group" />
                <xs:element maxOccurs="unbounded" ref="header" />
                <xs:element maxOccurs="unbounded" ref="title" />
                <xs:element maxOccurs="unbounded" ref="image" />
                <xs:element maxOccurs="unbounded" ref="navigation" />
                <xs:element maxOccurs="unbounded" ref="data" />
            </xs:choice>
            <xs:attribute name="name" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <!-- # Header element definition. # -->
    <xs:element name="header">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="name" type="xs:string" />
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <!-- # Navigation element definition. # -->
    <xs:element name="navigation">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="name" type="xs:string" />
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <!-- # Title element definition. # -->
    <xs:element name="title">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="format" />
                <xs:element ref="default" />
            </xs:choice>
            <xs:attribute name="source" type="xs:string" />
            <xs:attribute name="name" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <!-- # Data element definitions. # -->
    <xs:element name="data">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="label" />
                <xs:element ref="format" />
                <xs:element ref="default" />
            </xs:choice>
            <xs:attribute name="source" type="xs:string" />
            <xs:attribute name="span" type="xs:string" />
            <xs:attribute name="layout" type="xs:string" />
            <xs:attribute name="name" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <xs:element name="label" type="xs:string" />
    <xs:element name="format" type="xs:string" />
    <xs:element name="default" type="xs:string" />
    <!-- # Image element definitions. # -->
    <xs:element name="image">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element maxOccurs="1" ref="alt" />
                <xs:element maxOccurs="1" ref="caption" />
                <xs:element maxOccurs="1" ref="default" />
            </xs:choice>
            <xs:attribute name="source" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <xs:element name="alt">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="default" minOccurs="0" />
            </xs:choice>
            <xs:attribute name="source" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <xs:element name="caption">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element maxOccurs="1" ref="format" />
                <xs:element maxOccurs="1" ref="default" />
            </xs:choice>
            <xs:attribute name="source" type="xs:string" />
        </xs:complexType>
    </xs:element>
    <!-- # Infobox element definition. # -->
    <!-- Serves as infobox container & delimiter. -->
    <xs:element name="infobox">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element maxOccurs="unbounded" ref="group" />
                <xs:element maxOccurs="unbounded" ref="panel" />
                <xs:element maxOccurs="unbounded" ref="title" />
                <xs:element maxOccurs="unbounded" ref="image" />
                <xs:element maxOccurs="unbounded" ref="navigation" />
                <xs:element maxOccurs="unbounded" ref="data" />
            </xs:choice>
            <xs:attribute name="layout">
                <xs:simpleType>
                    <xs:restriction base="piInfoboxLayout" />
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="name" type="xs:string" />
            <xs:attribute name="theme" type="xs:string" />
            <xs:attribute name="theme-source" type="xs:string" />
            <xs:attribute name="type" type="xs:string" />
            <xs:attribute name="accent-color-source">
                <xs:simpleType>
                    <xs:restriction base="piColor" />
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="accent-color-default">
                <xs:simpleType>
                    <xs:restriction base="piColor" />
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="accent-color-text-source">
                <xs:simpleType>
                    <xs:restriction base="piColor" />
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="accent-color-text-default">
                <xs:simpleType>
                    <xs:restriction base="piColor" />
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
</xs:schema>
]=]