<?xml
version = "1.0" encoding="US-ASCII" ?>
<!--
Revision: 101.pr1 (Public Reivew Draft
1)
Date: 1/22/2000
Interactive Financial Exchange DTD
Copyright 1999, 2000
-->
<!--
-->
<!-- Interactive Financial Exchange Macros -->
<!--
-->
<!ENTITY % IFXSVCRQS "BaseSvcRq*
, BankSvcRq*
, PaySvcRq*
,
PresSvcRq*">
<!ENTITY % IFXSVCRSS "BaseSvcRs*
, BankSvcRs*
, PaySvcRs*
, PresSvcRs*">
<!ENTITY
% ADDRESS " (Addr1
,
(Addr2
| (Addr2
, Addr3+ )
| (Addr2
,
Addr3
, Addr4+
) )?
,
City?
,
StateProv?
,
PostalCode?
,
Country? )">
<!ENTITY % CURRENCYAMOUNT " (Amt
, CurCode?
,
(CurRate
, CurConvertRule )? )">
<!ENTITY % MINMAXCURAMT
" (MinCurAmt?
, MaxCurAmt? )">
<!ENTITY
% LOWHIGHCURAMT " (LowCurAmt?
, HighCurAmt? )">
<!ENTITY
% DATERANGE " ( (StartDt
, EndDt? )
|
(StartDt?
, EndDt ) )">
<!-- -->
<!-- IFX top element -->
<!-- -->
<!ELEMENT
IFX ((SignonRq, %IFXSVCRQS;, SignoffRq?)
| (SignonRs,
%IFXSVCRSS;, SignoffRs?))>
<!-- -->
<!-- Type
Entities -->
<!--
-->
<!ENTITY % Long " (#PCDATA )">
<!--#ENTITY
% Long #DataType(I-10)-->
<!ENTITY
% Type_Long " dt:type NMTOKEN
#FIXED 'integer'">
<!-- XXX what is length 'n' used in
OFX style type DataType(I-n)???-->
<!ENTITY % Decimal "
(#PCDATA )">
<!--#ENTITY % Decimal #DataType(N-15)-->
<!ENTITY %
Type_Decimal " dt:type NMTOKEN
#FIXED 'decimal'">
<!-- XXX what is length 'n' used in
OFX style type DataType(N-n)???-->
<!ENTITY % Boolean "
(#PCDATA )">
<!--#ENTITY % Boolean #DataType(BOOL)-->
<!ENTITY %
Type_Boolean " dt:type NMTOKEN
#FIXED 'boolean'">
<!ENTITY % NC-3 " (#PCDATA
)">
<!--#ENTITY % NC-3 #DataType(B-3)-->
<!ENTITY % Type_NC-3 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '3'
dt:pattern
CDATA #FIXED
'[\000-\177]*'">
<!ENTITY % NC-6 " (#PCDATA
)">
<!--#ENTITY % NC-6 #DataType(B-6)-->
<!ENTITY % Type_NC-6 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '6'
dt:pattern
CDATA #FIXED
'[\000-\177]*'">
<!ENTITY % NC-8 " (#PCDATA
)">
<!--#ENTITY % NC-8 #DataType(B-8)-->
<!ENTITY % Type_NC-8 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '8'
dt:pattern
CDATA #FIXED
'[\000-\177]*'">
<!ENTITY % NC-9 " (#PCDATA
)">
<!--#ENTITY % NC-9 #DataType(B-9)-->
<!ENTITY % Type_NC-9 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '9'
dt:pattern
CDATA #FIXED
'[\000-\177]*'">
<!ENTITY % NC-11 " (#PCDATA
)">
<!--#ENTITY % NC-11 #DataType(B-11)-->
<!ENTITY % Type_NC-11 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '11'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-12 "
(#PCDATA )">
<!--#ENTITY % NC-12 #DataType(B-12)-->
<!ENTITY %
Type_NC-12 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '12'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-22 "
(#PCDATA )">
<!--#ENTITY % NC-22 #DataType(B-22)-->
<!ENTITY %
Type_NC-22 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '22'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-32 "
(#PCDATA )">
<!--#ENTITY % NC-32 #DataType(B-32)-->
<!ENTITY %
Type_NC-32 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '32'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-34 "
(#PCDATA )">
<!--#ENTITY % NC-34 #DataType(B-34)-->
<!ENTITY %
Type_NC-34 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '34'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-64 "
(#PCDATA )">
<!--#ENTITY % NC-64 #DataType(B-64)-->
<!ENTITY %
Type_NC-64 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '64'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-80 "
(#PCDATA )">
<!--#ENTITY % NC-80 #DataType(B-80)-->
<!ENTITY %
Type_NC-80 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '80'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-128 "
(#PCDATA )">
<!--#ENTITY % NC-128 #DataType(B-128)-->
<!ENTITY % Type_NC-128 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '128'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-180 "
(#PCDATA )">
<!--#ENTITY % NC-180 #DataType(B-180)-->
<!ENTITY %
Type_NC-180 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '180'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % NC-1024 "
(#PCDATA )">
<!--#ENTITY % NC-1024 #DataType(B-1024)-->
<!ENTITY
% Type_NC-1024 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '1024'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % C-8 " (#PCDATA
)">
<!--#ENTITY % C-8
#DataType(A-8)-->
<!ENTITY % Type_C-8 " dt:type NMTOKEN
#FIXED 'string'
dt:maxLength CDATA #FIXED '8'">
<!ENTITY % C-11 "
(#PCDATA )">
<!--#ENTITY % C-11 #DataType(A-11)-->
<!ENTITY % Type_C-11 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '11'">
<!ENTITY
% C-12 " (#PCDATA )">
<!--#ENTITY % C-12 #DataType(A-12)-->
<!ENTITY %
Type_C-12 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA
#FIXED '12'">
<!ENTITY % C-14 " (#PCDATA
)">
<!--#ENTITY % C-14 #DataType(A-14)-->
<!ENTITY % Type_C-14 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '14'">
<!ENTITY
% C-15 " (#PCDATA )">
<!--#ENTITY % C-15 #DataType(A-15)-->
<!ENTITY %
Type_C-15 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '15'">
<!ENTITY
% C-18 " (#PCDATA )">
<!--#ENTITY % C-18 #DataType(A-18)-->
<!ENTITY % Type_C-18
" dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '18'">
<!ENTITY
% C-20 " (#PCDATA )">
<!--#ENTITY % C-20 #DataType(A-20)-->
<!ENTITY %
Type_C-20 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA
#FIXED '20'">
<!ENTITY % C-32 " (#PCDATA
)">
<!--#ENTITY % C-32 #DataType(A-32)-->
<!ENTITY % Type_C-32 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '32'">
<!ENTITY
% C-40 " (#PCDATA )">
<!--#ENTITY % C-40 #DataType(A-40)-->
<!ENTITY %
Type_C-40 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '40'">
<!ENTITY
% C-64 " (#PCDATA )">
<!--#ENTITY % C-64 #DataType(A-64)-->
<!ENTITY %
Type_C-64 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '64'">
<!ENTITY
% C-80 " (#PCDATA )">
<!--#ENTITY % C-80 #DataType(A-80)-->
<!ENTITY %
Type_C-80 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA
#FIXED '80'">
<!ENTITY % C-96 " (#PCDATA
)">
<!--#ENTITY % C-96 #DataType(A-96)-->
<!ENTITY % Type_C-96 "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '96'">
<!ENTITY
% C-255 " (#PCDATA )">
<!--#ENTITY % C-255 #DataType(A-255)-->
<!ENTITY %
Type_C-255 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '255'">
<!ENTITY
% C-1024 " (#PCDATA )">
<!--#ENTITY % C-1024 #DataType(A-1024)-->
<!ENTITY
% Type_C-1024 " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '1024'">
<!ENTITY
% C-Infinite " (#PCDATA )">
<!--#ENTITY %
C-Infinite
#DataType(A-n)-->
<!ENTITY % Type_C-Infinite " dt:type
NMTOKEN #FIXED 'string'">
<!ENTITY
% UUID " (#PCDATA )">
<!--#ENTITY % UUID #DataType(B-36)-->
<!ENTITY %
Type_UUID " dt:type NMTOKEN #FIXED 'string'
dt:length CDATA
#FIXED '36'
dt:pattern CDATA #FIXED
'[0-9,a-f,A-F]{8}-[0-9,a-f,A-F]{4}-[0-9,a-f,A-F]{4}-[0-9,a-f,A-F]{4}-[0-9,a-f,A-F]{12}'">
<!ENTITY
% Identifier " (#PCDATA )">
<!--#ENTITY %
Identifier
#DataType(B-32)-->
<!ENTITY % Type_Identifier "
dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA
#FIXED '32'
dt:pattern CDATA #FIXED '[\000-\177]*'">
<!ENTITY
% OpenEnum " (#PCDATA )">
<!--#ENTITY %
OpenEnum #DataType(B-80)-->
<!ENTITY
% Type_OpenEnum " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '80'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % Time "
(#PCDATA )">
<!--#ENTITY % Time #DataType(TIME)-->
<!ENTITY % Type_Time "
dt:type NMTOKEN #FIXED 'time'">
<!ENTITY
% DateTime " (#PCDATA )">
<!--#ENTITY %
DateTime #DataType(DATE)-->
<!ENTITY
% Type_DateTime " dt:type NMTOKEN
#FIXED 'dateTime'">
<!ENTITY % Date "
(#PCDATA )">
<!--#ENTITY % Date #DataType(DATE)-->
<!ENTITY % Type_Date "
dt:type NMTOKEN #FIXED
'date'">
<!ENTITY % TimeStamp " (#PCDATA
)">
<!--#ENTITY % TimeStamp #DataType(TIME)-->
<!ENTITY % Type_TimeStamp "
dt:type NMTOKEN #FIXED
'timeStamp'">
<!ENTITY % Year " (#PCDATA
)">
<!--#ENTITY % Year #DataType(YEAR)-->
<!ENTITY % Type_Year "
dt:type NMTOKEN #FIXED
'year'">
<!ENTITY % PhoneNumber " (#PCDATA
)">
<!--#ENTITY % PhoneNumber #DataType(B-32)-->
<!ENTITY % Type_PhoneNumber
" dt:type NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '32'">
<!-- XXX
need to use a pattern to narrowly define phone number -->
<!ENTITY
% URL " (#PCDATA )">
<!--#ENTITY % URL #DataType(B-1024)-->
<!ENTITY
% Type_URL " dt:type
NMTOKEN #FIXED 'string'
dt:maxLength CDATA #FIXED '1024'
dt:pattern CDATA
#FIXED '[\000-\177]*'">
<!ENTITY % Binary-128
" (#PCDATA )">
<!--#ENTITY % Binary-128 #DataType(BASE64)-->
<!ENTITY
% Type_Binary-128 " dt:type
NMTOKEN #FIXED 'binary'
dt:maxLength CDATA #FIXED '128'
dt:encoding CDATA
#FIXED 'base64'">
<!ENTITY % Binary "
(#PCDATA )">
<!--#ENTITY % Binary #DataType(Base64)-->
<!ENTITY
% Type_Binary " dt:type
NMTOKEN #FIXED 'binary'
dt:encoding CDATA
#FIXED 'base64'">
<!-- -->
<!-- Common Elements
and Aggregates -->
<!-- -->
<!-- Amt Decimal
-->
<!ELEMENT Amt %Decimal;>
<!ATTLIST Amt %Type_Decimal; >
<!-- CurRate Decimal
-->
<!ELEMENT CurRate %Decimal;>
<!ATTLIST CurRate %Type_Decimal; >
<!--
CurConvertRule Closed Enum -->
<!ELEMENT CurConvertRule (#PCDATA )>
<!ATTLIST
CurConvertRule dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'Direct Indirect' >
<!--#ENTITY
% CurConvertRule
#Enum("Direct", "Indirect")-->
<!--
AcctMask NC-32 -->
<!ELEMENT AcctMask %NC-32;>
<!ATTLIST
AcctMask %Type_NC-32; >
<!--
SecretMask NC-80 -->
<!ELEMENT SecretMask %NC-80;>
<!ATTLIST
SecretMask %Type_NC-80; >
<!--
CustLoginId Identifier -->
<!ELEMENT CustLoginId
%Identifier;>
<!ATTLIST CustLoginId
%Type_Identifier; >
<!-- CustPermId Identifier -->
<!ELEMENT
CustPermId %Identifier;>
<!ATTLIST CustPermId %Type_Identifier; >
<!-- RqUID UUID
-->
<!ELEMENT RqUID %UUID;>
<!ATTLIST RqUID %Type_UUID; >
<!-- CSPRefId
Identifier -->
<!ELEMENT CSPRefId %Identifier;>
<!ATTLIST
CSPRefId %Type_Identifier; >
<!--
SPRefId Identifier -->
<!ELEMENT SPRefId %Identifier;>
<!ATTLIST
SPRefId %Type_Identifier; >
<!--
SPName Identifier -->
<!ELEMENT SPName %Identifier;>
<!ATTLIST
SPName %Type_Identifier; >
<!--
Org Identifier -->
<!ELEMENT Org %Identifier;>
<!ATTLIST
Org %Type_Identifier; >
<!--
Token Identifier -->
<!ELEMENT Token %Identifier;>
<!ATTLIST
Token %Type_Identifier; >
<!--
CustId aggregate -->
<!ELEMENT CustId (SPName , (CustPermId |
CustLoginId | (CustPermId , CustLoginId
) ) )>
<!-- CustName aggregate -->
<!ELEMENT
CustName (LastName+ , FirstName ,
MiddleName* , TitlePrefix? , NameSuffix? , Nickname? , LegalName? )>
<!--
LastName C-40 -->
<!ELEMENT LastName %C-40;>
<!ATTLIST
LastName %Type_C-40; >
<!--
FirstName C-40 -->
<!ELEMENT FirstName %C-40;>
<!ATTLIST
FirstName %Type_C-40; >
<!--
MiddleName C-40 -->
<!ELEMENT MiddleName %C-40;>
<!ATTLIST
MiddleName %Type_C-40; >
<!--
TitlePrefix C-8 -->
<!ELEMENT TitlePrefix %C-8;>
<!ATTLIST
TitlePrefix %Type_C-8; >
<!--
NameSuffix C-40 -->
<!ELEMENT NameSuffix %C-40;>
<!ATTLIST
NameSuffix %Type_C-40; >
<!--
Nickname C-40 -->
<!ELEMENT Nickname %C-40;>
<!ATTLIST
Nickname %Type_C-40; >
<!--
LegalName C-96 -->
<!ELEMENT LegalName %C-96;>
<!ATTLIST
LegalName %Type_C-96; >
<!--
CustContact aggregate -->
<!ELEMENT CustContact (CustContactPref? , PrefTimeStart? ,
PrefTimeEnd? , DayPhone? , EvePhone? , DayFax? , EveFax? , EmailAddr?
)>
<!-- CustContactPref Open Enum -->
<!ELEMENT
CustContactPref %OpenEnum;>
<!ATTLIST CustContactPref %Type_OpenEnum; >
<!--
PrefTimeStart Time -->
<!ELEMENT PrefTimeStart %Time;>
<!ATTLIST
PrefTimeStart %Type_Time; >
<!--
PrefTimeEnd Time -->
<!ELEMENT PrefTimeEnd %Time;>
<!ATTLIST
PrefTimeEnd %Type_Time; >
<!--
DayPhone Phone Number -->
<!ELEMENT DayPhone %PhoneNumber;>
<!ATTLIST
DayPhone %Type_PhoneNumber; >
<!--
EvePhone Phone Number -->
<!ELEMENT EvePhone %PhoneNumber;>
<!ATTLIST
EvePhone %Type_PhoneNumber; >
<!--
DayFax Phone Number -->
<!ELEMENT DayFax %PhoneNumber;>
<!ATTLIST
DayFax %Type_PhoneNumber; >
<!--
EveFax Phone Number -->
<!ELEMENT EveFax %PhoneNumber;>
<!ATTLIST
EveFax %Type_PhoneNumber; >
<!--
EmailAddr NC-128 -->
<!ELEMENT EmailAddr %NC-128;>
<!ATTLIST
EmailAddr %Type_NC-128; >
<!--
PostAddr aggregate -->
<!ELEMENT PostAddr %ADDRESS;>
<!--
Addr1 C-64 -->
<!ELEMENT Addr1 %C-64;>
<!ATTLIST
Addr1 %Type_C-64; >
<!--
Addr2 C-64 -->
<!ELEMENT Addr2 %C-64;>
<!ATTLIST
Addr2 %Type_C-64; >
<!--
Addr3 C-64 -->
<!ELEMENT Addr3 %C-64;>
<!ATTLIST
Addr3 %Type_C-64; >
<!--
Addr4 C-64 -->
<!ELEMENT Addr4 %C-64;>
<!ATTLIST
Addr4 %Type_C-64; >
<!--
City C-32 -->
<!ELEMENT City %C-32;>
<!ATTLIST City %Type_C-32; >
<!-- StateProv C-32
-->
<!ELEMENT StateProv %C-32;>
<!ATTLIST StateProv %Type_C-32; >
<!-- PostalCode
C-11 -->
<!ELEMENT PostalCode %C-11;>
<!ATTLIST
PostalCode %Type_C-11; >
<!--
Country NC-3 -->
<!ELEMENT Country %NC-3;>
<!ATTLIST
Country %Type_NC-3; >
<!--
CustNameAddr aggregate -->
<!ELEMENT CustNameAddr (NameAddrType , (FullName | CustName ) , PostAddr , CustContact? )>
<!--
NameAddrType Open Enum -->
<!ELEMENT NameAddrType
%OpenEnum;>
<!ATTLIST NameAddrType
%Type_OpenEnum; >
<!-- FullName C-96 -->
<!ELEMENT
FullName %C-96;>
<!ATTLIST FullName
%Type_C-96; >
<!-- OrgContact aggregate -->
<!ELEMENT
OrgContact (ContactType , Desc? ,
Phone? , Fax? , EmailAddr? , URL? )>
<!-- ContactType Open
Enum-->
<!ELEMENT ContactType %OpenEnum;>
<!ATTLIST
ContactType %Type_OpenEnum; >
<!--
Desc C-80 -->
<!ELEMENT Desc %C-80;>
<!ATTLIST Desc %Type_C-80; >
<!-- Phone Phone
Number -->
<!ELEMENT Phone %PhoneNumber;>
<!ATTLIST
Phone %Type_PhoneNumber; >
<!--
Fax Phone Number -->
<!ELEMENT Fax %PhoneNumber;>
<!ATTLIST
Fax %Type_PhoneNumber; >
<!--
URL URL -->
<!ELEMENT URL %URL;>
<!ATTLIST URL %Type_URL; >
<!-- BillerContact
aggregate -->
<!ELEMENT BillerContact (LegalName? , Name? , PostAddr? , BillRetAddr? , RemitName? ,
RemitAddr? , OrgContact* )>
<!-- Name C-40 -->
<!ELEMENT
Name %C-40;>
<!ATTLIST Name
%Type_C-40; >
<!-- BillRetAddr aggregate -->
<!ELEMENT
BillRetAddr %ADDRESS;>
<!-- RemitName C-40 -->
<!ELEMENT
RemitName %C-40;>
<!ATTLIST RemitName %Type_C-40; >
<!-- RemitAddr aggregate -->
<!ELEMENT
RemitAddr %ADDRESS;>
<!-- BillerPayInfo aggregate -->
<!ELEMENT
BillerPayInfo (PmtInst* , DaysToEPost?
, PrenoteReqd? )>
<!-- DaysToEPost Long -->
<!ELEMENT
DaysToEPost %Long;>
<!ATTLIST DaysToEPost %Type_Long; >
<!-- PrenoteReqd Boolean -->
<!ELEMENT
PrenoteReqd %Boolean;>
<!ATTLIST PrenoteReqd %Type_Boolean; >
<!-- DepAcctId,
DepAcctIdFrom, DepAcctIdTo aggregate -->
<!-- XXX Added
DepAcctIdFromProf and DepAcctIdToProf for PaySvcProInfo -->
<!-- bug in PR draft -->
<!ENTITY %
DEPACCTID " (BankId?
, BranchId?
, AcctId
, AcctType
, AcctKey?
, BankInfo? )">
<!ELEMENT
DepAcctId %DEPACCTID;>
<!ELEMENT DepAcctIdFrom
%DEPACCTID;>
<!ELEMENT DepAcctIdTo %DEPACCTID;>
<!ELEMENT
DepAcctIdFromProf %DEPACCTID;>
<!ELEMENT DepAcctIdToProf
%DEPACCTID;>
<!-- BankId NC-34 -->
<!ELEMENT BankId
%NC-34;>
<!ATTLIST BankId
%Type_NC-34; >
<!-- BranchId NC-22 -->
<!ELEMENT
BranchId %NC-22;>
<!ATTLIST BranchId %Type_NC-22; >
<!-- AcctId NC-32 -->
<!ELEMENT
AcctId %NC-32;>
<!ATTLIST AcctId
%Type_NC-32; >
<!-- AcctType Open Enum -->
<!ELEMENT
AcctType %OpenEnum;>
<!ATTLIST AcctType %Type_OpenEnum; >
<!-- AcctKey NC-22 -->
<!ELEMENT
AcctKey %NC-22;>
<!ATTLIST AcctKey
%Type_NC-22; >
<!-- BankInfo aggregate -->
<!ELEMENT
BankInfo (Name? , BranchName? , (PostAddr |
(City? , StateProv? , PostalCode? ) ) )>
<!--
BranchName C-40 -->
<!ELEMENT BranchName %C-40;>
<!ATTLIST
BranchName %Type_C-40; >
<!--
CardAcctId, CardAcctIdFrom, CardAcctIdTo aggregate -->
<!ENTITY %
CARDACCTID " ( (AcctId
| CardMagData )
, AcctType
, CCMotoAcct?
)">
<!ELEMENT CardAcctId %CARDACCTID;>
<!ELEMENT
CardAcctIdFrom %CARDACCTID;>
<!ELEMENT CardAcctIdTo
%CARDACCTID;>
<!-- CardMagData aggregate -->
<!ELEMENT
CardMagData ( (MagData1 , MagData2? ,
MagData3? ) | (MagData1? , MagData2 ,
MagData3? ) | (MagData1? , MagData2? ,
MagData3 ) )>
<!-- MagData1 NC-180 -->
<!ELEMENT
MagData1 %NC-180;>
<!ATTLIST MagData1 %Type_NC-180; >
<!-- MagData2 NC-180 -->
<!ELEMENT
MagData2 %NC-180;>
<!ATTLIST MagData2 %Type_NC-180; >
<!-- MagData3 NC-180 -->
<!ELEMENT
MagData3 %NC-180;>
<!ATTLIST MagData3 %Type_NC-180; >
<!-- CCMotoAcct aggregate -->
<!ELEMENT
CCMotoAcct (ExpDt , Name? , (PostAddr | PostalCode )? , Phone? , Brand?
)>
<!-- TODO - ExpDt (Date) conflicts with other definitions
(DateTime) -->
<!-- LoanAcctId, LoanAcctIdFrom, LoanAcctIdTo
aggregate -->
<!ENTITY % LOANACCTID " (AcctId
, AcctType
)">
<!ELEMENT LoanAcctId %LOANACCTID;>
<!ELEMENT
LoanAcctIdFrom %LOANACCTID;>
<!ELEMENT LoanAcctIdTo
%LOANACCTID;>
<!-- BankAcctRec aggregate -->
<!ELEMENT
BankAcctRec ( (DepAcctId | CardAcctId |
LoanAcctId ) , BankAcctInfo , BankAcctStatus , AcctTaxType? , XferFromSupt? ,
XferToSupt? , PaySupt? , AcctBal* )>
<!-- BankAcctInfo
aggregate -->
<!ELEMENT BankAcctInfo (CurCode , Desc? , CustName? , OrgContact? , CustAcctUse? ,
PrimaryAcct? , Term? )>
<!-- CurCode NC-3 -->
<!ELEMENT
CurCode %NC-3;>
<!ATTLIST CurCode
%Type_NC-3; >
<!-- CustAcctUse Open Enum -->
<!ELEMENT
CustAcctUse %OpenEnum;>
<!ATTLIST CustAcctUse %Type_OpenEnum; >
<!--
PrimaryAcct Boolean -->
<!ELEMENT PrimaryAcct %Boolean;>
<!ATTLIST
PrimaryAcct %Type_Boolean; >
<!--
BankAcctStatus Closed Enum -->
<!ELEMENT BankAcctStatus (BankAcctStatusCode , StatusDesc? , EffDt? ,
StatusModBy? )>
<!--#ENTITY % BankAcctStatus
#Enum("Open", "Closed", "Inactive",
"NotAvail")-->
<!-- StatusDesc C-255 -->
<!ELEMENT
StatusDesc %C-255;>
<!ATTLIST StatusDesc %Type_C-255; >
<!-- AcctTaxStatus Open Enum
-->
<!ELEMENT AcctTaxType %OpenEnum;>
<!ATTLIST
AcctTaxType %Type_OpenEnum; >
<!--
XferFromSupt, XferToSupt, PaySupt aggregate -->
<!ELEMENT
XferFromSupt %MINMAXCURAMT;>
<!ELEMENT XferToSupt
%MINMAXCURAMT;>
<!ELEMENT PaySupt %MINMAXCURAMT;>
<!--
MinCurAmt Currency Amount -->
<!ELEMENT MinCurAmt
%CURRENCYAMOUNT;>
<!-- MaxCurAmt Currency Amount -->
<!ELEMENT
MaxCurAmt %CURRENCYAMOUNT;>
<!-- AcctBal aggregate -->
<!ELEMENT
AcctBal (BalType , CurAmt , EffDt? ,
ExpDt? , Desc? )>
<!-- BalType Open Enum -->
<!ELEMENT
BalType %OpenEnum;>
<!ATTLIST BalType %Type_OpenEnum; >
<!-- CurAmt Currency Amount
-->
<!ELEMENT CurAmt %CURRENCYAMOUNT;>
<!-- EffDt
DateTime -->
<!ELEMENT EffDt %DateTime;>
<!ATTLIST
EffDt %Type_DateTime; >
<!--
ExpDt DateTime -->
<!ELEMENT ExpDt %DateTime;>
<!ATTLIST
ExpDt %Type_DateTime; >
<!--
ExtAcctBal aggregate -->
<!ELEMENT ExtAcctBal (ExtBalType , CurAmt , EffDt , ExpDt? ,
Desc? )>
<!-- ExtBalType Open Enum -->
<!ELEMENT
ExtBalType %OpenEnum;>
<!ATTLIST ExtBalType %Type_OpenEnum; >
<!-- Term
aggregate -->
<!ELEMENT Term
(Count , TermUnits , Desc? , DaysCall? )>
<!-- Count
Long -->
<!ELEMENT Count %Long;>
<!ATTLIST Count %Type_Long; >
<!-- TermUnits
Closed Enum -->
<!ELEMENT TermUnits
(#PCDATA )>
<!ATTLIST TermUnits dt:type
NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
TermUnits #Enum("TODO", "")-->
<!-- DaysCall
Long -->
<!ELEMENT DaysCall %Long;>
<!ATTLIST
DaysCall %Type_Long; >
<!--
SelRangeDt, SelRangeDueDt, SelRangePrcDt aggregate -->
<!ELEMENT
SelRangeDt %DATERANGE;>
<!ELEMENT SelRangeDueDt
%DATERANGE;>
<!ELEMENT SelRangePrcDt %DATERANGE;>
<!--
SelRangeCurAmt aggregate -->
<!ELEMENT SelRangeCurAmt
%LOWHIGHCURAMT;>
<!-- LowCurAmt Currency Amount -->
<!ELEMENT
LowCurAmt %CURRENCYAMOUNT;>
<!-- HighCurAmt Current Amount
-->
<!ELEMENT HighCurAmt %CURRENCYAMOUNT;>
<!--
RecModelInfo aggregate -->
<!ELEMENT RecModelInfo (Freq ,
(NumInsts | FinalPrcDt | FinalDueDt )? , InitialCurAmt? , FinalCurAmt? ,
Nickname? , SkipNextN? )>
<!-- Freq Open Enum -->
<!ELEMENT
Freq %OpenEnum;>
<!ATTLIST Freq
%Type_OpenEnum; >
<!-- NumInsts Long -->
<!ELEMENT
NumInsts %Long;>
<!ATTLIST NumInsts
%Type_Long; >
<!-- FinalPrcDt Date -->
<!ELEMENT
FinalPrcDt %Date;>
<!ATTLIST FinalPrcDt %Type_Date; >
<!-- FinalDueDt Date -->
<!ELEMENT
FinalDueDt %Date;>
<!ATTLIST FinalDueDt %Type_Date; >
<!-- InitialCurAmt Currency Amount
-->
<!ELEMENT InitialCurAmt %CURRENCYAMOUNT;>
<!--
FinalCurAmt Currency Amount -->
<!ELEMENT FinalCurAmt
%CURRENCYAMOUNT;>
<!-- SkipNextN Long -->
<!ELEMENT
SkipNextN %Long;>
<!ATTLIST SkipNextN %Type_Long; >
<!-- Status aggregate -->
<!ELEMENT
Status (StatusCode , SrvrStatusCode? ,
Severity , StatusDesc? )>
<!-- StatusCode Long -->
<!ELEMENT
StatusCode %Long;>
<!ATTLIST StatusCode %Type_Long; >
<!-- SrvrStatusCode C-20 -->
<!ELEMENT
SrvrStatusCode %C-20;>
<!ATTLIST SrvrStatusCode %Type_C-20; >
<!-- Severity
Closed Enum -->
<!ELEMENT Severity
(#PCDATA )>
<!ATTLIST Severity dt:type
NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TODO - Appendix A' >
<!--#ENTITY
% Severity #Enum("TODO", "")-->
<!-- RecCtrlIn
aggregate -->
<!ELEMENT RecCtrlIn
(MaxRec , Cursor? )>
<!-- MaxRec Long -->
<!ELEMENT
MaxRec %Long;>
<!ATTLIST MaxRec
%Type_Long; >
<!-- Cursor Binary -->
<!ELEMENT
Cursor %Binary;>
<!ATTLIST Cursor
%Type_Binary; >
<!-- RecCtrlOut aggregate -->
<!ELEMENT
RecCtrlOut (MatchedRec , SentRec ,
Cursor? )>
<!-- MatchedRec Long -->
<!ELEMENT
MatchedRec %Long;>
<!ATTLIST MatchedRec %Type_Long; >
<!-- SentRec Long -->
<!ELEMENT
SentRec %Long;>
<!ATTLIST SentRec
%Type_Long; >
<!-- ClientApp aggregate -->
<!ELEMENT
ClientApp (Org , Name , Version
)>
<!-- Version NC-12 -->
<!ELEMENT Version
%NC-12;>
<!ATTLIST Version
%Type_NC-12; >
<!-- IndustId aggregate -->
<!ELEMENT
IndustId (Org , IndustNum )>
<!--
IndustNum NC-6 -->
<!ELEMENT IndustNum %NC-6;>
<!ATTLIST
IndustNum %Type_NC-6; >
<!--
SecretPrompt aggregate -->
<!ELEMENT SecretPrompt (SecretId , Prompt , Memo? , SecretOptional?
, SecretFormat? , SecretMask? )>
<!-- SecretId Identifier
-->
<!ELEMENT SecretId %Identifier;>
<!ATTLIST
SecretId %Type_Identifier; >
<!--
Prompt C-20 -->
<!ELEMENT Prompt %C-20;>
<!ATTLIST
Prompt %Type_C-20; >
<!--
Memo C-255 -->
<!ELEMENT Memo %C-255;>
<!ATTLIST
Memo %Type_C-255; >
<!--
SecretOptional Boolean -->
<!ELEMENT SecretOptional
%Boolean;>
<!ATTLIST SecretOptional
%Type_Boolean; >
<!-- SecretFormat NC-1024 -->
<!ELEMENT
SecretFormat %NC-1024;>
<!ATTLIST SecretFormat %Type_NC-1024; >
<!-- SecretList
aggregate -->
<!ELEMENT SecretList
(SecretId , CryptType , (Secret
| CryptSecret ) )>
<!-- Secret C-80 -->
<!ELEMENT
Secret %C-80;>
<!ATTLIST Secret
%Type_C-80; >
<!-- CryptSecret Binary-128 -->
<!ELEMENT
CryptSecret %Binary-128;>
<!ATTLIST CryptSecret %Type_Binary-128; >
<!-- PmtInst
aggregate -->
<!ELEMENT PmtInst
(PmtInstType , Brand? , SettlementInfo* )>
<!--
PmtInstType Closed Enum -->
<!ELEMENT PmtInstType (#PCDATA )>
<!ATTLIST
PmtInstType dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
PmtInstType #Enum("TODO",
"TODO")-->
<!-- Brand Open Enum -->
<!ELEMENT
Brand %OpenEnum;>
<!ATTLIST Brand
%Type_OpenEnum; >
<!-- SettlementInfo aggregate -->
<!ELEMENT
SettlementInfo (SettlementMethod , ( (DepAcctId , SettlementId? , OrgContact? ,
Memo? ) | (DepAcctId? , SettlementId ,
OrgContact? , Memo? ) | (DepAcctId? , SettlementId?
, OrgContact , Memo? ) | (DepAcctId? ,
SettlementId? , OrgContact? , Memo ) ) )>
<!--
SettlementMethod OpenEnum -->
<!ELEMENT SettlementMethod
%OpenEnum;>
<!ATTLIST SettlementMethod %Type_OpenEnum; >
<!-- SettlementId C-20 -->
<!ELEMENT
SettlementId %C-20;>
<!ATTLIST SettlementId %Type_C-20; >
<!-- CustPswd
aggregate -->
<!ELEMENT CustPswd
(CryptType , (Pswd | CryptPswd
)? )>
<!-- CryptType Open Enum -->
<!ELEMENT
CryptType %OpenEnum;>
<!ATTLIST CryptType %Type_OpenEnum; >
<!-- Pswd C-32 -->
<!ELEMENT
Pswd %C-32;>
<!ATTLIST Pswd
%Type_C-32; >
<!-- CryptPswd Binary-128 -->
<!ELEMENT
CryptPswd %Binary-128;>
<!ATTLIST CryptPswd %Type_Binary-128; >
<!--
SignonRole Open Enum -->
<!ELEMENT SignonRole %OpenEnum;>
<!ATTLIST
SignonRole %Type_OpenEnum; >
<!--
GenSessKey Boolean -->
<!ELEMENT GenSessKey %Boolean;>
<!ATTLIST
GenSessKey %Type_Boolean; >
<!--
Certificate Binary -->
<!ELEMENT Certificate %Binary;>
<!ATTLIST
Certificate %Type_Binary; >
<!--
PINBlock NC-32 -->
<!ELEMENT PINBlock %NC-32;>
<!ATTLIST
PINBlock %Type_NC-32; >
<!--
Signon Request -->
<!ELEMENT SignonRq ( (SignonPswd | SignonCert | SignonTransport | SignonMagPIN |
SessKey )? , ClientDt , CustLangPref , ClientApp , ProxyClient? , EU.Cur?
)>
<!-- SignonPswd Aggregate -->
<!ELEMENT
SignonPswd (SignonRole? , CustId ,
CustPswd , GenSessKey? )>
<!-- SignonCert Aggregate
-->
<!ELEMENT SignonCert
(SignonRole? , CustId , Certificate , GenSessKey? )>
<!--
SignonTransport Aggregate -->
<!ELEMENT SignonTransport (SignonRole? , CustId , GenSessKey?
)>
<!-- SignonMagPIN Aggregate -->
<!ELEMENT
SignonMagPIN (CardMagData , PINBlock ,
GenSessKey? )>
<!-- ClientDt DateTime -->
<!ELEMENT
ClientDt %DateTime;>
<!ATTLIST ClientDt %Type_DateTime; >
<!-- CustLangPref NC-6 -->
<!ELEMENT
CustLangPref %NC-6;>
<!ATTLIST CustLangPref %Type_NC-6; >
<!-- ProxyClient
aggregate -->
<!ELEMENT ProxyClient
(Org , Name , Version )>
<!-- EU.Cur Closed Enum
-->
<!ELEMENT EU.Cur
(#PCDATA )>
<!ATTLIST EU.Cur
dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY % EU.Cur #Enum("TODO",
"TODO")-->
<!-- Signon Response -->
<!ELEMENT
SignonRs (Status , ( (SignonRole? , CustId? , GenSessKey? ,
ClientDt , CustLangPref , ClientApp , ProxyClient? , EU.Cur? , ServerDt ,
SessKey? , ExpDt? , Language ) | CustId? ) )>
<!-- ServerDt
DateTime -->
<!ELEMENT ServerDt %DateTime;>
<!ATTLIST
ServerDt %Type_DateTime; >
<!--
SessKey NC-64 -->
<!ELEMENT SessKey %NC-64;>
<!ATTLIST
SessKey %Type_NC-64; >
<!--
Language NC-11 -->
<!ELEMENT Language %NC-11;>
<!ATTLIST
Language %Type_NC-11; >
<!--
Signoff Request -->
<!ELEMENT SignoffRq (CustId? )>
<!-- Signoff Response -->
<!ELEMENT
SignoffRs (Status , CustId? )>
<!-- -->
<!--
Base Service Messages (Base) -->
<!-- -->
<!ELEMENT
BaseSvcRq (SPName? , RqUID ,
(SvcProfInqRq | HolInqRq |
CustAddRq | CustModRq | CustPswdModRq |
CustStatusModRq | CustDelRq |
CustInqRq | CustIdInqRq | CustAudRq |
CustSyncRq | SvcAcctSyncRq |
CustSvcAddRq | CustSvcModRq | CustSvcAudRq |
CustSvcSyncRq |
CustSvcStatusModRq | CustSvcDelRq | SvcAcctAddRq |
SvcAcctModRq |
SvcAcctDelRq | SvcAcctInqRq | SvcAcctAudRq | SvcAcctSyncRq
|
CustDiscStatusModRq | CustDiscInqRq)* )>
<!ELEMENT BaseSvcRs (Status , SPName? , RqUID , (SvcProfInqRs
|
HolInqRs | CustAddRs | CustModRs | CustPswdModRs | CustStatusModRs
|
CustDelRs | CustInqRs | CustIdInqRs | CustAudRs | CustSyncRq |
SvcAcctSyncRs
| CustSvcAddRs | CustSvcModRs | CustSvcAudRs |
CustSvcSyncRs |
CustSvcStatusModRs | CustSvcDelRs | SvcAcctAddRs |
SvcAcctModRs |
SvcAcctDelRs | SvcAcctInqRs | SvcAcctAudRs |
SvcAcctSyncRs |
CustDiscStatusModRs | CustDiscInqRs)*)>
<!-- MsgSupt Open Enum
-->
<!ELEMENT MsgSupt %OpenEnum;>
<!ATTLIST MsgSupt %Type_OpenEnum; >
<!-- OptSupt
Open Enum -->
<!ELEMENT OptSupt %OpenEnum;>
<!ATTLIST
OptSupt %Type_OpenEnum; >
<!--
SvcCore aggregate -->
<!ELEMENT SvcCore (Version , SPName , LegalName , Nickname? , HoldCold? , USA.RTN?
, OrgContact+ , Language+ , URL? )>
<!-- HoldCold Identifier
-->
<!ELEMENT HoldCold %Identifier;>
<!ATTLIST
HoldCold %Type_Identifier; >
<!--
USA.RTN NC-9 -->
<!ELEMENT USA.RTN %NC-9;>
<!ATTLIST
USA.RTN %Type_NC-9; >
<!--
PrcSched aggregate -->
<!ELEMENT PrcSched (PrcDaysOff* , CutoffTm , PrcDtAdj )>
<!--
PrcDaysOff Closed Enum -->
<!ELEMENT PrcDaysOff (#PCDATA )>
<!ATTLIST
PrcDaysOff dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'Monday Tuesday Wednesday Thursday
Friday Saturday Sunday Holiday' >
<!--#ENTITY % PrcDaysOff #Enum("Monday",
"Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday",
"Holiday")-->
<!-- CutoffTm Time -->
<!ELEMENT
CutoffTm %Time;>
<!ATTLIST CutoffTm
%Type_Time; >
<!-- PrcDtAdj Open Enum -->
<!ELEMENT
PrcDtAdj %OpenEnum;>
<!ATTLIST PrcDtAdj %Type_OpenEnum; >
<!-- CustInfo aggregate -->
<!ELEMENT
CustInfo (CustName , PostAddr? ,
CustContact? , TaxId? , CustType? )>
<!-- TaxId NC-12
-->
<!ELEMENT TaxId %NC-12;>
<!ATTLIST TaxId %Type_NC-12; >
<!-- CustType Open
Enum -->
<!ELEMENT CustType %OpenEnum;>
<!ATTLIST
CustType %Type_OpenEnum; >
<!--
CustDiscRec aggregate -->
<!ELEMENT CustDiscRec (CustId , DiscId , DiscInfo , CustDiscStatus
)>
<!-- DiscId UUID -->
<!ELEMENT DiscId
%UUID;>
<!ATTLIST DiscId %Type_UUID;
>
<!-- DiscInfo aggregate -->
<!ELEMENT DiscInfo ( (LongText | DiscURL ) , AcceptReqd?
)>
<!-- LongText C-Infinite -->
<!ELEMENT LongText
%C-Infinite;>
<!ATTLIST LongText
%Type_C-Infinite; >
<!-- DiscURL URL -->
<!ELEMENT
DiscURL %URL;>
<!ATTLIST DiscURL
%Type_URL; >
<!-- AcceptReqd Boolean -->
<!ELEMENT
AcceptReqd %Boolean;>
<!ATTLIST AcceptReqd %Type_Boolean; >
<!-- CustDiscStatus -->
<!ELEMENT
CustDiscStatus (CustDiscStatusCode ,
StatusDesc? , EffDt? , StatusModBy? )>
<!-- CustDiscStatusCode
Closed Enum -->
<!ELEMENT CustDiscStatusCode (#PCDATA )>
<!ATTLIST
CustDiscStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'None Accepted Rejected Viewed'
>
<!--#ENTITY % CustDiscStatusCode #Enum("None",
"Accepted", "Rejected", "Viewed")-->
<!--
StatusModBy Open Enum -->
<!ELEMENT StatusModBy %OpenEnum;>
<!ATTLIST
StatusModBy %Type_OpenEnum; >
<!--
SvcProfInq Request -->
<!ELEMENT SvcProfInqRq (UpDt? )>
<!-- UpDt
TimeStamp -->
<!ELEMENT UpDt %DateTime;>
<!ATTLIST
UpDt %Type_DateTime; >
<!--
SvcProfInq Response -->
<!ELEMENT SvcProfInqRs (Status , UpDt? , xxxSvcProfInfo*
)>
<!-- xxxSvcProfInfo Aggregate -->
<!ELEMENT
xxxSvcProfInfo (BaseSvcProfInfo |
BankSvcProfInfo | PaySvcProfInfo | PresSvcProfInfo )>
<!--
HolInq Request -->
<!ELEMENT HolInqRq (SPName? , SvcName? )>
<!-- SvcName Open Enum
-->
<!ELEMENT SvcName %OpenEnum;>
<!ATTLIST SvcName %Type_OpenEnum; >
<!-- HolInq
Response -->
<!ELEMENT HolInqRs
(Status , SPName? , SvcName? , HolInfo* )>
<!-- HolInfo
aggregate -->
<!ELEMENT HolInfo
(Name , HolDt )>
<!-- HolDt Date -->
<!ELEMENT
HolDt %Date;>
<!ATTLIST HolDt
%Type_Date; >
<!-- CustAdd Request -->
<!ELEMENT
CustAddRq (RqUID , CustInfo? ,
SecretList* , CryptType , CustId? , AuthInfo? )>
<!-- AuthInfo
Aggregate -->
<!ELEMENT AuthInfo
(CustPswd? )>
<!-- CustAdd Response -->
<!ELEMENT
CustAddRs (Status , RqUID , ( (CustInfo? , CustId? , CustRec ,
PswdDelivery? , SPRefId? ) | CustId? ) )>
<!ELEMENT
CustRec (CustId , CustInfo? ,
CustStatus , UpDt? )>
<!-- CustStatus aggregate -->
<!ELEMENT
CustStatus (CustStatusCode ,
StatusDesc? , EffDt? , StatusModBy? , ResolvePendingDt? )>
<!--
CustStatusCode Open Enum -->
<!ELEMENT CustStatusCode
%OpenEnum;>
<!ATTLIST CustStatusCode %Type_OpenEnum; >
<!-- ResolvePendingDt Date
-->
<!ELEMENT ResolvePendingDt %Date;>
<!ATTLIST
ResolvePendingDt %Type_Date; >
<!ELEMENT
PswdDelivery (CustPswd , ExpDt
)>
<!-- CustMod Request -->
<!ELEMENT
CustModRq (RqUID , CustId? , CustInfo
)>
<!-- CustMod Response -->
<!ELEMENT
CustModRs (Status , RqUID , CustId?
, (CustInfo , CustRec? , SPRefId? )?
)>
<!-- CustPswdMod Request -->
<!ELEMENT
CustPswdModRq (RqUID , CustId? ,
CustPswd )>
<!-- CustPswdMod Response -->
<!ELEMENT
CustPswdModRs (Status , RqUID , CustId?
, (ExpDt? , SPRefId? )? )>
<!--
CustStatusModRq Request -->
<!ELEMENT CustStatusModRq (RqUID , CustId? , CustStatus )>
<!--
CustStatusModRs Response -->
<!ELEMENT CustStatusModRs (Status , RqUID , CustId? , (CustStatus , CustRec )? )>
<!--
CustDel Request -->
<!ELEMENT CustDelRq (RqUID , CustId? , CascadeDel? )>
<!-- CustDel
Response -->
<!ELEMENT CustDelRs
(Status , RqUID , CustId? ,
(CascadeDel? , (CustRec | (DependentType* ) ) , SPRefId? )?
)>
<!-- CustInq Request -->
<!ELEMENT
CustInqRq (RqUID , CustId* , UpDt? ,
IncToken? )>
<!-- IncToken Boolean -->
<!ELEMENT
IncToken %Boolean;>
<!ATTLIST IncToken %Type_Boolean; >
<!-- CustInq Response -->
<!ELEMENT
CustInqRs (Status , RqUID , CustId*
, (UpDt? , IncToken? , CustRec* ,
Token? )? )>
<!-- CustIdInq Request -->
<!ELEMENT
CustIdInqRq (RqUID , (CustPermId | CustLoginId | (CustPermId , CustLoginId ) ) )>
<!--
CustIdInq Response -->
<!ELEMENT CustIdInqRs (Status , RqUID , CustId )>
<!--
CustAud Request -->
<!ELEMENT CustAudRq (SPName? , RqUID , CustId? , RecCtrlIn? , SelRangeDt? )>
<!--
CustAud Response -->
<!ELEMENT CustAudRs (Status , RqUID , CustId? ,
(RecCtrlOut? , SelRangeDt? , CustMsgRec* )? )>
<!--
CustMsgRec Aggregate -->
<!ELEMENT CustMsgRec (CustId? , MsgRecDt? , (CustAddRs | CustModRs | CustDelRs )
)>
<!-- MsgRecDt DateTime -->
<!ELEMENT MsgRecDt
%DateTime;>
<!ATTLIST MsgRecDt
%Type_DateTime; >
<!-- CustSync Request -->
<!ELEMENT
CustSyncRq (RqUID , CustId? ,
RecCtrlIn? , Token )>
<!-- CustSync Response -->
<!ELEMENT
CustSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
CustMsgRec* )? )>
<!-- NewToken Identifier -->
<!ELEMENT
NewToken %Identifier;>
<!ATTLIST NewToken %Type_Identifier; >
<!-- CustSvcAdd Request
-->
<!ELEMENT CustSvcAddRq
(RqUID , CustId? , CustSvcId , CustSvcInfo )>
<!--
CustSvcAdd Response -->
<!-- XXX DiscRec renamed to CustDiscRec, a
bug in PR Draft -->
<!ELEMENT CustSvcAddRs (Status , RqUID , CustId? , CustSvcId , CustSvcInfo , CustSvcRec
, CustDiscRec* , CSPRefId? , SPRefId? )>
<!--
CustSvcStatusCode Closed Enum -->
<!ELEMENT CustSvcStatusCode (#PCDATA )>
<!ATTLIST
CustSvcStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'Enabled EnablePend Disabled
DisablePend Rejected' >
<!--#ENTITY % CustSvcStatusCode
#Enum("Enabled", "EnablePend", "Disabled",
"DisablePend", "Rejected")-->
<!-- CustSvcMod
Request -->
<!ELEMENT CustSvcModRq
(RqUID , CustId? , CustSvcId , CustSvcInfo )>
<!--
CustSvcMod Response -->
<!-- XXX DiscRec renamed to CustDiscRec, a
bug in PR Draft -->
<!ELEMENT CustSvcModRs (Status , RqUID , CustId? ,
(CustSvcId , CustSvcInfo , CustSvcRec , CustSvcRec , CustDiscRec* ,
CSPRefId? , SPRefId? )? )>
<!-- CustSvcStatusModRq Request
-->
<!ELEMENT CustSvcStatusModRq
(RqUID , CustId? , CustSvcId , CustSvcStatus )>
<!--
CustSvcStatusModRs Response -->
<!ELEMENT CustSvcStatusModRs (Status , RqUID , CustId? , (CustSvcId , CustSvcStatus , CustSvcRec ,
CSPRefId? , SPRefId? )? )>
<!-- CustSvcDel Request
-->
<!ELEMENT CustSvcDelRq
(RqUID , CustId? , CustSvcId , CascadeDel? )>
<!--
CascadeDel Boolean -->
<!ELEMENT CascadeDel %Boolean;>
<!ATTLIST
CascadeDel %Type_Boolean; >
<!--
CustSvcDel Response -->
<!ELEMENT CustSvcDelRs (Status , RqUID , CustId? , (CustSvcId , CascadeDel? , (CustSvcRec | DependentType* ) , CSPRefId? ,
SPRefId? )? )>
<!-- DependentType Open Enum -->
<!ELEMENT
DependentType %OpenEnum;>
<!ATTLIST DependentType %Type_OpenEnum; >
<!-- CustSvcAud
Request -->
<!ELEMENT CustSvcAudRq
(RqUID , CustId? , RecCtrlIn? , SelRangeDt? , Method? , SvcName? ,
SPName? )>
<!-- Method Closed Enum -->
<!ELEMENT
Method (#PCDATA )>
<!ATTLIST
Method dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TODO TODO' >
<!--#ENTITY % Method
#Enum("TODO", "TODO")-->
<!-- CustSvcAud
Response -->
<!ELEMENT CustSvcAudRs
(Status , RqUID , CustId? ,
(RecCtrlOut? , SelRangeDt? , Method? , SvcName? , SPName? ,
CustSvcMsgRec* )? )>
<!-- CustSvcMsgRec Aggregate -->
<!ELEMENT
CustSvcMsgRec (CustId? , MsgRecDt?
, (CustSvcAddRs | CustSvcModRs |
CustSvcDelRs ) )>
<!-- CustSvcSync Request -->
<!ELEMENT
CustSvcSyncRq (RqUID , CustId? ,
RecCtrlIn? , Token )>
<!-- CustSvcSync Response -->
<!ELEMENT
CustSvcSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
CustSvcMsgRec* )? )>
<!-- SvcAcctAdd Request -->
<!ELEMENT
SvcAcctAddRq (RqUID , CustId? ,
SvcAcctId , SvcAcctInfo , SecretList* , CryptType? , CustNameAddr* )>
<!--
SvcAcctAdd Response -->
<!-- XXX renamed DiscRec to
CustDescRec. Assuming a bug in PR Draft
-->
<!ELEMENT SvcAcctAddRs
(Status , RqUID , CustId? ,
(SvcAcctId , SvcAcctInfo , SvcAcctRec , CustDiscRec* , CSPRefId? ,
SPRefId? )? )>
<!-- SvcAcctStatusCode Closed Enum -->
<!ELEMENT
SvcAcctStatusCode (#PCDATA )>
<!ATTLIST
SvcAcctStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TODO TODO' >
<!--#ENTITY
% SvcAcctStatusCode #Enum("TODO", "TODO")-->
<!--
SvcAcctMod Request -->
<!ELEMENT SvcAcctModRq (RqUID , SvcName , CustId? , SvcAcctId ,
SvcAcctInfo , SecretList* , CryptType? , CustNameAddr* )>
<!--
SvcAcctMod Response -->
<!-- XXX renamed DiscRec to CustDiscRec
assuming it is a bug in PR -->
<!-- draft -->
<!ELEMENT SvcAcctModRs (Status , RqUID , CustId? , (SvcAcctId , SvcAcctInfo , SvcAcctRec ,
CustDiscRec* , CSPRefId? , SPRefId? )? )>
<!-- SvcAcctDel
Request -->
<!ELEMENT SvcAcctDelRq
(RqUID , CustId? , SvcAcctId , CascadeDel? )>
<!--
SvcAcctDel Response -->
<!ELEMENT SvcAcctDelRs (Status , RqUID , CustId? , (SvcAcctId , CascadeDel? , (SvcAcctRec | DependentType* ) , CSPRefId? ,
SPRefId? )? )>
<!-- SvcAcctInq Request -->
<!ELEMENT
SvcAcctInqRq (RqUID , CustId? ,
SvcName* , IncBal? , IncToken? , UpDt? )>
<!-- IncBal Boolean
-->
<!ELEMENT IncBal %Boolean;>
<!ATTLIST IncBal %Type_Boolean; >
<!-- SvcAcctInq
Response -->
<!ELEMENT SvcAcctInqRs
(Status , RqUID , CustId? ,
(SvcName* , IncBal? , IncToken? , UpDt? , SvcUpDt , xxxAcctRec* ,
CustSvcRec* , Token? )? )>
<!-- SvcUpDt DateTime -->
<!ELEMENT
SvcUpDt %DateTime;>
<!ATTLIST SvcUpDt %Type_DateTime; >
<!-- XXX make sure these are
the only two acct rec -->
<!ELEMENT xxxAcctRec (BankAcctRec | PresAcctRec )>
<!--
CustSvcRec Aggregate -->
<!ELEMENT CustSvcRec (CustSvcId , CustSvcInfo , CustSvcStatus
)>
<!-- CustSvcId Aggregate -->
<!ELEMENT
CustSvcId (SvcName , SPName )>
<!--
CustSvcInfo Aggregate -->
<!ELEMENT CustSvcInfo (DepAcctId? | CardAcctId? )>
<!--
CustSvcStatus Aggregate -->
<!ELEMENT CustSvcStatus (CustSvcStatusCode , StatusDesc? , EffDt? ,
StatusModBy? , ResolvePendingDt? )>
<!-- SvcStatus OpenEnum
-->
<!ELEMENT SvcStatus %OpenEnum;>
<!ATTLIST
SvcStatus %Type_OpenEnum; >
<!--
SvcAcctRec Aggregate -->
<!ELEMENT SvcAcctRec (SvcAcctId , SvcAcctInfo , SvcAcctStatus ,
EffDt? )>
<!-- SvcAcctId Aggregate -->
<!-- XXX
PresAcctInfo in Draft 5 seems to be unnecessary -->
<!ELEMENT
SvcAcctId (SvcName , SPName? , (DepAcctId | CardAcctId | LoanAcctId |
PresAcctId ) )>
<!-- SvcAcctInfo Aggregate -->
<!ELEMENT
SvcAcctInfo (Nickname? )>
<!--
SvcAcctStatus Aggregate -->
<!ELEMENT SvcAcctStatus (SvcAcctStatusCode , StatusDesc? , EffDt? ,
StatusModBy? , ResolvePendingDt? )>
<!-- SvcAcctAud Request
-->
<!ELEMENT SvcAcctAudRq
(RqUID , CustId? , RecCtrlIn? , SelRangeDt? , Method? )>
<!--
SvcAcctAud Response -->
<!ELEMENT SvcAcctAudRs (Status , RqUID , CustId? , (RecCtrlOut? , SelRangeDt? , Method? ,
SvcAcctMsgRec* )? )>
<!ELEMENT SvcAcctMsgRec (CustId? , MsgRecDt? , (SvcAcctAddRs | SvcAcctModRs | SvcAcctDelRs
) )>
<!-- SvcAcctSync Request -->
<!ELEMENT
SvcAcctSyncRq (RqUID , CustId? ,
RecCtrlIn? , Token )>
<!-- SvcAcctSync Response -->
<!ELEMENT
SvcAcctSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
SvcAcctMsgRec* )? )>
<!-- CustDiscStatusMod Request
-->
<!ELEMENT CustDiscStatusModRq
(RqUID , CustId? , DiscId , CustDiscStatusCode )>
<!--
CustDiscStatusMod Response -->
<!ELEMENT CustDiscStatusModRs (Status , RqUID , CustId? , (DiscId , CustDiscStatusCode , CSPRefId? ,
SPRefId? )? )>
<!-- CustDiscInq Request -->
<!ELEMENT
CustDiscInqRq (SvcName , RqUID ,
CustId? , DiscId? , CustDiscStatusCode? , IncDisc? )>
<!--
IncDisc Boolean -->
<!ELEMENT IncDisc %Boolean;>
<!ATTLIST
IncDisc %Type_Boolean; >
<!--
CustDiscInq Response -->
<!-- XXX SvcName is not echoed. Reported as a bug in Draft 5 -->
<!ELEMENT
CustDiscInqRs (Status , RqUID , CustId?
, (DiscId? , CustDiscStatusCode? ,
IncDisc? , (CustDiscRec |
CustDiscStatus )? )? )>
<!-- BaseSvcProfInfo aggregate
-->
<!ELEMENT BaseSvcProfInfo
(SvcCore , MsgSupt+ , OptSupt* , SignonInfo , EnrollProf? )>
<!--
SignonInfo Aggregate -->
<!ELEMENT SignonInfo (AuthSupt* , CryptType+ , ChgPswdFirst? ,
Min? , Max? , CharType? , CaseSen? , SpaceAlwd? , Memo? )>
<!--
AuthSupt Open Enum -->
<!ELEMENT AuthSupt %OpenEnum;>
<!ATTLIST
AuthSupt %Type_OpenEnum; >
<!--
ChgPswdFirst Boolean -->
<!ELEMENT ChgPswdFirst %Boolean;>
<!ATTLIST
ChgPswdFirst %Type_Boolean; >
<!--
Min Long -->
<!ELEMENT Min %Long;>
<!ATTLIST Min %Type_Long; >
<!-- Max Long
-->
<!ELEMENT Max %Long;>
<!ATTLIST Max %Type_Long; >
<!-- CharType Open
Enum -->
<!ELEMENT CharType %OpenEnum;>
<!ATTLIST
CharType %Type_OpenEnum; >
<!--
CaseSen Boolean -->
<!ELEMENT CaseSen %Boolean;>
<!ATTLIST
CaseSen %Type_Boolean; >
<!--
SpaceAlwd Boolean -->
<!ELEMENT SpaceAlwd %Boolean;>
<!ATTLIST
SpaceAlwd %Type_Boolean; >
<!--
EnrollProf Aggregate -->
<!ELEMENT EnrollProf (WebEnrollURL? , EnrollDesc? , CryptType? ,
SecretPrompt* , CustNameReqd? , PostAddrReqd? )>
<!--
WebEnrollURL URL -->
<!ELEMENT WebEnrollURL %URL;>
<!ATTLIST
WebEnrollURL %Type_URL; >
<!--
EnrollDesc C-255 -->
<!ELEMENT EnrollDesc %C-255;>
<!ATTLIST
EnrollDesc %Type_C-255; >
<!--
CustNameReqd Boolean -->
<!ELEMENT CustNameReqd %Boolean;>
<!ATTLIST
CustNameReqd %Type_Boolean; >
<!--
PostAddrReqd Boolean -->
<!ELEMENT PostAddrReqd %Boolean;>
<!ATTLIST
PostAddrReqd %Type_Boolean; >
<!-- -->
<!--
Banking Service Messages (Bank) -->
<!-- -->
<!ELEMENT BankSvcRq (SPName? , RqUID , (BalInqRq | AcctInqRq
|
DepAcctStmtInqRq | CCAcctStmtInqRq | DepAcctTrnInqRq |
CCAcctTrnInqRq
| IntRateInqRq | BankAcctTaxInqRq | ForExRateInqRq |
StopChkAddRq |
StopChkCanRq | StopChkInqRq | StopChkAudRq |
StopChkSyncRq | XferAddRq |
XferModRq | XferCanRq | XferStatusModRq |
XferInqRq | XferAudRq |
XferSyncRq | RecXferAddRq | RecXferModRq |
RecXferCanRq | RecXferInqRq |
RecXferAudRq | RecXferSyncRq |
ChkOrdAddRq | DepBkOrdAddRq)*)>
<!ELEMENT
BankSvcRs (Status , SPName? , RqUID ,
(BalInqRs |
AcctInqRs | DepAcctStmtInqRs | CCAcctStmtInqRs |
DepAcctTrnInqRs |
CCAcctTrnInqRs | IntRateInqRs | BankAcctTaxInqRs |
ForExRateInqRs |
StopChkAddRs | StopChkCanRs | StopChkInqRs | StopChkAudRs
|
StopChkSyncRs | XferAddRs | XferModRs | XferCanRs | XferStatusModRq
|
XferInqRs | XferAudRs | XferSyncRs | RecXferAddRs | RecXferModRs |
RecXferCanRs
| RecXferInqRs | RecXferAudRs | RecXferSyncRs |
ChkOrdAddRs |
DepBkOrdAddRs)*)>
<!-- DepAcctRec aggregate -->
<!ELEMENT
DepAcctRec (StopCount? , HoldCount? ,
LastDepDt? , LastDepCurAmt? , DepMatureDt? )>
<!-- StopCount
Long -->
<!ELEMENT StopCount %Long;>
<!ATTLIST
StopCount %Type_Long; >
<!--
HoldCount Long -->
<!ELEMENT HoldCount %Long;>
<!ATTLIST
HoldCount %Type_Long; >
<!--
LastDepDt Date -->
<!ELEMENT LastDepDt %Date;>
<!ATTLIST
LastDepDt %Type_Date; >
<!--
LastDepCurAmt Currency Amount -->
<!ELEMENT LastDepCurAmt
%CURRENCYAMOUNT;>
<!-- DepMatureDt Date -->
<!ELEMENT
DepMatureDt %Date;>
<!ATTLIST DepMatureDt %Type_Date; >
<!-- CCAcctRec aggregate -->
<!ELEMENT
CCAcctRec (DueDt? , ExpDt? , LastPmtDt?
, LastPmtCurAmt? )>
<!-- DueDt Date -->
<!ELEMENT
DueDt %Date;>
<!ATTLIST DueDt
%Type_Date; >
<!-- TODO - ExpDt YrMon conflicts with previous
definition -->
<!-- LastPmtDt Date -->
<!ELEMENT
LastPmtDt %Date;>
<!ATTLIST LastPmtDt %Type_Date; >
<!-- LastPmtCurAmt Currency Amount
-->
<!ELEMENT LastPmtCurAmt %CURRENCYAMOUNT;>
<!--
LoanInfoCommon aggregate -->
<!ELEMENT LoanInfoCommon (OrigDt? , Freq? , PurposeDesc? ,
CollateralDesc? , CompletedPmtCount? , RegPmtCurAmt? , PmtDueDt? ,
NextPmtCurAmt? , LastPmtDt? , LastPmtCurAmt? , PastDuePmtCount? )>
<!--
OrigDt Date -->
<!ELEMENT OrigDt %Date;>
<!ATTLIST
OrigDt %Type_Date; >
<!--
PurposeDesc C-80 -->
<!ELEMENT PurposeDesc %C-80;>
<!ATTLIST
PurposeDesc %Type_C-80; >
<!--
CollateralDesc C-80 -->
<!ELEMENT CollateralDesc %C-80;>
<!ATTLIST
CollateralDesc %Type_C-80; >
<!--
CompletedPmtCount Long -->
<!ELEMENT CompletedPmtCount
%Long;>
<!ATTLIST CompletedPmtCount
%Type_Long; >
<!-- RegPmtCurAmt Currency Amount -->
<!ELEMENT
RegPmtCurAmt %CURRENCYAMOUNT;>
<!-- PmtDueDt Date -->
<!ELEMENT
PmtDueDt %Date;>
<!ATTLIST PmtDueDt
%Type_Date; >
<!-- NextPmtCurAmt Currency Amount -->
<!ELEMENT
NextPmtCurAmt %CURRENCYAMOUNT;>
<!-- PastDuePmtCount Long
-->
<!ELEMENT PastDuePmtCount %Long;>
<!ATTLIST
PastDuePmtCount %Type_Long; >
<!--
LoanAcctRec aggregate -->
<!ELEMENT LoanAcctRec (Term? , MatDt? , LoanInfoCommon?
)>
<!-- MatDt Date -->
<!ELEMENT MatDt
%Date;>
<!ATTLIST MatDt
%Type_Date; >
<!-- LOCAcctRec aggregate -->
<!ELEMENT
LOCAcctRec (LocLimit? , MinPmtCurAmt? ,
ExpDt? , LoanInfoCommon? )>
<!-- LocLimit Currency Amount
-->
<!ELEMENT LocLimit %CURRENCYAMOUNT;>
<!--
MinPmtCurAmt Currency Amount -->
<!ELEMENT MinPmtCurAmt
%CURRENCYAMOUNT;>
<!-- TODO - ExpDt (Date) conflicts with
other definitions (DateTime) -->
<!-- MortAcctRec aggregate
-->
<!ELEMENT MortAcctRec
(OrigDt? , LoanInfoCommon? , LastPmtDt? , TaxPaidDt? , TaxPaidCurAmt? ,
LastYrTaxPaidDt? , LastYrTaxPaidCurAmt? , InsPaidDt? , InsPaidCurAmt? , LastYrInsPaidDt?
, LastYrInsPaidCurAmt? )>
<!-- RemainingPmtCount Long
-->
<!ELEMENT RemainingPmtCount %Long;>
<!ATTLIST
RemainingPmtCount %Type_Long;
>
<!-- TaxPaidDt Date -->
<!ELEMENT TaxPaidDt
%Date;>
<!ATTLIST TaxPaidDt
%Type_Date; >
<!-- TaxPaidCurAmt Currency Amount -->
<!ELEMENT
TaxPaidCurAmt %CURRENCYAMOUNT;>
<!-- LastYrTaxPaidDt Date
-->
<!ELEMENT LastYrTaxPaidDt %Date;>
<!ATTLIST
LastYrTaxPaidDt %Type_Date; >
<!--
LastYrTaxPaidCurAmt Currency Amount -->
<!ELEMENT
LastYrTaxPaidCurAmt %CURRENCYAMOUNT;>
<!-- InsPaidDt Date
-->
<!ELEMENT InsPaidDt %Date;>
<!ATTLIST InsPaidDt %Type_Date; >
<!-- InsPaidCurAmt
Currency Amount -->
<!ELEMENT InsPaidCurAmt
%CURRENCYAMOUNT;>
<!-- LastYrInsPaidDt Date -->
<!ELEMENT
LastYrInsPaidDt %Date;>
<!ATTLIST LastYrInsPaidDt %Type_Date; >
<!--
LastYrInsPaidCurAmt Currency Amount -->
<!ELEMENT
LastYrInsPaidCurAmt %CURRENCYAMOUNT;>
<!-- BankTrnRec
aggregate -->
<!ELEMENT BankAcctTrnRec (TrnType? , TrnSrc? , PostedDt , OrigDt? , CurAmt , OrigCurAmt? ,
IndustId? , Memo? , (Name |
CustPayeeInfo )? , CSPRefId? , SPRefId? , SPRefIdCorrect? )>
<!--
SPRefId has no usage info in the spec - I assumed it's optional -->
<!--
TrnType Open Enum -->
<!ELEMENT TrnType %OpenEnum;>
<!ATTLIST
TrnType %Type_OpenEnum; >
<!--
TrnSrc Open Enum -->
<!ELEMENT TrnSrc %OpenEnum;>
<!ATTLIST
TrnSrc %Type_OpenEnum; >
<!--
PostedDt Date -->
<!ELEMENT PostedDt %Date;>
<!ATTLIST
PostedDt %Type_Date; >
<!--
OrigCurAmt Currency Amount -->
<!ELEMENT OrigCurAmt
%CURRENCYAMOUNT;>
<!ELEMENT SPRefIdCorrect (SPRefId , CorrectAction )>
<!--
CorrectAction Closed Enum -->
<!ELEMENT CorrectAction (#PCDATA )>
<!ATTLIST
CorrectAction dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY % CorrectAction #Enum("TODO",
"TODO")-->
<!-- DepTrnRec aggregate -->
<!ELEMENT
DepAcctTrnRec (BankAcctTrnRec ,
AvailDt? , ChkNum? , XferId? , PmtId? ,
(DepAcctIdTo | CardAcctIdTo | LoanAcctIdTo )? , ATMTrnInfo? ,
USA.ACHTrnInfo? )>
<!-- AvailDt Date -->
<!ELEMENT
AvailDt %Date;>
<!ATTLIST AvailDt
%Type_Date; >
<!-- ChkNum NC-12 -->
<!ELEMENT
ChkNum %NC-12;>
<!ATTLIST ChkNum
%Type_NC-12; >
<!-- XferId Identifier -->
<!ELEMENT
XferId %Identifier;>
<!ATTLIST XferId %Type_Identifier; >
<!-- PmtId Open Enum -->
<!ELEMENT
PmtId %OpenEnum;>
<!ATTLIST PmtId
%Type_OpenEnum; >
<!-- ATMTrnInfo Aggregate -->
<!ELEMENT
ATMTrnInfo (ATMOwner? , ATMLocation? ,
ATMCityState? )>
<!-- ATMOwner C-14 -->
<!ELEMENT
ATMOwner %C-14;>
<!ATTLIST ATMOwner
%Type_C-14; >
<!-- ATMLocation C-18 -->
<!ELEMENT
ATMLocation %C-18;>
<!ATTLIST ATMLocation %Type_C-18; >
<!-- ATMCityState C-15 -->
<!ELEMENT
ATMCityState %C-15;>
<!ATTLIST ATMCityState %Type_C-15; >
<!-- USA.ACHTrnInfo
Aggregate -->
<!ELEMENT USA.ACHTrnInfo (OriginatorName , USA.RTN? )>
<!--
OriginatorName C-40 -->
<!ELEMENT OriginatorName %C-40;>
<!ATTLIST
OriginatorName %Type_C-40; >
<!--
CCTrnRec aggregate -->
<!ELEMENT CCAcctTrnRec (BankAcctTrnRec , SalesSlipRefNum , Memo?
)>
<!-- SalesSlipRefNum NC-12 -->
<!ELEMENT
SalesSlipRefNum %NC-12;>
<!ATTLIST SalesSlipRefNum %Type_NC-12; >
<!-- ChkRange
aggregate -->
<!ELEMENT ChkRange
( (ChkNumStart , ChkNumEnd? ) |
(ChkNumStart? , ChkNumEnd ) )>
<!-- ChkNumStart NC-12
-->
<!ELEMENT ChkNumStart %NC-12;>
<!ATTLIST ChkNumStart %Type_NC-12; >
<!-- ChkNumEnd
NC-12 -->
<!ELEMENT ChkNumEnd %NC-12;>
<!ATTLIST
ChkNumEnd %Type_NC-12; >
<!--
StopChkInfo aggregate -->
<!ELEMENT StopChkInfo (ChkNum , Name? , CurAmt? , OrigDt?
)>
<!-- StopChkRec aggregate -->
<!ELEMENT StopChkRec (StopChkInfo , PostedDt? , StopChkStatusCode
, StatusDesc? )>
<!-- StopChkStatusCode Closed Enum
-->
<!ELEMENT StopChkStatusCode
(#PCDATA )>
<!ATTLIST StopChkStatusCode dt:type NMTOKEN #FIXED
'string'
dt:enumeration CDATA #FIXED
'TO DO' >
<!--#ENTITY % StopChkStatusCode #Enum("TODO", "TODO")-->
<!--
ForExRateInfo aggregate -->
<!ELEMENT ForExRateInfo (CurAmt? , CurRate , CurConvertRule ,
FeeCurAmt? , ExpDt? , CSPRefId? , SPRefId? )>
<!-- Fee
Currency Amount -->
<!ELEMENT FeeCurAmt %CURRENCYAMOUNT;>
<!--
XferInfo aggregate -->
<!-- XXX ForExInfo renamed to ForExRateInfo -
Bug in PR Draft -->
<!ELEMENT XferInfo ( (DepAcctIdFrom | CardAcctIdFrom | LoanAcctIdFrom ) , (DepAcctIdTo | CardAcctIdTo | LoanAcctIdTo )
, CurAmt , DueDt? , Category? , ImmediateXfer? )>
<!--
Category C-40 -->
<!ELEMENT Category %C-40;>
<!ATTLIST
Category %Type_C-40; >
<!--
ImmediateXfer Boolean -->
<!ELEMENT ImmediateXfer
%Boolean;>
<!ATTLIST ImmediateXfer
%Type_Boolean; >
<!-- XferProf aggregate -->
<!ELEMENT
XferProf (OptSupt* , PrcSched? ,
RecXferProf? )>
<!-- RecXferProf Aggregate -->
<!ELEMENT
RecXferProf (Freq+ , ModPendingType
)>
<!-- ModPendingType Closed Enum -->
<!ELEMENT
ModPendingType (#PCDATA )>
<!ATTLIST
ModPendingType dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
ModPendingType
#Enum("TODO", "TODO")-->
<!-- BalInq
Request -->
<!ELEMENT BalInqRq
(RqUID , CustId? , (DepAcctId |
CardAcctId | LoanAcctId ) , IncExtBal? )>
<!-- IncExtBal
Boolean -->
<!ELEMENT IncExtBal %Boolean;>
<!ATTLIST
IncExtBal %Type_Boolean; >
<!--
BalInq Response -->
<!ELEMENT BalInqRs (Status , RqUID , CustId? ,
( (DepAcctId | CardAcctId | LoanAcctId ) , IncExtBal? , AcctBal+ ,
ExtAcctBal* , MktgInfo? )? )>
<!-- MktgInfo C-255 -->
<!ELEMENT
MktgInfo %C-255;>
<!ATTLIST MktgInfo %Type_C-255; >
<!-- AcctInq Request -->
<!ELEMENT
AcctInqRq (RqUID , CustId? , (DepAcctId | CardAcctId | LoanAcctId ) ,
IncExtBal? , IncBal? )>
<!-- AcctInq Response -->
<!ELEMENT
AcctInqRs (Status , RqUID , CustId?
, ( (DepAcctId | CardAcctId |
LoanAcctId ) , IncExtBal? , IncBal? , UpDt , LastTrnDt? , LastStmtDt? ,
AcctBal* , ExtAcctBal* , (DepAcctRec |
CCAcctRec | LoanAcctRec | LOCAcctRec | MortAcctRec )? )? )>
<!--
LastTrnDt Date -->
<!ELEMENT LastTrnDt %Date;>
<!ATTLIST
LastTrnDt %Type_Date; >
<!--
LastStmtDt Date -->
<!ELEMENT LastStmtDt %Date;>
<!ATTLIST
LastStmtDt %Type_Date; >
<!--
DepAcctStmtInq Request -->
<!ELEMENT DepAcctStmtInqRq (RqUID , CustId? , (DepAcctId | CardAcctId ) , SelRangeDt? , IncDetail? )>
<!--
IncDetail Boolean -->
<!ELEMENT IncDetail %Boolean;>
<!ATTLIST
IncDetail %Type_Boolean; >
<!--
DepAcctStmtInq Response -->
<!ELEMENT DepAcctStmtInqRs (Status , RqUID , CustId? , ( (DepAcctId | CardAcctId ) , SelRangeDt? ,
IncDetail? , DepAcctStmtRec* )? )>
<!-- DepAcctStmtRec
Aggregate -->
<!ELEMENT DepAcctStmtRec (SPRefId? , NextDt? , AcctBal+ , StmtSummAmt+ , StartDt , EndDt ,
MktgInfo? , URL? , DepAcctTrnRec* )>
<!-- NextDt DateTime
-->
<!ELEMENT NextDt %DateTime;>
<!ATTLIST NextDt %Type_DateTime; >
<!-- StartDt
DateTime -->
<!ELEMENT StartDt %DateTime;>
<!ATTLIST
StartDt %Type_DateTime; >
<!--
EndDt DateTime -->
<!ELEMENT EndDt %DateTime;>
<!ATTLIST EndDt %Type_DateTime; >
<!--
StmtSummType Open Enum -->
<!ELEMENT StmtSummType
%OpenEnum;>
<!ATTLIST StmtSummType
%Type_OpenEnum; >
<!-- CCAcctStmtInq Request -->
<!ELEMENT
CCAcctStmtInqRq (RqUID , CustId? ,
CardAcctId , SelRangeDt? , IncDetail? )>
<!-- CCAcctStmtInq
Response -->
<!ELEMENT CCAcctStmtInqRs (Status , RqUID , CustId? ,
(CardAcctId , SelRangeDt? , IncDetail? , CCAcctStmtRec* )? )>
<!--
CCAcctStmtRec Aggregate -->
<!ELEMENT CCAcctStmtRec (SPRefId? , NextDt? , AcctBal+ , ExtAcctBal*
, PmtDueDt? , MinAmtDue? , StmtSummAmt* , DelinqAging* , StartDt , EndDt ,
MktgInfo? , URL? , CCAcctTrnRec* )>
<!-- MinAmtDue Currency
Amount -->
<!ELEMENT MinAmtDue %CURRENCYAMOUNT;>
<!--
StmtSummAmt Aggregate -->
<!ELEMENT StmtSummAmt (StmtSummType , CurAmt )>
<!--
DelinqAging Aggregate -->
<!ELEMENT DelinqAging (Aging , CurAmt )>
<!--
Aging Open Enum -->
<!ELEMENT Aging %OpenEnum;>
<!ATTLIST
Aging %Type_OpenEnum; >
<!--
DepAcctTrnInq Request -->
<!ELEMENT DepAcctTrnInqRq (RqUID , CustId? , RecCtrlIn? , (DepAcctId | CardAcctId ) , SelRangeDt? ,
SelRangeCurAmt? , ChkRange? , TrnType* , TrnSrc* , CSPRefId* , SPRefId*
)>
<!-- DepAcctTrnInq Response -->
<!ELEMENT
DepAcctTrnInqRs (Status , RqUID ,
CustId? , (RecCtrlOut? , (DepAcctId | CardAcctId ) , SelRangeDt? ,
SelRangeCurAmt? , ChkRange? , TrnType* , TrnSrc* , CSPRefId* , SPRefId* ,
MktgInfo? , DepAcctTrnRec* )? )>
<!-- CCAcctTrnInq Request
-->
<!ELEMENT CCAcctTrnInqRq
(RqUID , CustId? , CardAcctId , RecCtrlIn? , SelRangeDt? ,
SelRangeCurAmt? , TrnType* , TrnSrc* , CSPRefId* , SPRefId* )>
<!--
CCAcctTrnInq Response -->
<!ELEMENT CCAcctTrnInqRs (Status , RqUID , CustId? , (CardAcctId , RecCtrlOut? , SelRangeDt? ,
SelRangeCurAmt? , TrnType* , TrnSrc* , CSPRefId* , SPRefId* , MktgInfo? , CCAcctTrnRec*
)? )>
<!-- BankAcctTrnImgInq Request -->
<!ELEMENT
BankAcctTrnImgInqRq (RqUID , CustId? ,
DeliveryMethod , (DepAcctId |
CardAcctId | LoanAcctId ) , StopChkInfo* , CustContact? )>
<!--
DeliveryMethod Open Enum -->
<!ELEMENT DeliveryMethod
%OpenEnum;>
<!ATTLIST DeliveryMethod %Type_OpenEnum; >
<!-- BankAcctTrnImgInq Response
-->
<!ELEMENT BankAcctTrnImgInqRs
(Status , RqUID , CustId? ,
(DeliveryMethod? , (DepAcctId |
CardAcctId | LoanAcctId ) , StopChkInfo* , CustContact? , CSPRefId? , SPRefId?
)? )>
<!-- IntRateInq Request -->
<!ELEMENT
IntRateInqRq (RqUID , CustId? ,
RecCtrlIn? , AcctType , AcctTaxType? , CurAmt? , Term? )>
<!--
IntRateInq Response -->
<!ELEMENT IntRateInqRs (Status , RqUID , CustId? , (RecCtrlOut? , AcctType , AcctTaxType? , CurAmt?
, Term? , IntRateInfo* )? )>
<!-- IntRateInfo Aggregate
-->
<!ELEMENT IntRateInfo
(Rate , Desc? , IntAPY? , Term? , LowCurAmt? , HighCurAmt? )>
<!--
Rate Decimal -->
<!ELEMENT Rate %Decimal;>
<!ATTLIST
Rate %Type_Decimal; >
<!--
IntAPY Decimal -->
<!ELEMENT IntAPY %Decimal;>
<!ATTLIST
IntAPY %Type_Decimal; >
<!--
BankAcctTaxInq Request -->
<!ELEMENT BankAcctTaxInqRq (RqUID , CustId? , (DepAcctId | CardAcctId | LoanAcctId ) , TaxYear )>
<!--
TaxYear Year -->
<!ELEMENT TaxYear %Year;>
<!ATTLIST
TaxYear %Type_Year; >
<!--
BankAcctTaxInq Response -->
<!ELEMENT BankAcctTaxInqRs (Status , RqUID , CustId? , ( (DepAcctId | CardAcctId | LoanAcctId ) ,
TaxYear , TaxId , AcctTaxInfo* )? )>
<!-- AcctTaxInfo
Aggregate -->
<!ELEMENT AcctTaxInfo
(Org , TaxType? , CurAmt? , PrevYrCurAmt? , Rate? )>
<!--
TaxType Open Enum -->
<!ELEMENT TaxType %OpenEnum;>
<!ATTLIST
TaxType %Type_OpenEnum; >
<!--
PrevYrCurAmt Currency Amount -->
<!ELEMENT PrevYrCurAmt
%CURRENCYAMOUNT;>
<!-- ForExRateInq Request -->
<!ELEMENT
ForExRateInqRq (RqUID , CustId? , (DepAcctId | CardAcctId ) , CurAmt , CurCode
, ForExRateType? )>
<!-- ForExRateType Closed Enum
-->
<!ELEMENT ForExRateType
(#PCDATA )>
<!ATTLIST ForExRateType dt:type
NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY % ForExRateType #Enum("TODO",
"TODO")-->
<!-- ForExRateInq Response -->
<!ELEMENT
ForExRateInqRs (Status , RqUID ,
CustId? , ( (DepAcctId | CardAcctId ) ,
CurAmt , CurCode , ForExRateType? , ForExRateRec )? )>
<!--
ForExRateRec Aggregate -->
<!ELEMENT ForExRateRec (ForExRateId? , ForExRateInfo )>
<!--
ForExRateId Identifier -->
<!ELEMENT ForExRateId
%Identifier;>
<!ATTLIST ForExRateId
%Type_Identifier; >
<!-- StopChkAdd Request -->
<!ELEMENT
StopChkAddRq (RqUID , CustId? , (DepAcctId | CardAcctId | LoanAcctId )
, (ChkRange | StopChkInfo ) )>
<!--
StopChkAdd Response -->
<!ELEMENT StopChkAddRs (Status , RqUID , CustId? , ( (DepAcctId | CardAcctId | LoanAcctId )
, (ChkRange | StopChkInfo ) ,
StopChkRec , CSPRefId? , SPRefId? )? )>
<!-- StopChkCan
Request -->
<!ELEMENT StopChkCanRq
(RqUID , CustId? , (DepAcctId |
CardAcctId | LoanAcctId ) , (ChkRange |
StopChkInfo ) )>
<!-- StopChkCan Response -->
<!ELEMENT
StopChkCanRs (Status , RqUID , CustId?
, ( (DepAcctId | CardAcctId |
LoanAcctId ) , (ChkRange | StopChkInfo
) , StopChkRec , CSPRefId? , SPRefId? )? )>
<!-- StopChkInq
Request -->
<!ELEMENT StopChkInqRq
(RqUID , CustId? , RecCtrlIn? ,
(DepAcctId | CardAcctId | LoanAcctId ) , (ChkRange | StopChkInfo* | SelRangeDt )? , IncToken? )>
<!--
StopChkInq Response -->
<!ELEMENT StopChkInqRs (Status , RqUID , CustId? , (RecCtrlOut? , (DepAcctId | CardAcctId | LoanAcctId ) , (ChkRange | StopChkInfo* | SelRangeDt )? ,
StopChkRec* , Token? )? )>
<!-- StopChkAud Request
-->
<!ELEMENT StopChkAudRq
(RqUID , CustId? , RecCtrlIn? ,
(DepAcctId | CardAcctId | LoanAcctId ) , SelRangeDt? , ChkRange?
)>
<!-- StopChkAud Response -->
<!ELEMENT
StopChkAudRs (Status , RqUID , CustId?
, (RecCtrlOut? , (DepAcctId | CardAcctId | LoanAcctId ) ,
SelRangeDt? , ChkRange? , StopChkMsgRec* )? )>
<!--
StopChkSyncRq Aggregate -->
<!ELEMENT StopChkMsgRec (CustId? , MsgRecDt? , (StopChkAddRs | StopChkCanRs ) )>
<!--
StopChkSync Request -->
<!ELEMENT StopChkSyncRq (RqUID , CustId? , RecCtrlIn? , (DepAcctId | CardAcctId | LoanAcctId ) ,
Token )>
<!-- StopChkSync Response -->
<!ELEMENT
StopChkSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , (DepAcctId | CardAcctId | LoanAcctId ) ,
Token , NewToken , StopChkMsgRec* )? )>
<!-- XferAdd Request
-->
<!ELEMENT XferAddRq
(RqUID , CustId? , XferInfo , DupChkOverride? )>
<!--
DupChkOverride Boolean -->
<!ELEMENT DupChkOverride
%Boolean;>
<!ATTLIST DupChkOverride
%Type_Boolean; >
<!-- XferAdd Response -->
<!ELEMENT
XferAddRs (Status , RqUID , CustId? ,
XferInfo , DupChkOverride? , XferRec , CSPRefId? , SPRefId? )>
<!--
XferRec Aggregate -->
<!ELEMENT XferRec (XferId , RecXferId? , RecXferMod? , XferInfo , XferStatus
)>
<!-- RecXferId Identifier -->
<!ELEMENT
RecXferId %Identifier;>
<!ATTLIST RecXferId %Type_Identifier; >
<!--
RecXferMod Boolean -->
<!ELEMENT RecXferMod %Boolean;>
<!ATTLIST
RecXferMod %Type_Boolean; >
<!--
XferStatusCode Closed Enum -->
<!ELEMENT XferStatusCode (#PCDATA )>
<!ATTLIST
XferStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
XferStatusCode
#Enum("TODO", "TODO")-->
<!-- XferMod
Request -->
<!ELEMENT XferModRq
(RqUID , CustId? , XferId , XferInfo , DupChkOverride? )>
<!--
XferMod Response -->
<!ELEMENT XferModRs (Status , RqUID , CustId? , XferId , XferInfo , DupChkOverride? ,
XferRec , CSPRefId? , SPRefId? )>
<!-- XferCan Request
-->
<!ELEMENT XferCanRq
(RqUID , CustId? , XferId )>
<!-- XferCan Response
-->
<!ELEMENT XferCanRs
(Status , RqUID , CustId? , XferId , XferRec , CSPRefId? , SPRefId?
)>
<!-- XferStatusMod Request -->
<!ELEMENT
XferStatusModRq (RqUID , CustId? ,
XferId , XferStatus )>
<!-- XferStatus aggregate -->
<!ELEMENT
XferStatus (XferStatusCode , EffDt ,
StatusModBy )>
<!-- XferStatusMod Response -->
<!ELEMENT
XferStatusModRs (Status , RqUID ,
CustId? , (XferId , XferStatus ,
CSPRefId? , SPRefId? )? )>
<!-- XferInq Request -->
<!ELEMENT
XferInqRq (RqUID , CustId? , RecCtrlIn?
, XferId* , RecXferId* , CSPRefId* , SPRefId* , (DepAcctIdFrom | CardAcctIdFrom | LoanAcctIdFrom )? , (DepAcctIdTo | CardAcctIdTo | LoanAcctIdTo
)? , XferStatusCode* , SelRangeDueDt? , SelRangeCurAmt? , IncToken? )>
<!--
XferInq Response -->
<!ELEMENT XferInqRs (Status , RqUID , CustId? , RecCtrlOut? , XferId* , RecXferId* ,
CSPRefId* , SPRefId* , (DepAcctIdFrom |
CardAcctIdFrom | LoanAcctIdFrom )? ,
(DepAcctIdTo | CardAcctIdTo | LoanAcctIdTo )? , XferStatusCode* ,
SelRangeDueDt? , SelRangeCurAmt? , XferRec* , Token )>
<!--
XferAud Request -->
<!ELEMENT XferAudRq (RqUID , CustId? , RecCtrlIn? , SelRangeDt? , Method? , XferId? ,
RecXferId? )>
<!-- XferAud Response -->
<!ELEMENT
XferAudRs (Status , RqUID , CustId? ,
RecCtrlOut? , SelRangeDt? , Method? , XferId? , RecXferId? , XferMsgRec*
)>
<!-- XferMsgRec aggregate -->
<!ELEMENT
XferMsgRec (CustId? , MsgRecDt? , (XferAddRs | XferModRs | XferCanRs )
)>
<!-- XferSync Request -->
<!ELEMENT
XferSyncRq (RqUID , CustId? , RecCtrlIn?
, Token , (DepAcctIdFrom |
CardAcctIdFrom | LoanAcctIdFrom ) )>
<!-- XferSync Response
-->
<!ELEMENT XferSyncRs
(Status , RqUID , CustId? , RecCtrlOut? , Token , (DepAcctIdFrom | CardAcctIdFrom |
LoanAcctIdFrom ) , NewToken , XferMsgRec* )>
<!-- RecXferAdd
Request -->
<!ELEMENT RecXferAddRq
(RqUID , CustId? , XferInfo , RecModelInfo , DupChkOverride? )>
<!--
RecXferAdd Response -->
<!ELEMENT RecXferAddRs (Status , RqUID , CustId? , XferInfo ,
RecModelInfo , DupChkOverride? , RecXferRec , CSPRefId? , SPRefId? )>
<!--
RecXferRec aggregate -->
<!ELEMENT RecXferRec (RecXferId , XferInfo , RecModelInfo ,
RemainingInsts )>
<!-- RemainingInsts Long -->
<!ELEMENT
RemainingInsts %Long;>
<!ATTLIST RemainingInsts %Type_Long; >
<!-- RecXferMod
Request -->
<!ELEMENT RecXferModRq
(RqUID , CustId? , RecXferId , XferInfo , RecModelInfo , ModPending?
)>
<!-- ModPending Boolean -->
<!ELEMENT ModPending
%Boolean;>
<!ATTLIST ModPending
%Type_Boolean; >
<!-- RecXferMod Response -->
<!ELEMENT
RecXferModRs (Status , RqUID , CustId?
, RecXferId , XferInfo , RecModelInfo , ModPending? , RecXferRec , CSPRefId? ,
SPRefId? )>
<!-- RecXferCan Request -->
<!ELEMENT
RecXferCanRq (RqUID , CustId? ,
RecXferId , CascadeDel? )>
<!-- RecXferCan Response
-->
<!ELEMENT RecXferCanRs
(Status , RqUID , CustId? , RecXferId , CascadeDel? , (RecXferRec , DependentType* ) , CSPRefId? ,
SPRefId? )>
<!-- RecXferInq Request -->
<!ELEMENT
RecXferInqRq (RqUID , CustId? ,
RecCtrlIn? , RecXferId* ,
(DepAcctIdFrom | CardAcctIdFrom | LoanAcctIdFrom )? , SelRangeCurAmt? ,
CSPRefId* , SPRefId* , IncToken? )>
<!-- RecXferInq Response
-->
<!ELEMENT RecXferInqRs
(Status , RqUID , CustId? , RecCtrlOut? , RecXferId* , (DepAcctIdFrom | CardAcctIdFrom |
LoanAcctIdFrom )? , SelRangeCurAmt? , CSPRefId* , SPRefId* , RecXferRec* ,
Token? )>
<!-- RecXferAud Request -->
<!ELEMENT
RecXferAudRq (RqUID , CustId? ,
RecCtrlIn? , SelRangeDt? , Method? , RecXferId? )>
<!--
RecXferAud Response -->
<!ELEMENT RecXferAudRs (Status , RqUID , CustId? , RecCtrlOut? ,
SelRangeDt? , Method? , RecXferId? , RecXferMsgRec* )>
<!--
RecXferMsgRec aggregate -->
<!ELEMENT RecXferMsgRec (CustId? , MsgRecDt? , (RecXferAddRs | RecXferModRs | RecXferCanRs
) )>
<!-- RecXferSync Request -->
<!ELEMENT
RecXferSyncRq (RqUID , CustId? ,
RecCtrlIn? , Token , (DepAcctIdFrom |
CardAcctIdFrom | LoanAcctIdFrom ) )>
<!-- RecXferSync Response
-->
<!ELEMENT RecXferSyncRs
(Status , RqUID , CustId? ,
(RecCtrlOut? , (DepAcctIdFrom |
CardAcctIdFrom | LoanAcctIdFrom ) , NewToken , RecXferMsgRec* )? )>
<!--
ChkOrdAdd Request -->
<!ELEMENT ChkOrdAddRq (RqUID , CustId? , ChkOrdInfo )>
<!--
ChkPrint aggregate -->
<!ELEMENT ChkPrint (CustName , PostAddr , Phone? , Desc )>
<!--
ShipTo aggregate -->
<!ELEMENT ShipTo (CustName , PostAddr )>
<!-- ChkBkStyleId
Identifier -->
<!ELEMENT ChkBkStyleId %Identifier;>
<!ATTLIST
ChkBkStyleId %Type_Identifier;
>
<!-- ChkOrdAdd Response -->
<!ELEMENT ChkOrdAddRs (Status, RqUID, CustId?, (ChkOrdInfo,
ChkOrdRec,
CSPRefId?, SPRefId?)?)>
<!-- DepBkOrdAdd Request -->
<!ELEMENT
DepBkOrdAddRq (RqUID , CustId? ,
DepBkOrdInfo)>
<!-- DepBkOrdAdd Response -->
<!ELEMENT
DepBkOrdAddRs (Status, RqUID, CustId?,
(DepBkOrdInfo,
DepBkOrdRec, CSPRefId?, SPRefId?))>
<!--
DepBkStyleId Identifier -->
<!ELEMENT DepBkStyleId
%Identifier;>
<!ATTLIST DepBkStyleId %Type_Identifier; >
<!-- BankSvcProfInfo
aggregate -->
<!ELEMENT BankSvcProfInfo (SvcCore , MsgSupt* , OptSupt* , DeliveryMethod* , StopChkProf? ,
XferProf? , InterXferProf? )>
<!-- StopChkProf aggregate -->
<!ELEMENT
StopChkProf (OptSupt* , PrcSched? ,
FeeCurAmt? )>
<!-- InterXferProf aggregate -->
<!ELEMENT
InterXferProf (XferProf? ,
DomXferFeeCurAmt? , IntlXferFeeCurAmt? , USA.ACHProf? )>
<!--
USA.ACHProf aggregate -->
<!ELEMENT USA.ACHProf (DaysWith , DfltDaysToPay , CanWind
)>
<!-- DomXferFeeCurAmt Currency Amount -->
<!ELEMENT
DomXferFeeCurAmt %CURRENCYAMOUNT;>
<!-- IntlXferFeeCurAmt
Currency Amount -->
<!ELEMENT IntlXferFeeCurAmt
%CURRENCYAMOUNT;>
<!-- DaysWith Long -->
<!ELEMENT
DaysWith %Long;>
<!ATTLIST DaysWith
%Type_Long; >
<!-- DfltDaysToPay Long -->
<!ELEMENT
DfltDaysToPay %Long;>
<!ATTLIST DfltDaysToPay %Type_Long; >
<!-- CanWind Long
-->
<!ELEMENT CanWind %Long;>
<!ATTLIST CanWind %Type_Long; >
<!-- -->
<!--
Pay Service Messages (Pay) -->
<!-- -->
<!ELEMENT PaySvcRq (SPName? , RqUID , (StdPayeeInqRq |
CustPayeeAddRq
| CustPayeeModRq | CustPayeeTypeModRq | CustPayeeDelRq |
CustPayeeInqRq |
CustPayeeAudRq | CustPayeeSyncRq | PmtAddRq |
PmtModRq | PmtStatusModRq |
PmtCanRq | PmtInqRq | PmtAudRq |
PmtSyncRq | PmtAuthAddRq | PmtAuthModRq |
PmtAuthCanRq |
PmtAuthInqRq | PmtAuthAudRq | PmtAuthSyncRq | RemitAddRq
|
RemitModRq | RemitStatusModRq | RemitDelRq | RemitInqRq | RemitAudRq
|
RemitSyncRq | RecPmtAddRq | RecPmtModRq | RecPmtCanRq |
RecPmtInqRq
| RecPmtAudRq | RecPmtSyncRq)*)>
<!ELEMENT PaySvcRs (Status , SPName? , RqUID , (StdPayeeInqRs
|
CustPayeeAddRs | CustPayeeModRs | CustPayeeTypeModRs | CustPayeeDelRs
|
CustPayeeInqRs | CustPayeeAudRs | CustPayeeSyncRs | PmtAddRs |
PmtModRs
| PmtStatusModRs | PmtCanRs | PmtInqRs | PmtAudRs |
PmtSyncRs |
PmtAuthAddRs | PmtAuthModRs | PmtAuthCanRs |
PmtAuthInqRs | PmtAuthAudRs |
PmtAuthSyncRs | RemitAddRs |
RemitModRs | RemitStatusModRs | RemitDelRs |
RemitInqRs | RemitAudRs |
RemitSyncRs | RecPmtAddRs | RecPmtModRs |
RecPmtCanRs |
RecPmtInqRs | RecPmtAudRs | RecPmtSyncRs)*)>
<!--
StdPayeeId aggregate -->
<!ELEMENT StdPayeeId (SPName , BillerNum )>
<!--
BillerNum Identifier -->
<!ELEMENT BillerNum %Identifier;>
<!ATTLIST
BillerNum %Type_Identifier; >
<!--
PayeeInfo aggregate -->
<!ELEMENT CustPayeeInfo (Name? , Nickname? , (StdPayeeId | FSPayee | XferPayee |
BillerPayee ) , BillingAcct? , DfltPmtInfo? )>
<!--
DfltPmtInfo aggregate -->
<!ELEMENT DfltPmtInfo ( (DepAcctIdFrom | CardAcctIdFrom )? ,
Category? , Memo )>
<!-- BillingAcct C-32 -->
<!ELEMENT
BillingAcct %C-32;>
<!ATTLIST BillingAcct %Type_C-32; >
<!-- FSPayee aggregate -->
<!ELEMENT
FSPayee (PostAddr , OrgContact
)>
<!-- BillerPayee aggregate -->
<!ELEMENT
BillerPayee (BillerId , BillerContact?
, HistRetentionDays? , BillerPayInfo? )>
<!--
HistRetentionDays Long -->
<!ELEMENT HistRetentionDays
%Long;>
<!ATTLIST HistRetentionDays
%Type_Long; >
<!-- XferPayee aggregate -->
<!ELEMENT
XferPayee (BankInfo? , DepAcctIdTo
)>
<!-- RemitInfo aggregate -->
<!ELEMENT
RemitInfo ( (CustPayeeId |
CustPayeeInfo ) , BillRefInfo? , BillId? , PmtId? , Memo? , BillingAcct? ,
CurAmt , PmtSummAmt* , InvoiceInfo* )>
<!-- PmtInfo Aggregate
-->
<!ELEMENT PmtInfo
(RemitInfo , (DepAcctIdFrom |
CardAcctIdFrom ) , Category? ,
(PmtPrcDt | DueDt ) , ImmediatePmt? )>
<!-- CustPayeeId
Identifier -->
<!ELEMENT CustPayeeId %Identifier;>
<!ATTLIST
CustPayeeId %Type_Identifier;
>
<!-- BillRefInfo NC-80 -->
<!ELEMENT BillRefInfo
%NC-80;>
<!ATTLIST BillRefInfo
%Type_NC-80; >
<!-- BillId UUID -->
<!ELEMENT
BillId %UUID;>
<!ATTLIST BillId
%Type_UUID; >
<!-- PmtSummAmt aggregate -->
<!ELEMENT
PmtSummAmt