<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://calameo.com/viewer/1.0"
xmlns="http://calameo.com/viewer/1.0"
elementFormDefault="qualified">

<xs:attributeGroup name="position">
    <xs:attribute name="depth"                      type="xs:integer"/>
    <xs:attribute name="reference"                  type="xs:string"/>
    <xs:attribute name="horizontalCenter"           type="xs:integer"/>
    <xs:attribute name="percentHorizontalCenter"    type="xs:integer"/>
    <xs:attribute name="minHorizontalCenter"        type="xs:integer"/>
    <xs:attribute name="maxHorizontalCenter"        type="xs:integer"/>
    <xs:attribute name="verticalCenter"             type="xs:integer"/>
    <xs:attribute name="percentVerticalCenter"      type="xs:integer"/>
    <xs:attribute name="minVerticalCenter"          type="xs:integer"/>
    <xs:attribute name="maxVerticalCenter"          type="xs:integer"/>
    <xs:attribute name="top"                        type="xs:integer"/>
    <xs:attribute name="percentTop"                 type="xs:float"/>
    <xs:attribute name="offsetTop"                  type="xs:integer"/>
    <xs:attribute name="minTop"                     type="xs:integer"/>
    <xs:attribute name="maxTop"                     type="xs:integer"/>
    <xs:attribute name="right"                      type="xs:integer"/>
    <xs:attribute name="percentRight"               type="xs:float"/>
    <xs:attribute name="offsetRight"                type="xs:integer"/>
    <xs:attribute name="minRight"                   type="xs:integer"/>
    <xs:attribute name="maxRight"                   type="xs:integer"/>
    <xs:attribute name="bottom"                     type="xs:integer"/>
    <xs:attribute name="percentBottom"              type="xs:float"/>
    <xs:attribute name="offsetBottom"               type="xs:integer"/>
    <xs:attribute name="minBottom"                  type="xs:integer"/>
    <xs:attribute name="maxBottom"                  type="xs:integer"/>
    <xs:attribute name="left"                       type="xs:integer"/>
    <xs:attribute name="percentLeft"                type="xs:float"/>
    <xs:attribute name="offsetLeft"                 type="xs:integer"/>
    <xs:attribute name="minLeft"                    type="xs:integer"/>
    <xs:attribute name="maxLeft"                    type="xs:integer"/>
    <xs:attribute name="x"                          type="xs:integer"/>
    <xs:attribute name="percentX"                   type="xs:integer"/>
    <xs:attribute name="minX"                       type="xs:integer"/>
    <xs:attribute name="maxX"                       type="xs:integer"/>
    <xs:attribute name="y"                          type="xs:integer"/>
    <xs:attribute name="percentY"                   type="xs:integer"/>
    <xs:attribute name="minY"                       type="xs:integer"/>
    <xs:attribute name="maxY"                       type="xs:integer"/>
    <xs:attribute name="width"                      type="xs:integer"/>
    <xs:attribute name="percentWidth"               type="xs:float"/>
    <xs:attribute name="minWidth"                   type="xs:integer"/>
    <xs:attribute name="maxWidth"                   type="xs:integer"/>
    <xs:attribute name="height"                     type="xs:integer"/>
    <xs:attribute name="percentHeight"              type="xs:float"/>
    <xs:attribute name="minHeight"                  type="xs:integer"/>
    <xs:attribute name="maxHeight"                  type="xs:integer"/>
    <xs:attribute name="maintainAspectRatio">
       <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="true"/>
                <xs:enumeration value="false"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="rect"                       type="xs:integer"/>
    <xs:attribute name="alignment"                  type="xs:string"/>
    <xs:attribute name="autoResize">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="true"/>
                <xs:enumeration value="false"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
</xs:attributeGroup>

<xs:complexType name="button" mixed="true">
    <xs:sequence>
        <xs:element name="button" type="button" minOccurs="0"    maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="action"         type="xs:string"/>
    <xs:attribute name="tooltip">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="no"/>
                <xs:enumeration value="label"/>
                <xs:enumeration value=""/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="upState"            type="xs:string"/>
    <xs:attribute name="downState"          type="xs:string"/>
    <xs:attribute name="overState"          type="xs:string"/>
    <xs:attribute name="disabledState"      type="xs:string"/>
    <xs:attribute name="spacer"             type="xs:integer"/>
    <xs:attribute name="cornerRadius"       type="xs:integer"/>
    <xs:attribute name="horizontalMargin"   type="xs:integer"/>
    <xs:attribute name="verticalMargin"     type="xs:integer"/>
    <xs:attribute name="backgroundColor"    type="xs:string"/>
    <xs:attribute name="borderColor"        type="xs:string"/>
    <xs:attribute name="borderSize"         type="xs:integer"/>
</xs:complexType>


<xs:element name="root">
    <xs:complexType>
        <xs:sequence>

            <xs:element name="library"  minOccurs="0"    maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="name" type="xs:string"/>
                    <xs:attribute name="source" type="xs:string"/>
                </xs:complexType>
            </xs:element>

            <xs:element name="media"    minOccurs="0"    maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="name" type="xs:string"/>
                    <xs:attribute name="source" type="xs:string"/>
                </xs:complexType>
            </xs:element>

            <xs:element name="logo"     minOccurs="0"    maxOccurs="1">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attributeGroup ref="position"/>
                            <xs:attribute name="symbol" type="xs:string"/>
                            <xs:attribute name="media" type="xs:string"/>
                            <xs:attribute name="url"    type="xs:string"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>

            <xs:element name="viewer"   minOccurs="1" maxOccurs="1">
                <xs:complexType>
                    <xs:attributeGroup ref="position"/>
                </xs:complexType>
            </xs:element>

            <xs:element name="timeline" minOccurs="0"    maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="button" type="button" minOccurs="1"    maxOccurs="1" />
                    </xs:sequence>
                    <xs:attributeGroup ref="position"/>
                    <xs:attribute name="orientation">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="vertical"/>
                                <xs:enumeration value="horizontal"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="size" type="xs:integer"/>
               </xs:complexType>
            </xs:element>

            <xs:element name="layout"   minOccurs="0"    maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="button" type="button" minOccurs="0"    maxOccurs="unbounded" />
                    </xs:sequence>
                    <xs:attributeGroup ref="position"/>
                    <xs:attribute name="orientation">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="vertical"/>
                                <xs:enumeration value="horizontal"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                   <xs:attribute name="spacer"         type="xs:integer"/>
                </xs:complexType>
            </xs:element>

            <xs:element name="element"  minOccurs="0"    maxOccurs="unbounded">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attributeGroup ref="position"/>
                            <xs:attribute name="symbol" type="xs:string"/>
                            <xs:attribute name="media" type="xs:string"/>
                            <xs:attribute name="tooltip">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="no"/>
                                        <xs:enumeration value="label"/>
                                        <xs:enumeration value=""/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:attribute>
                       </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>

        </xs:sequence>
        <xs:attributeGroup ref="position"/>
        <xs:attribute name="symbol" type="xs:string"/>
        <xs:attribute name="media" type="xs:string"/>
        <xs:attribute name="backgroundColor" type="xs:string"/>
    </xs:complexType>
</xs:element>

</xs:schema>

