<?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.
  -->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.apache.org/ode/schemas/dd/2007/03"
           xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"
           elementFormDefault="qualified">

    <xs:element name="deploy" id="deploy" type="dd:tDeployment"/>

    <xs:complexType name="tDeployment">
        <xs:sequence>

            <xs:element name="process"  minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>

                        <xs:element name="active" minOccurs="0" maxOccurs="1" type="xs:boolean"
                                    default="true">
                            <xs:annotation>
                                <xs:documentation> Active flag, if set process will be activated once
                                    deployed. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="retired" minOccurs="0" maxOccurs="1" type="xs:boolean"
                                    default="false">
                            <xs:annotation>
                                <xs:documentation> Retired flag, if set process will be retired once
                                    deployed. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="in-memory" minOccurs="0" maxOccurs="1" type="xs:boolean"
                                    default="false">
                            <xs:annotation>
                                <xs:documentation>Should the process be persistent or only execute
                                    in-memory.</xs:documentation>
                            </xs:annotation>
                        </xs:element>

                        <xs:element name="property"  minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>
                                    A user-defined property that will be attached to a process upon
                                    deployment.
                                </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
                                </xs:sequence>
                                <xs:attribute name="name" type="xs:QName" use="required"/>
                            </xs:complexType>
                        </xs:element>

                        <xs:element name="process-events" minOccurs="0" maxOccurs="1" type="dd:tProcessEvents"/>

                        <xs:element name="provide"  minOccurs="0" maxOccurs="unbounded" type="dd:tProvide"/>
                        <xs:element name="invoke"  minOccurs="0" maxOccurs="unbounded" type="dd:tInvoke"/>

                        <xs:element name="mex-interceptors" minOccurs="0" maxOccurs="1" >
                            <xs:annotation>
                                <xs:documentation>
                                    List of message exchange interceptors that should be registered for this process.
                                </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="mex-interceptor" minOccurs="0" maxOccurs="unbounded" type="dd:tMexInterceptor" />
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="type" minOccurs="0" maxOccurs="1"  type="xs:QName">
                            <xs:annotation>
                                <xs:documentation> Process type -- indicates which process defintion should be used
                                    for the process.</xs:documentation>
                            </xs:annotation>
                        </xs:element>

                    </xs:sequence>

                    <xs:attribute name="name" type="xs:QName" use="required"/>
                    <xs:attribute name="fileName" type="xs:string" use="optional"/>
                    <xs:attribute name="bpel11wsdlFileName" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation>
                                Allows you to specify a WSDL for BPEL 1.1 processes which do not support an "import" element.
                                </xs:documentation>
                            </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>

        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="tProvide">
        <xs:sequence>
            <xs:element name="service" minOccurs="1" maxOccurs="1" type="dd:tService"/>
        </xs:sequence>
        <xs:attribute name="partnerLink" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:complexType name="tInvoke">
        <xs:choice>
            <xs:element name="service" minOccurs="1" maxOccurs="1" type="dd:tService"/>
            <xs:element name="binding" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                    <xs:attribute name="name" type="xs:QName" use="required"/>
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attribute name="partnerLink" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:complexType name="tService">
        <xs:sequence>
            <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
        </xs:sequence>
        <xs:attribute name="name" type="xs:QName" use="required"/>
        <xs:attribute name="port" type="xs:NCName" use="required"/>
    </xs:complexType>

    <xs:complexType name="tMexInterceptor" >
        <xs:annotation>
            <xs:documentation>
                Message exchange interceptor configuration.
            </xs:documentation>
        </xs:annotation>

        <xs:sequence>
            <xs:element name="class-name" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="tEnableEventList">
        <xs:sequence>
            <xs:element name="enable-event" minOccurs="1" maxOccurs="unbounded" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="tScopeEvents">
        <xs:complexContent>
            <xs:extension base="dd:tEnableEventList">
                <xs:attribute name="name" use="required" type="xs:string"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="tProcessEvents">
        <xs:complexContent>
            <xs:extension base="dd:tEnableEventList">
                <xs:sequence>
                    <xs:element name="scope-events" minOccurs="1" maxOccurs="unbounded" type="dd:tScopeEvents"/>
                </xs:sequence>
                <xs:attribute name="generate" use="optional">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="all"/>
                            <xs:enumeration value="none"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

</xs:schema>
