<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
	xmlns="http://www.ebi.ac.uk/Tools/dbfetch/schema/DbfetchInformation"
	xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ebi.ac.uk/Tools/dbfetch/schema/DbfetchInformation"
	elementFormDefault="qualified">
<!--
  Copyright (C) 2006 - 2023 EMBL - European Bioinformatics Institute

  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.
-->
	<xs:complexType name="ExampleIdentifiersInfo">
		<xs:annotation>
			<xs:documentation>Set of example identifiers for the database.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="accessionList" nillable="true">
				<xs:annotation>
					<xs:documentation>List of example accession numbers for the database.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element maxOccurs="unbounded" minOccurs="0" name="accession"
							type="xs:string">
							<xs:annotation>
								<xs:documentation>Example accession number for the database.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="entryVersionList" nillable="true">
				<xs:annotation>
					<xs:documentation>List of example entry version identifiers for the database.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element maxOccurs="unbounded" minOccurs="0"
							name="entryVersion" type="xs:string">
							<xs:annotation>
								<xs:documentation>Example entry version identifier.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="idList" nillable="true">
				<xs:annotation>
					<xs:documentation>List of example Ids for the database.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element maxOccurs="unbounded" minOccurs="0" name="id"
							type="xs:string">
							<xs:annotation>
								<xs:documentation>Example Id for the database.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="nameList" nillable="true">
				<xs:annotation>
					<xs:documentation>List of example entry names for the database.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element maxOccurs="unbounded" minOccurs="0" name="name"
							type="xs:string">
							<xs:annotation>
								<xs:documentation>Example entry name for database.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="sequenceVersionList" nillable="true">
				<xs:annotation>
					<xs:documentation>List of sequence version identifiers for database.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element maxOccurs="unbounded" minOccurs="0"
							name="sequenceVersion" type="xs:string">
							<xs:annotation>
								<xs:documentation>Example sequence version identifier for database.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="StyleInfo">
		<xs:annotation>
			<xs:documentation>Details of an available result style.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="mimeType" nillable="true" type="xs:string">
				<xs:annotation>
					<xs:documentation>MIME type for results in this format and style.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="name" nillable="true" type="xs:string">
				<xs:annotation>
					<xs:documentation>Name of this result style, to be used in requests.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="StyleInfoList">
		<xs:annotation>
			<xs:documentation>List of details of available result styles.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="styleInfo"
				type="StyleInfo" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="FormatInfo">
		<xs:annotation>
			<xs:documentation>Details of an available data format.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="aliases" nillable="true">
				<xs:annotation>
					<xs:documentation>Other names for this data format, can be used in requests.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="alias" type="xs:string" minOccurs="0"
							maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>An alias for this data format.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="dataTerms" nillable="true">
				<xs:annotation>
					<xs:documentation>Ontology terms describing the data content of the format. Typically from EDAM (http://edamontology.sourceforge.net/).</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="dataTerm" type="xs:string" minOccurs="0"
							maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Ontology term describing the data content of the format. May be represented as a namespace:id identifier or a URI.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="name" type="xs:string">
				<xs:annotation>
					<xs:documentation>Name for the data format. Used in requests.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="styleInfoList" nillable="true" type="StyleInfoList">
				<xs:annotation>
					<xs:documentation>Details of the available result styles for this data format.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="syntaxTerms" nillable="true">
				<xs:annotation>
					<xs:documentation>List of ontology terms describing the syntax of the data format. Typically from EDAM (http://edamontology.sourceforge.net/).</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="syntaxTerm" type="xs:string"
							minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Ontology term describing the syntax of the format. May be represented as a namespace:id identifier or a URI.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="FormatInfoList">
		<xs:annotation>
			<xs:documentation>List of data format details.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="formatInfo"
				type="FormatInfo" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DataResourceInfo">
		<xs:annotation>
			<xs:documentation>Details of a data resource.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="href" type="xs:anyURI" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>URL of data resource main page or documentation.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Data resource name.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DataResourceInfoList">
		<xs:annotation>
			<xs:documentation>List of data resource details.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="dataResourceInfo" type="DataResourceInfo" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DatabaseInfo">
		<xs:annotation>
			<xs:documentation>Details of a database.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="aliasList" nillable="true">
				<xs:annotation>
					<xs:documentation>List of other names for the database.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="alias" type="xs:string" minOccurs="0"
							maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Alias for the database. Can be used in requests.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="databaseTerms" nillable="true">
				<xs:annotation>
					<xs:documentation>List of ontology terms describing the database. Typically from EDAM (http://edamontology.sourceforge.net/), MIRIAM Registry (http://www.ebi.ac.uk/miriam/) and/or DRCAT (http://drcat.sourceforge.net/).</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="databaseTerm" type="xs:string"
							minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Ontology term describing the database.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="dataResourceInfoList" nillable="true" type="DataResourceInfoList">
				<xs:annotation>
					<xs:documentation>List of data resources used to obtain entry data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="defaultFormat" nillable="true" type="xs:string">
				<xs:annotation>
					<xs:documentation>Name of the data format used as the default.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" nillable="true" type="xs:string">
				<xs:annotation>	
					<xs:documentation>A short description of the database, suitable for use in help documentation.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="displayName" nillable="true" type="xs:string">
				<xs:annotation>
					<xs:documentation>Name of the database to be displayed in user interfaces. Not to be used for retrieval.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="exampleIdentifiers" nillable="true"
				type="ExampleIdentifiersInfo">
				<xs:annotation>
					<xs:documentation>Set of example identifiers for entries in the database.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="formatInfoList" nillable="true"
				type="FormatInfoList">
				<xs:annotation>
					<xs:documentation>Details of the available data formats for this database.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="href" nillable="true" type="xs:anyURI">
				<xs:annotation>
					<xs:documentation>URL to the main database site, for use in help or documentation.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="name" nillable="true" type="xs:string">
				<xs:annotation>
					<xs:documentation>Name for the database. To be used in requests.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="databaseInfoList">
		<xs:annotation>
			<xs:documentation>List of database details.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" name="databaseInfo"
					type="DatabaseInfo">
					<xs:annotation>
						<xs:documentation>Details for a database.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>