<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2012 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://schemas.android.com/service/camera/metadata/"
    targetNamespace="http://schemas.android.com/service/camera/metadata/"
    elementFormDefault="qualified">

    <element name="metadata" type="tns:MetadataType"></element>

    <complexType name="MetadataType">
        <sequence>
            <element name="tags" type="tns:TagsType" maxOccurs="1" minOccurs="0"></element>
            <element name="namespace" type="tns:NamespaceType"
                maxOccurs="unbounded" minOccurs="1">
            </element>
        </sequence>
    </complexType>

    <complexType name="NamespaceType">
        <sequence>
            <element name="section" type="tns:SectionType" maxOccurs="unbounded" minOccurs="1"></element>
        </sequence>
        <attribute name="name" type="string" use="required"></attribute>
    </complexType>

    <complexType name="SectionType">
        <all>
            <element name="controls" type="tns:SectionKindType" maxOccurs="1" minOccurs="0"></element>
            <element name="static" type="tns:SectionKindType" maxOccurs="1" minOccurs="0"></element>
            <element name="dynamic" type="tns:SectionKindType" maxOccurs="1" minOccurs="0"></element>
        </all>
        <attribute name="name" type="string" use="required"></attribute>
    </complexType>

    <complexType name="SectionKindType">
        <complexContent>
            <extension base="tns:BaseNamespaceOrSectionKindType">
            </extension>
        </complexContent>
    </complexType>

    <complexType name="InnerNamespaceType">
        <complexContent>
            <extension base="tns:BaseNamespaceOrSectionKindType">
                <attribute name="name" type="string" use="required"></attribute>
            </extension>
        </complexContent>
    </complexType>

    <complexType name="BaseNamespaceOrSectionKindType">
        <sequence maxOccurs="unbounded">
            <choice>
                <element name="namespace" type="tns:InnerNamespaceType"></element>
                <element name="entry" type="tns:EntryType"></element>
                <element name="clone" type="tns:CloneType"></element>
            </choice>
        </sequence>
    </complexType>

    <complexType name="TagsType">
        <sequence>
            <element name="tag" type="tns:TagType" maxOccurs="unbounded" minOccurs="0"></element>
        </sequence>
    </complexType>

    <complexType name="TagType">
        <simpleContent>
            <extension base="string">
                <attribute name="id" type="string" use="required"></attribute>
            </extension>
        </simpleContent>
    </complexType>

    <group name="BaseEntryGroup">
        <sequence>
            <element name="description" type="string" maxOccurs="1"
                minOccurs="0">
            </element>
            <element name="units" type="string" maxOccurs="1"
                minOccurs="0">
            </element>
            <element name="range" type="string" maxOccurs="1"
                minOccurs="0">
            </element>
            <element name="notes" type="string" maxOccurs="1"
                minOccurs="0">
            </element>

            <element name="tag" type="tns:TagType" maxOccurs="unbounded"
                minOccurs="0">
            </element>
        </sequence>
    </group>

    <complexType name="EntryType">
        <sequence>
            <element name="array" type="tns:ArrayType" maxOccurs="1" minOccurs="0"></element>
            <element name="enum" type="tns:EnumType" maxOccurs="1" minOccurs="0"></element>
            <element name="tuple" type="tns:TupleType" maxOccurs="1" minOccurs="0"></element>

            <group ref="tns:BaseEntryGroup" />
        </sequence>

        <attribute name="name" type="string" use="required" />
        <attribute name="type" use="required">
            <simpleType>
                <restriction base="string">
                    <enumeration value="byte" />
                    <enumeration value="int32" />
                    <enumeration value="int64" />
                    <enumeration value="float" />
                    <enumeration value="double" />
                    <enumeration value="rational" />
                    <enumeration value="enum" />
                </restriction>
            </simpleType>
        </attribute>
        <attribute name="type_notes" type="string" />
        <attribute name="container">
            <simpleType>
                <restriction base="string">
                    <enumeration value="array" />
                    <enumeration value="tuple" />
                </restriction>
            </simpleType>
        </attribute>
    </complexType>

    <complexType name="EnumType">
        <sequence>
            <element name="value" type="tns:EnumValueType" maxOccurs="unbounded"></element>
        </sequence>
    </complexType>

    <complexType name="TupleType">
        <sequence>
            <element name="value" type="string" minOccurs="1" maxOccurs="unbounded"></element>
        </sequence>
    </complexType>

    <complexType name="ArrayType">
        <sequence>
            <element name="size" type="string" minOccurs="1" maxOccurs="unbounded"></element>
        </sequence>
    </complexType>

    <complexType name="EnumValueType" mixed="true">

        <sequence>
            <element name="notes" type="string" minOccurs="0" maxOccurs="1" />
        </sequence>

        <attribute name="optional">
            <simpleType>
                <restriction base="string">
                    <enumeration value="true"></enumeration>
                    <enumeration value="false"></enumeration>
                </restriction>
            </simpleType>
        </attribute>
        <attribute name="id" type="string" />
    </complexType>

    <complexType name="CloneType">
        <sequence>
                <group ref="tns:BaseEntryGroup" />
        </sequence>

        <!--
             the semantic correctness of the next 2 attributes
             are validated by metadata_validate.py

             due to the inability of XSD to generate paths recursively
        -->
        <attribute name="entry">
        </attribute>
        <attribute name="kind">
            <simpleType>
                <restriction base="string">
                    <enumeration value="controls"></enumeration>
                    <enumeration value="static"></enumeration>
                    <enumeration value="dynamic"></enumeration>
                </restriction>
            </simpleType>
        </attribute>
    </complexType>
</schema>
