<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 rel. 3 (http://www.altova.com) by Greg Ehmann (Philips Electronics Nederland BV) -->
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Mark Noll (Synopsys) -->
<!--
// Description : commonStructures.xsd
// Author : SPIRIT Schema Working Group
// Version:     $Revision: 771 $
// Date:        $Date: 2007-07-16 14:57:19 -0700 (Mon, 16 Jul 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:xs="http://www.w3.org/2001/XMLSchema" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4" targetNamespace="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xs:include schemaLocation="autoConfigure.xsd"/>
	<xs:complexType name="nameValueTypeType">
		<xs:annotation>
			<xs:documentation>Name value pair with data type information.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="spirit:nameValuePairType">
				<xs:attribute name="dataType" type="xs:string">
					<xs:annotation>
						<xs:documentation>The data type of the argument as pertains to the language. Example: "int", "double", "char *".</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="usageType" default="nontyped">
					<xs:annotation>
						<xs:documentation>Indicates the type of the model parameter. Legal values are defined in the attribute enumeration list. Default value is 'nontyped'.</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="nontyped"/>
							<xs:enumeration value="typed"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="persistentInstanceData" type="spirit:persistentDataType">
		<xs:annotation>
			<xs:documentation>A container for any data that is specific to this instance of the design object. The contents are not interpreted or validated by the Design Environment. This element will be saved with the design and restored when the design is loaded. It is indended to be used by generators to store and retrieve instance specific data.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="parameter" type="spirit:nameValuePairType">
		<xs:annotation>
			<xs:documentation>A name value pair.  The name is specified by the name element.  The value is in the text content of the value element.  This value element supports all configurability attributes.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="parameters">
		<xs:annotation>
			<xs:documentation>A collection of parameters.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="spirit:parameter" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="persistentDataType">
		<xs:attribute ref="spirit:id" use="required"/>
	</xs:complexType>
	<xs:element name="vendorExtensions">
		<xs:annotation>
			<xs:documentation>Container for vendor specific extensions.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Accepts any element(s) the content provider wants to put here, including elements from the SPIRIT namespace.</xs:documentation>
					</xs:annotation>
				</xs:any>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:group name="nameGroup">
		<xs:annotation>
			<xs:documentation>A group of elements for name (xs:name), displayName and description</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="xs:Name">
				<xs:annotation>
					<xs:documentation>Unique name</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="displayName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Element name for display purposes. Typically a few words providing a more detailed and/or user-friendly name than the spirit:name.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Full description string, typically for documentation</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
	<xs:group name="nameGroupOptional">
		<xs:annotation>
			<xs:documentation>A group of elements for name (xs:name), displayName and description where the name is optional</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="xs:Name" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Unique name</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="displayName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Element name for display purposes. Typically a few words providing a more detailed and/or user-friendly name than the spirit:name.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Full description string, typically for documentation</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
	<xs:group name="nameGroupNMTOKEN">
		<xs:annotation>
			<xs:documentation>A group of elements for name(xs:NMTOKEN), displayName and description</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="xs:NMTOKEN">
				<xs:annotation>
					<xs:documentation>Unique name</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="displayName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Element name for display purposes. Typically a few words providing a more detailed and/or user-friendly name than the spirit:name.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Full description string, typically for documentation</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="nameValuePairType">
		<xs:annotation>
			<xs:documentation>Name and value type for use in resolvable elements</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:group ref="spirit:nameGroupString"/>
			<xs:element name="value">
				<xs:annotation>
					<xs:documentation>The value of the parameter.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attributeGroup ref="spirit:autoConfig"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
		</xs:sequence>
		<xs:anyAttribute namespace="##any"/>
	</xs:complexType>
	<xs:group name="nameGroupString">
		<xs:annotation>
			<xs:documentation>A group of elements for name(xs:string), displayName and description</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="xs:string">
				<xs:annotation>
					<xs:documentation>Unique name</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="displayName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Short description string, typically for user interface</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Full description string, typically for documentation</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
</xs:schema>
