<?xml version = "1.0" encoding = "UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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.
	   
-->
<xsd:schema xmlns:mfp="http://myfaces.apache.org/maven-faces-plugin"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://myfaces.apache.org/maven-faces-plugin"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified"
            version="1.2">

    <xsd:annotation>
        <xsd:documentation>
            $Id: $
        </xsd:documentation>
    </xsd:annotation>

    <!-- **************************************************** -->

    <xsd:element name="component" type="mfp:componentType" />
    <xsd:element name="property" type="mfp:propertyType" />

    <!-- **************************************************** -->

    <xsd:complexType name="propertyType">
        <xsd:sequence>
            <xsd:element name="required"
                         type="xsd:boolean"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="alias-of"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="transient"
                         type="xsd:boolean"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="state-holder"
                         type="xsd:boolean"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="requires-literal" type="xsd:boolean"
                         minOccurs="0"/>
            <xsd:element name="virtual" type="xsd:boolean"/>
            <xsd:element name="method-binding-signature"
                         type="mfp:method-binding-signatureType" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="componentType">
        <xsd:sequence>
            <xsd:element name="component-family"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="renderer-type"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="component-supertype"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="component-superclass"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="default-renderer-type"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="naming-container" type="xsd:boolean"
                         minOccurs="0"/>
            <xsd:element name="jsp-tag-class" type="xsd:string"/>
            <xsd:element name="event"
                         type="mfp:component-eventType"
                         minOccurs="0"
                         maxOccurs="unbounded" />
        </xsd:sequence>
    </xsd:complexType>

    <!-- **************************************************** -->

    <xsd:complexType name="component-eventType">
        <xsd:sequence>
            <xsd:element name="event-name"
                         type="xsd:string"
                         minOccurs="1"
                         maxOccurs="1" />
            <xsd:element name="event-listener-class"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="event-class"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="event-source-interface"
                         type="xsd:string"
                         minOccurs="0"
                         maxOccurs="1" />
            <xsd:element name="event-delivery-phases" type="xsd:string"
                         minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="method-binding-signatureType">
        <xsd:sequence>
            <xsd:element name="parameter-type" type="xsd:string" minOccurs="0"
                         maxOccurs="unbounded"/>
            <xsd:element name="return-type" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->

</xsd:schema>
