<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 rel. 3 (http://www.altova.com) by Erwin de Kock (Philips Electronics Nederland BV) -->
<!-- 
// Description: designConfig.xsd
// Author: The Accellera System Initiative IP-XACT Schema Working Group
// 
// Revision:    $Revision: 1537 $
// Date:        $Date: 2010-02-26 13:28:40 -0800 (Fri, 26 Feb 2010) $
// 
// Copyright (c) 2005 - 2012 Accellera Systems Initiative Inc. 
// All rights reserved.
// 
// This source file is provided on an AS IS basis. The Accellera 
// Systems Initiative disclaims any warranty express or implied 
// including any warranty of merchantability and fitness for use 
// for a particular purpose.
// 
// The user of the source file shall indemnify and hold The Accellera 
// Systems Initiative and its members harmless from any damages or liability.
// 
// This file may be copied, and distributed, WITHOUT
// modifications; this notice must be included on any copy.
// 
// This schema shall not be modified, adapted, altered, sublicensed, nor
// any derivative works shall be created based upon the schema.  The
// intended and allowed uses of the schema include:
// 
//  o Creating and validating XML documents that conform to the schema
// 
//  o Building software programs and systems based on the schema
// 
//  o Distributing verbatim copy of the schema as long as the full text
//  of this license is included in all copies of the schema.
//  Specifically, a tool may include full copies of the schema, and these
//  copies may be distributed by the tool provider directly.  A link or
//  URL to the original of the schema is inherent in the schema URI.
// 
//  o Documents which are validated against this schema may also
//  reference additional schema. These additional schemas may provide for
//  validation of elements and attributes at the extension points
//  explicitly and implicitly included in the IEEE 1685-???? standard.
// 
//  o No right to create new schemas derived from parts of this base
//  schema is granted pursuant to this License.
// 
// Users are requested to provide feedback to The Accellera Systems 
// Initiative IP-XACT Schema Working Group using: 
// mailto:ip-xact-swg@lists.accellera.org
 -->
<xs:schema xmlns:ipxact="http://www.accellera.org/XMLSchema/IPXACT/1685-2014" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.accellera.org/XMLSchema/IPXACT/1685-2014" elementFormDefault="qualified">
	<xs:include schemaLocation="commonStructures.xsd"/>
	<xs:include schemaLocation="identifier.xsd"/>
	<xs:include schemaLocation="model.xsd"/>
	<xs:include schemaLocation="subInstances.xsd"/>
	<xs:element name="designConfiguration">
		<xs:annotation>
			<xs:documentation>Top level element for describing the current configuration of a design. Does not describe instance parameterization</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:group ref="ipxact:versionedIdentifier"/>
				<xs:element name="designRef" type="ipxact:libraryRefType" minOccurs="0">
					<xs:annotation>
						<xs:documentation>The design to which this configuration applies</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="generatorChainConfiguration" type="ipxact:configurableLibraryRefType" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Contains the configurable information associated with a generatorChain and its generators. Note that configurable information for generators associated with components is stored in the design file.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="interconnectionConfiguration" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Contains the information about the abstractors required to cross between two interfaces at with different abstractionDefs.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
              <xs:element ref="ipxact:isPresent" minOccurs="0"/>
							<xs:element name="interconnectionRef" type="xs:Name">
								<xs:annotation>
									<xs:documentation>Reference to the interconnection name, monitor interconnection name or possibly a hierConnection interfaceName in a design file.</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="abstractorInstances" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>List of abstractor-instances for this interconnection. Multiple abstractor-instances elements may be present for a 1-to-many (broadcast) interconnection. In that case, the optional interfaceRef elements must reference non-overlapping interfaces from the 'many' side of the interconnection.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
                    <xs:element ref="ipxact:isPresent" minOccurs="0"/>
										<xs:element name="interfaceRef" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>Defines the broadcast endpoint to which this chain of abstractors applies.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
											  <xs:sequence minOccurs="0">
                          <xs:element ref="ipxact:isPresent" minOccurs="0"/>
                        </xs:sequence>
												<xs:attribute name="componentRef" type="xs:Name" use="required">
													<xs:annotation>
														<xs:documentation>Reference to a component instance nane.</xs:documentation>
													</xs:annotation>
												</xs:attribute>
												<xs:attribute name="busRef" type="xs:Name" use="required">
													<xs:annotation>
														<xs:documentation>Reference to a component bus interface name.</xs:documentation>
													</xs:annotation>
												</xs:attribute>
											</xs:complexType>
										</xs:element>
										<xs:element name="abstractorInstance" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>Element to hold a the abstractor reference, the configuration and viewName. If multiple elements are present then the order is the order in which the abstractors should be chained together.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="instanceName" type="xs:Name">
														<xs:annotation>
															<xs:documentation>Instance name for the abstractor</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element ref="ipxact:displayName" minOccurs="0"/>
													<xs:element ref="ipxact:description" minOccurs="0"/>
													<xs:element name="abstractorRef" type="ipxact:configurableLibraryRefType">
														<xs:annotation>
															<xs:documentation>Abstractor reference</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="viewName" type="xs:Name">
														<xs:annotation>
															<xs:documentation>The name of the active view for this abstractor instance.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
												<xs:attributeGroup ref="ipxact:id.att"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attributeGroup ref="ipxact:id.att"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="viewConfiguration" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Contains the active views for each instance in the design</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="ipxact:instanceName"/>
							<xs:element ref="ipxact:isPresent" minOccurs="0"/>
							<xs:element name="view">
								<xs:annotation>
									<xs:documentation>The selected view for the instance.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element ref="ipxact:configurableElementValues" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Parameter values to set in the selected configuredView.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="viewRef" type="xs:NMTOKEN" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attributeGroup ref="ipxact:id.att"/>
					</xs:complexType>
				</xs:element>
				<xs:element ref="ipxact:description" minOccurs="0"/>
				<xs:element ref="ipxact:parameters" minOccurs="0"/>
				<xs:element ref="ipxact:assertions" minOccurs="0"/>
				<xs:element ref="ipxact:vendorExtensions" minOccurs="0"/>
			</xs:sequence>
			<xs:attributeGroup ref="ipxact:id.att"/>
		</xs:complexType>
		<xs:key name="designConfigViewInstanceKey">
			<xs:selector xpath="ipxact:viewConfiguration"/>
			<xs:field xpath="ipxact:instanceName"/>
		</xs:key>
		<xs:key name="designConfigAbstractorInstanceKey">
			<xs:selector xpath="ipxact:interconnectionConfiguration/ipxact:abstractors/ipxact:abstractor"/>
			<xs:field xpath="ipxact:instanceName"/>
		</xs:key>
		<xs:key name="designConfigInterconnectionRefKey">
			<xs:selector xpath="ipxact:interconnectionConfiguration"/>
			<xs:field xpath="ipxact:interconnectionRef"/>
		</xs:key>
		<xs:key name="designConfigGeneratorChainRefKey">
			<xs:selector xpath="ipxact:generatorChainConfiguration/ipxact:generatorChainRef"/>
			<xs:field xpath="@vendor"/>
			<xs:field xpath="@library"/>
		  <xs:field xpath="@name"/>
			<xs:field xpath="@version"/>
		</xs:key>
	</xs:element>
</xs:schema>
