<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Mark Noll (Synopsys) -->
<!-- edited with XMLSpy v2007 rel. 3 (http://www.altova.com) by Greg Ehmann (Philips Electronics Nederland BV) -->
<!--
// Description : design.xsd
// Author : SPIRIT Schema Working Group
// Version:     $Revision: 721 $
// Date:        $Date: 2007-06-27 14:31:45 -0500 (Wed, 27 Jun 2007) $
// Tag:         $Name:  $
//
// Copyright (c) 2005 SPIRIT.  All rights reserved.
// www.spiritconsortium.com
//
// THIS WORK FORMS PART OF A SPIRIT CONSORTIUM SPECIFICATION.
// THIS WORK CONTAINS TRADE SECRETS AND PROPRIETARY INFORMATION
// WHICH IS THE EXCLUSIVE PROPERTY OF INDIVIDUAL MEMBERS OF THE
// SPIRIT CONSORTIUM. USE OF THESE MATERIALS ARE GOVERNED BY
// THE LEGAL TERMS AND CONDITIONS OUTLINED IN THE SPIRIT
// SPECIFICATION DISCLAIMER AVAILABLE FROM
// www.spiritconsortium.org
-->
<xs:schema xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xs:include schemaLocation="subInstances.xsd"/>
	<xs:include schemaLocation="model.xsd"/>
	<xs:include schemaLocation="port.xsd"/>
	<xs:element name="design">
		<xs:annotation>
			<xs:documentation>Root element for a platform design.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:group ref="spirit:versionedIdentifier"/>
				<xs:element ref="spirit:componentInstances" minOccurs="0"/>
				<xs:element ref="spirit:interconnections" minOccurs="0"/>
				<xs:element ref="spirit:adHocConnections" minOccurs="0"/>
				<xs:element name="hierConnections" minOccurs="0">
					<xs:annotation>
						<xs:documentation>A list of hierarchy connections between bus interfaces on component instances and the bus interfaces on the encompassing component.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="hierConnection" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Represents a hierarchy connection</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="activeInterface" type="spirit:interface">
											<xs:annotation>
												<xs:documentation>Component and bus reference to export to the upper level component</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
									</xs:sequence>
									<xs:attribute name="interfaceRef" type="xs:Name" use="required">
										<xs:annotation>
											<xs:documentation>This is the name of the bus interface on the upper level component.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="description" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>String for describing the design to users</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
		<xs:key name="designComponentInstanceKey">
			<xs:selector xpath="spirit:componentInstances/spirit:componentInstance"/>
			<xs:field xpath="spirit:instanceName"/>
		</xs:key>
		<xs:keyref name="designComponentMonitorInstanceRef" refer="spirit:designComponentInstanceKey">
			<xs:selector xpath=".//spirit:monitorInterface"/>
			<xs:field xpath="@spirit:componentRef"/>
		</xs:keyref>
		<xs:keyref name="designComponentActiveInstanceRef" refer="spirit:designComponentInstanceKey">
			<xs:selector xpath=".//spirit:activeInterface"/>
			<xs:field xpath="@spirit:componentRef"/>
		</xs:keyref>
		<xs:unique name="designInterconnectionName">
			<xs:selector xpath=".//spirit:interconnection|.//spirit:monitorInterconnection"/>
			<xs:field xpath="spirit:name"/>
		</xs:unique>
		<xs:unique name="designAdHocName">
			<xs:selector xpath=".//spirit:adHocConnection"/>
			<xs:field xpath="spirit:name"/>
		</xs:unique>
	</xs:element>
</xs:schema>
