<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.pwc.com/CVAResult"
           xmlns:cvar="http://www.pwc.com/CVAResult"
           elementFormDefault="qualified" xmlns:xsd="undefined">
  <xs:element name="CVAResult">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="cvar:LogEntry"/>
        <xs:element maxOccurs="unbounded" ref="cvar:CVA"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:normalizedString"/>
      <xs:attribute name="runtime" use="required" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="CVA">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="cvar:LegalScenario"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:normalizedString"/>
      <xs:attribute name="portfolio" type="xs:normalizedString"/>
      <xs:attribute name="marketScenario" type="xs:normalizedString"/>
      <xs:attribute name="creditScenario" type="xs:normalizedString"/>
      <xs:attribute name="mode" type="xs:normalizedString"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="LegalScenario">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="cvar:Sample"/>
        <xs:element ref="cvar:CSA" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:normalizedString"/>
      <xs:attribute name="cvaNegative" use="required" type="xs:double"/>
      <xs:attribute name="cvaNet" use="required" type="xs:double"/>
      <xs:attribute name="cvaPositive" use="required" type="xs:double"/>
      <xs:attribute name="cvaNegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaNetSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaPositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="eeNegative" use="required" type="xs:double"/>
      <xs:attribute name="eeNet" use="required" type="xs:double"/>
      <xs:attribute name="eePositive" use="required" type="xs:double"/>
      <xs:attribute name="eeNegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="eeNetSd" use="required" type="xs:double"/>
      <xs:attribute name="eePositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEENegative" use="required" type="xs:double"/>
      <xs:attribute name="pvEENet" use="required" type="xs:double"/>
      <xs:attribute name="pvEEPositive" use="required" type="xs:double"/>
      <xs:attribute name="pvEENegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEENetSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEEPositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="reNegative" type="xs:double"/>
      <xs:attribute name="reNet" type="xs:double"/>
      <xs:attribute name="rePositive" type="xs:double"/>
      <xs:attribute name="reNegativeSd" type="xs:double"/>
      <xs:attribute name="reNetSd" type="xs:double"/>
      <xs:attribute name="rePositiveSd" type="xs:double"/>
      <xs:attribute name="vmNegative" type="xs:double"/>
      <xs:attribute name="vmNet" type="xs:double"/>
      <xs:attribute name="vmPositive" type="xs:double"/>
      <xs:attribute name="vmNegativeSd" type="xs:double"/>
      <xs:attribute name="vmNetSd" type="xs:double"/>
      <xs:attribute name="vmPositiveSd" type="xs:double"/>
      <xs:attribute name="count" use="required" type="xs:double"/>
      <xs:attribute name="mark" type="xs:double"/>
      <xs:attribute name="userMark" type="xs:double"/>
      <xs:attribute name="userCva" type="xs:double"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="CSA">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="cvar:Sample"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:normalizedString"/>
      <xs:attribute name="cvaNegative" use="required" type="xs:double"/>
      <xs:attribute name="cvaNet" use="required" type="xs:double"/>
      <xs:attribute name="cvaPositive" use="required" type="xs:double"/>
      <xs:attribute name="cvaNegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaNetSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaPositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="eeNegative" use="required" type="xs:double"/>
      <xs:attribute name="eeNet" use="required" type="xs:double"/>
      <xs:attribute name="eePositive" use="required" type="xs:double"/>
      <xs:attribute name="eeNegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="eeNetSd" use="required" type="xs:double"/>
      <xs:attribute name="eePositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEENegative" use="required" type="xs:double"/>
      <xs:attribute name="pvEENet" use="required" type="xs:double"/>
      <xs:attribute name="pvEEPositive" use="required" type="xs:double"/>
      <xs:attribute name="pvEENegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEENetSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEEPositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="reNegative" type="xs:double"/>
      <xs:attribute name="reNet" type="xs:double"/>
      <xs:attribute name="rePositive" type="xs:double"/>
      <xs:attribute name="reNegativeSd" type="xs:double"/>
      <xs:attribute name="reNetSd" type="xs:double"/>
      <xs:attribute name="rePositiveSd" type="xs:double"/>
      <xs:attribute name="vmNegative" type="xs:double"/>
      <xs:attribute name="vmNet" type="xs:double"/>
      <xs:attribute name="vmPositive" type="xs:double"/>
      <xs:attribute name="vmNegativeSd" type="xs:double"/>
      <xs:attribute name="vmNetSd" type="xs:double"/>
      <xs:attribute name="vmPositiveSd" type="xs:double"/>
      <xs:attribute name="count" use="required" type="xs:double"/>
      <xs:attribute name="mark" type="xs:double"/>
      <xs:attribute name="userMark" type="xs:double"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Sample">
    <xs:complexType>
      <xs:attribute name="at" use="required" type="xs:date"/>
      <xs:attribute name="from" use="required" type="xs:date"/>
      <xs:attribute name="to" use="required" type="xs:date"/>
      <xs:attribute name="cvaNegative" use="required" type="xs:double"/>
      <xs:attribute name="cvaNet" use="required" type="xs:double"/>
      <xs:attribute name="cvaNegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaNetSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaPositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="cvaPositive" use="required" type="xs:double"/>
      <xs:attribute name="eeNegative" use="required" type="xs:double"/>
      <xs:attribute name="eeNet" use="required" type="xs:double"/>
      <xs:attribute name="eePositive" use="required" type="xs:double"/>
      <xs:attribute name="eeNegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="eeNetSd" use="required" type="xs:double"/>
      <xs:attribute name="eePositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEENegative" use="required" type="xs:double"/>
      <xs:attribute name="pvEENet" use="required" type="xs:double"/>
      <xs:attribute name="pvEEPositive" use="required" type="xs:double"/>
      <xs:attribute name="pvEENegativeSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEENetSd" use="required" type="xs:double"/>
      <xs:attribute name="pvEEPositiveSd" use="required" type="xs:double"/>
      <xs:attribute name="reNegative" type="xs:double"/>
      <xs:attribute name="reNet" type="xs:double"/>
      <xs:attribute name="rePositive" type="xs:double"/>
      <xs:attribute name="reNegativeSd" type="xs:double"/>
      <xs:attribute name="reNetSd" type="xs:double"/>
      <xs:attribute name="rePositiveSd" type="xs:double"/>
      <xs:attribute name="vmNegative" type="xs:double"/>
      <xs:attribute name="vmNet" type="xs:double"/>
      <xs:attribute name="vmPositive" type="xs:double"/>
      <xs:attribute name="vmNegativeSd" type="xs:double"/>
      <xs:attribute name="vmNetSd" type="xs:double"/>
      <xs:attribute name="vmPositiveSd" type="xs:double"/>
      <xs:attribute name="bothSurvival" type="xs:double"/>
      <xs:attribute name="counterpartyDefault" type="xs:double"/>
      <xs:attribute name="counterpartySurvival" type="xs:double"/>
      <xs:attribute name="selfSurvival" type="xs:double"/>
      <xs:attribute name="selfDefault" type="xs:double"/>
      <xs:attribute name="discountFactor" type="xs:double"/>
      <xs:attribute name="bothSurvivalSd" type="xs:double"/>
      <xs:attribute name="counterpartyDefaultSd" type="xs:double"/>
      <xs:attribute name="counterpartySurvivalSd" type="xs:double"/>
      <xs:attribute name="discountFactorSd" type="xs:double"/>
      <xs:attribute name="selfDefaultSd" type="xs:double"/>
      <xs:attribute name="selfSurvivalSd" type="xs:double"/>
      <xs:attribute name="count" use="required" type="xs:double"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="LogEntry">
    <xs:complexType>
      <xs:simpleContent>
	<xs:extension base="xs:string">
	  <xs:attribute name="timestamp" type="xs:dateTime"/>
	  <xs:attribute name="eventType" type="xs:string"/>
	</xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>
