<?xml version="1.0"?>
<!--

    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="http://ns.taverna.org.uk/2013/application/plugin"
	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:versions="http://ns.taverna.org.uk/2013/application/versions"
	xmlns:ap="http://ns.taverna.org.uk/2013/application/profile"
	xmlns:plugin="http://ns.taverna.org.uk/2013/application/plugin"
	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="1.0"
	targetNamespace="http://ns.taverna.org.uk/2013/application/plugin"
	elementFormDefault="qualified">

	<xs:annotation>
		<xs:appinfo>
			<jxb:schemaBindings>
				<jxb:package name="org.apache.taverna.plugin.xml.jaxb" />
			</jxb:schemaBindings>
		</xs:appinfo>
	</xs:annotation>

	<xs:import namespace="http://ns.taverna.org.uk/2013/application/versions"
		schemaLocation="ApplicationVersions.xsd" />

	<xs:import namespace="http://ns.taverna.org.uk/2013/application/profile"
		schemaLocation="ApplicationProfile.xsd" />

	<xs:element name="pluginInfo">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="xs:string" />
				<xs:element name="name" type="xs:string" />
				<xs:element name="description" type="xs:string" />
				<xs:element name="organization" type="xs:string" />
				<xs:element name="version" type="versions:semanticVersion" />
				<xs:element name="bundle" type="ap:bundleInfo" minOccurs="0" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="pluginVersions">
		<xs:complexContent>
			<xs:extension base="versions:versions">
				<xs:sequence>
					<xs:element name="organization" type="xs:string" />
					<xs:element name="pluginSiteUrl" type="xs:string" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="plugins">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="plugin" type="pluginVersions"
					minOccurs="1" maxOccurs="unbounded">
					<xs:unique name="versionUnique">
						<xs:selector
							xpath="versions:previousVersion/versions:version|versions:latestVersion/versions:version" />
						<xs:field xpath="." />
					</xs:unique>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
		<xs:unique name="versionsIdUnique">
			<xs:selector xpath="plugin:versions/versions:id" />
			<xs:field xpath="." />
		</xs:unique>
	</xs:element>

</xs:schema>
