<?xml version="1.0" encoding="UTF-8"?>
<!--
**************************** READ THIS FIRST ****************************
Caution: This File is Auto Generated from the set of Published FpML
         Schemas and GS Extensions to those products

- DO NOT CHANGE THIS FILE as your changes will be lost
- DO NOT INCLUDE this file in any other schema that is included in fpml-main

This File Consolidates the many various XSD Files that are used in Odysey.
If you need to make your changes to the XSD, start at fpml-main and make your
changes forward from there.

The LOG Comments below are made by the core team as they rebuild this
file and commit the regenerated code back into CVS. This file is commited
to CVS so that we have a single consistent build point for all the internal
and external schema changes.

Do Not make changes to files named fpml-* before speaking to the Odyssey
Core Team

CORE: Make sure that this header is readded after each generation.
*************************************************************************
CVS LOG
$Id: fpml-all-4-0.xsd,v 1.186 2006/10/27 19:52:45 romerc Exp $
$Log: fpml-all-4-0.xsd,v $
Revision 1.186  2006/10/27 19:52:45  romerc
Removed optionEvents element

Revision 1.4  2005/01/13 17:31:36  weirj
Add the Header to the XSLT

*************************************************************************
        -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.fpml.org/2004/FpML-4-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.fpml.org/2003/FpML-4-0" targetNamespace="http://www.fpml.org/2003/FpML-4-0" attributeFormDefault="unqualified" elementFormDefault="qualified">

	<xsd:element name="eventEffectiveDate" type="xsd:date"/>

	<xsd:complexType name="CBMTransactionEvent">
		<xsd:sequence>
			<xsd:element ref="eventEffectiveDate" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>


	<xsd:simpleType name="PartyId">
		<xsd:restriction base="xsd:string" />
	</xsd:simpleType>

	<xsd:element name="partyId">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="PartyId">
					<xsd:attribute name="partyIdScheme" type="xsd:normalizedString" />
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="partyName" type="xsd:string"/>

	<xsd:complexType name="PartyType">
		<xsd:sequence>
			<xsd:element ref="partyId" />
			<xsd:element ref="partyName" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:ID" use="required" />
	</xsd:complexType>

	<xsd:element name="partyReference">
		<xsd:complexType>
			<xsd:attribute name="href" type="xsd:IDREF" use="required" />
		</xsd:complexType>
	</xsd:element>

	<xsd:simpleType name="AssignmentRole">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Transferee" />
			<xsd:enumeration value="Transferor" />
			<xsd:enumeration value="RemainingParty" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="AssignmentNotification">
		<xsd:sequence>
			<xsd:element name="unwindCashflow" minOccurs="0" >
				<xsd:complexType>
					<xsd:attribute name="href" type="xsd:IDREF" use="required"/>
				</xsd:complexType>
			</xsd:element>		
			<xsd:element ref="partyReference"/>
			<xsd:element name="assignmentRole" type="AssignmentRole"/>
			<xsd:element name="priorNotification" type="xsd:boolean"/>
			<xsd:element name="contactName" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="partialTermination">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="partyOne" type="PartyType"/>
				<xsd:element name="partyTwo" type="PartyType"/>
				<xsd:element name="partialAmount" type="xsd:decimal"/>
				<xsd:element name="assignmentNotification"
					type="AssignmentNotification" minOccurs="0"
					maxOccurs="unbounded"/>
				<xsd:choice>
					<xsd:element name="underlyerAdjustment">
						<xsd:complexType>
							<xsd:complexContent>
								<xsd:extension base="CBMTransactionEvent">
									<xsd:sequence>
										<xsd:element name="unwindCashflow"
											minOccurs="0" maxOccurs="unbounded">
											<xsd:complexType>
												<xsd:attribute name="href" type="xsd:IDREF"	use="required"/>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
								</xsd:extension>
							</xsd:complexContent>
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
	
	