<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"
           attributeFormDefault="unqualified" 
           elementFormDefault="qualified" 
           vs:helpNamespace="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <xs:element name="rarous.gryphoon" vs:help="configuration/rarous.gryphoon">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element ref="texyArticle" maxOccurs="1"></xs:element>
                <xs:element ref="texyComment" maxOccurs="1"></xs:element>
                <xs:element ref="urlManager" maxOccurs="1"></xs:element>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    <xs:element name="rarous.texy" type="texy_type" vs:help="confiuration/rarous.texy" />
    <xs:element name="texyArticle" type="texy_type" vs:help="configuration/rarous.gryphoon/texyArticle" />
    <xs:element name="texyComment" type="texy_type" vs:help="configuration/rarous.gryphoon/texyComment" />
    <xs:complexType name="texy_type">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="allowedClasses">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="add">
                            <xs:complexType>
                                <xs:attribute name="name" type="xs:string" use="required" />
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="allowedStyles">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="add">
                            <xs:complexType>
                                <xs:attribute name="name" type="xs:string" use="required" />
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="blockModule">
                <xs:complexType>
                    <xs:attribute name="allowedPre" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedText" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedHtml" type="xs:boolean" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="formatterModule">
                <xs:complexType>
                    <xs:attribute name="lineWrap" type="xs:unsignedByte" use="optional" />
                    <xs:attribute name="indent" type="xs:boolean" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="headingModule">
                <xs:complexType>
                    <xs:attribute name="allowedSurrounded" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedUnderlined" type="xs:boolean" use="optional" />
                    <xs:attribute name="top" type="xs:unsignedByte" use="optional" />
                    <xs:attribute name="balancing" type="xs:unsignedByte" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="imageDescriptionModule">
                <xs:complexType>
                    <xs:attribute name="boxClass" type="xs:string" use="optional" />
                    <xs:attribute name="leftClass" type="xs:string" use="optional" />
                    <xs:attribute name="rightClass" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="imageModule">
                <xs:complexType>
                    <xs:attribute name="root" type="xs:string" use="optional" />
                    <xs:attribute name="linkedRoot" type="xs:string" use="optional" />
                    <xs:attribute name="leftClass" type="xs:string" use="optional" />
                    <xs:attribute name="rightClass" type="xs:string" use="optional" />
                    <xs:attribute name="defaultAlt" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="linkModule">
                <xs:complexType>
                    <xs:attribute name="allowedLink" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedEmail" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedUrl" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedQuickLink" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedReferences" type="xs:boolean" use="optional" />
                    <xs:attribute name="root" type="xs:string" use="optional" />
                    <xs:attribute name="emailOnClick" type="xs:string" use="optional" />
                    <xs:attribute name="imageOnClick" type="xs:string" use="optional" />
                    <xs:attribute name="popupOnClick" type="xs:string" use="optional" />
                    <xs:attribute name="forceNoFollow" type="xs:boolean" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="quoteModule">
                <xs:complexType>
                    <xs:attribute name="allowedLine" type="xs:boolean" use="optional" />
                    <xs:attribute name="allowedBlock" type="xs:boolean" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="smilesModule">
                <xs:complexType>
                    <xs:attribute name="allowed" type="xs:boolean" use="optional" />
                    <xs:attribute name="root" type="xs:string" use="optional" />
                    <xs:attribute name="cssClass" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attribute name="safeMode" type="xs:boolean" use="optional" />
        <xs:attribute name="singleLine" type="xs:boolean" use="optional" />
        <xs:attribute name="obfuscateEmail" type="xs:boolean" use="optional" />
        <xs:attribute name="mergeLines" type="xs:boolean" use="optional" />
    </xs:complexType>
    <xs:element name="urlManager" vs:help="configuration/rarous.gryphoon/Manager">
        <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="providers" type="providers_type" minOccurs="1" maxOccurs="1" 
                            vs:help="configuration/rarous.gryphoon/urlManager/providers" />
            </xs:choice>
            <xs:attribute name="defaultProvider" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="providers_type">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="add" vs:help="configuration/rarous.gryphoon/urlManager/providers/add">
                <xs:complexType>
                    <xs:attribute name="name" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:minLength value="1" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="type" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:minLength value="1" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="description" use="optional">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:minLength value="1" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:element name="remove" vs:help="configuration/rarous.gryphoon/urlManager/providers/remove">
                <xs:complexType>
                    <xs:attribute name="extension" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:minLength value="1" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:element name="clear" vs:help="configuration/rarous.gryphoon/urlManager/providers/clear">
                <xs:complexType>
                    <!--tag is empty-->
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:complexType>
</xs:schema>
