<?xml version="1.0" encoding="UTF-8"?>
<!-- Account-Notification-based provisioning -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="apf2doc">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="request"/>
				<xs:element ref="account"/>
				<xs:element ref="message"/>
				<xs:element ref="event_data" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="request">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="version"/>
				<xs:element ref="sender"/>
				<xs:element ref="transaction_id"/>
				<xs:element ref="action"/>
				<xs:element ref="class" minOccurs="0"/>
				<xs:element ref="auth_key" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- Aria-assigned version number of this provisioning request's document format.  Value in this version of the XML document is fixed at "3.1". -->
	<xs:element name="version" type="xs:decimal"/>
	<!-- Identifies the sender of the provisioning request.  Valid values are "A"=Aria or "C"=Client.  Currently only outbound requests from Aria-to-clients are supported, so the value of this field is effectively currently fixed as "A". -->
	<xs:element name="sender" nillable="false">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="A"/>
				<xs:enumeration value="C"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<!-- Aria-assigned provisioning request ID. -->
	<xs:element name="transaction_id" type="xs:int"/>
	<!--Identifies which action caused the provisioning request. "A"=add,"M"=modify,"D"=delete-->
	<xs:element name="action" nillable="false">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="A"/>
				<xs:enumeration value="M"/>
				<xs:enumeration value="D"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<!--Identifies the type of data being sent. "A"=account and MPI, "O"=order, "T"=financial transaction, "N"=account and MPI notification, "U"=usage monitoring. -->
	<xs:element name="class">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="N"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<!-- Client-specific authentication key -->
	<xs:element name="auth_key" type="xs:string"/>
	<xs:element name="account">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="client_no"/>
				<xs:element ref="acct_no"/>
				<xs:element ref="client_acct_id" minOccurs="0"/>
				<xs:element ref="userid" minOccurs="0"/>
				<xs:element ref="senior_acct_no" minOccurs="0"/>
				<xs:element name="master_plan_instances">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="master_plan_instance" maxOccurs="unbounded" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element type="xs:int" name="master_plan_instance_no"/>
                          <xs:element type="xs:string" name="client_plan_instance_id"/>
                          <xs:element type="xs:byte" name="resp_level_cd"/>
                          <xs:element type="xs:int" name="resp_plan_instance_no" minOccurs="0"/>
                          <xs:element type="xs:int" name="in_event_scope_ind" minOccurs="0"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- Aria-assigned client identifier -->
	<xs:element name="client_no" type="xs:int"/>
	<!-- Aria-assigned account identifier -->
	<xs:element name="acct_no" type="xs:int"/>
	<!-- Client account identifier -->
	<xs:element name="client_acct_id" type="xs:string"/>
	<xs:element name="userid" type="xs:string"/>
	<!-- Account’s payment responsibility level -->
	<xs:element name="resp_level_cd" type="xs:int"/>
	<!-- Account’s parent account -->
	<xs:element name="senior_acct_no" type="xs:int"/>
	<!-- Responsible plan instance no -->
	<xs:element name="resp_plan_instance_no" type="xs:int"/>
	<!-- Basic details of the account-holder-facing message distilled by and stored within Aria.  The value in "message_id" may be used as identifying inputs to various available Aria APIs to retrieve additional information the message (e.g. "message_id" can be passed into the "get_account_message" API to retrieve the full body text of the message created. -->
	<xs:element name="message">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="msg_id"/>
				<xs:element ref="msg_class"/>
				<xs:element ref="msg_class_label"/>
				<xs:element ref="msg_creation_date"/>
				<xs:element ref="msg_sent_date" minOccurs="0"/>
				<xs:element ref="msg_subject" minOccurs="0"/>
				<xs:element ref="msg_recipient_email_address" minOccurs="0"/>
				<xs:element ref="xml_statement_no" minOccurs="0"/>
				<xs:element ref="statement_no" minOccurs="0"/>
				<xs:element ref="invoice_no" minOccurs="0"/>
				<xs:element ref="sequential_statement_id" minOccurs="0"/>
				<xs:element ref="cm_no" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- Aria-assigned unique identifier for the message distilled by/stored in Aria -->
	<xs:element name="msg_id" type="xs:int"/>
	<!-- Identifies the type of message created, e.g. "I"="Statement/Invoice Message".  See "Account Message Types" legend in Aria API docs for all valid values -->
	<xs:element name="msg_class" type="xs:string"/>
	<!-- The label corresponding to the message class specified by value in "message_class" -->
	<xs:element name="msg_class_label" type="xs:string"/>
	<xs:element name="msg_creation_date" type="xs:string"/>
	<xs:element name="msg_sent_date" type="xs:string"/>
	<xs:element name="msg_subject" type="xs:string"/>
	<xs:element name="msg_recipient_email_address" type="xs:string"/>
	<xs:element name="xml_statement_no" type="xs:string"/>
	<xs:element name="statement_no" type="xs:long"/>
	<xs:element name="invoice_no" type="xs:long"/>
	<xs:element name="sequential_statement_id" type="xs:string"/>
	<xs:element name="cm_no" type="xs:long"/>
	<!-- If this is an event-triggered provisioning record, the event or events that triggered it -->
	<xs:element name="event_data">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="event" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="event">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="event_id"/>
				<xs:element ref="event_label"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="event_id" type="xs:int"/>
	<xs:element name="event_label" type="xs:string"/>
</xs:schema>
