<?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 (BillSummAmtId , CurAmt
)>
<!-- BillSummAmtId Identifier -->
<!ELEMENT
BillSummAmtId %Identifier;>
<!ATTLIST BillSummAmtId %Type_Identifier; >
<!-- PmtPrcDt
Date -->
<!ELEMENT PmtPrcDt %Date;>
<!ATTLIST
PmtPrcDt %Type_Date; >
<!--
ImmediatePmt Boolean -->
<!ELEMENT ImmediatePmt %Boolean;>
<!ATTLIST
ImmediatePmt %Type_Boolean; >
<!--
InvoiceInfo aggregate -->
<!ENTITY % INVOICEINFO "
(InvoiceNum
, TotalCurAmt
, PaidCurAmt?
, EffDt
, Desc?
, InvoiceVouchNum?
, LateFeeCurAmt?
,
InvoicePremium?
, Discount?
, InvoiceAdj?
, InvoiceLineItem* )">
<!ELEMENT
InvoiceInfo %INVOICEINFO;>
<!-- InvoiceNum C-32 -->
<!ELEMENT
InvoiceNum %C-32;>
<!ATTLIST InvoiceNum %Type_C-32; >
<!-- TotalCurAmt Currency Amount
-->
<!ELEMENT TotalCurAmt %CURRENCYAMOUNT;>
<!--
PaidCurAmt Currency Amount -->
<!ELEMENT PaidCurAmt
%CURRENCYAMOUNT;>
<!-- InvoiceVouchNum C-80 -->
<!ELEMENT
InvoiceVouchNum %C-80;>
<!ATTLIST InvoiceVouchNum %Type_C-80; >
<!-- LateFeeCurAmt
Currency Amount -->
<!ELEMENT LateFeeCurAmt
%CURRENCYAMOUNT;>
<!-- InvoicePremium Decimal -->
<!ELEMENT
InvoicePremium %Decimal;>
<!ATTLIST InvoicePremium %Type_Decimal; >
<!-- Discount
aggregate -->
<!ELEMENT Discount
( (Rate | CurAmt ) , EffDt? , Desc )>
<!-- InvoiceAdj
aggregate -->
<!ELEMENT InvoiceAdj
(InvoiceAdjNum? , CurAmt , EffDt? , Desc? )>
<!--
InvoiceAdjNum C-32 -->
<!ELEMENT InvoiceAdjNum %C-32;>
<!ATTLIST
InvoiceAdjNum %Type_C-32; >
<!--
InvoiceLineItem aggregate -->
<!ELEMENT InvoiceLineItem (InvoiceLineItemNum? , CurAmt , Desc?
)>
<!-- InvoiceLineItemNum C-12 -->
<!ELEMENT
InvoiceLineItemNum %C-12;>
<!ATTLIST InvoiceLineItemNum %Type_C-12; >
<!-- PmtStatus
aggregate -->
<!ELEMENT PmtStatus
(PmtStatusCode , EffDt , PmtAuthId? , RemitId? , RecPmtMod? ,
PmtAuthCount? , PmtMethod? , ChkNum? , Memo? )>
<!--
PmtStatusCode Closed Enum -->
<!ELEMENT PmtStatusCode (#PCDATA )>
<!ATTLIST
PmtStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
PmtStatusCode #Enum("TODO", "TODO")-->
<!--
ChkClrDt Date -->
<!ELEMENT ChkClrDt %Date;>
<!ATTLIST
ChkClrDt %Type_Date; >
<!--
PmtAuthId Identifier -->
<!ELEMENT PmtAuthId %Identifier;>
<!ATTLIST
PmtAuthId %Type_Identifier; >
<!--
RecPmtMod Boolean -->
<!ELEMENT RecPmtMod %Boolean;>
<!ATTLIST
RecPmtMod %Type_Boolean; >
<!--
PmtAuthCount Long -->
<!ELEMENT PmtAuthCount %Long;>
<!ATTLIST
PmtAuthCount %Type_Long; >
<!--
PmtMethod Open Enum -->
<!ELEMENT PmtMethod %OpenEnum;>
<!ATTLIST
PmtMethod %Type_OpenEnum; >
<!--
StdPayeeInq Request -->
<!ELEMENT StdPayeeInqRq (RqUID , CustId? , RecCtrlIn? , StdPayeeId? ,
Name* , BillingAcct* , PostalCode* , IndustId* )>
<!--
StdPayeeInq Response -->
<!ELEMENT StdPayeeInqRs (Status , RqUID , CustId? , (RecCtrlOut? , StdPayeeId? , Name* ,
BillingAcct* , PostalCode* , IndustId* , StdPayeeRec* )? )>
<!--
StdPayeeRec aggregate -->
<!ELEMENT StdPayeeRec (StdPayeeId , StdPayeeInfo )>
<!--
DaysToPay Long -->
<!ELEMENT DaysToPay %Long;>
<!ATTLIST
DaysToPay %Type_Long; >
<!--
CustPayeeAdd Request -->
<!ELEMENT CustPayeeAddRq (RqUID , CustId? , CustPayeeInfo )>
<!--
CustPayeeAdd Response -->
<!ELEMENT CustPayeeAddRs (Status , RqUID , CustId? , (CustPayeeInfo , CustPayeeRec , CSPRefId? ,
SPRefId? )? )>
<!-- CustPayeeRec aggregate -->
<!ELEMENT
CustPayeeRec (CustPayeeId ,
CustPayeeInfo? , BillerContact? , DaysToPay )>
<!--
CustPayeeMod Request -->
<!ELEMENT CustPayeeModRq (RqUID , CustId? , CustPayeeId ,
CustPayeeInfo , ModPending )>
<!-- CustPayeeMod Response
-->
<!ELEMENT CustPayeeModRs
(Status , RqUID , CustId? ,
(CustPayeeId , CustPayeeInfo , ModPending? , CustPayeeRec , CSPRefId? ,
SPRefId? )? )>
<!-- CustPayeeDel Request -->
<!ELEMENT
CustPayeeDelRq (RqUID , CustId? ,
CustPayeeId , CascadeDel? )>
<!-- CustPayeeDel Response
-->
<!ELEMENT CustPayeeDelRs
(Status , RqUID , CustId? ,
(CustPayeeId , CascadeDel? , DependentType* , CSPRefId? , SPRefId? )?
)>
<!-- CustPayeeInq Request -->
<!ELEMENT
CustPayeeInqRq (RqUID , CustId? ,
RecCtrlIn? , DeliveryMethod? , CustPayeeId , PayeeType* , Name* , Nickname* ,
IncToken? )>
<!-- CustPayeeInq Response -->
<!ELEMENT
CustPayeeInqRs (Status , RqUID ,
CustId? , (RecCtrlOut? ,
DeliveryMethod? , CustPayeeId , PayeeType* , Name* , Nickname* , CustPayeeRec*
, IncToken? )? )>
<!-- CustPayeeAud Request -->
<!ELEMENT
CustPayeeAudRq (RqUID , CustId? ,
RecCtrlIn? , SelRangeDt? , Method? , CustPayeeId? )>
<!--
CustPayeeAud Response -->
<!ELEMENT CustPayeeAudRs (Status , RqUID , CustId? , (RecCtrlOut? , SelRangeDt? , Method? ,
CustPayeeId , CustPayeeMsgRec* )? )>
<!-- CustPayeeMsgRec
aggregate -->
<!ELEMENT CustPayeeMsgRec (CustId? , MsgRecDt? ,
(CustPayeeAddRs | CustPayeeModRs | CustPayeeDelRs ) )>
<!--
CustPayeeSync Request -->
<!ELEMENT CustPayeeSyncRq (RqUID , CustId? , RecCtrlIn? , Token
)>
<!-- CustPayeeSync Response -->
<!ELEMENT
CustPayeeSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
CustPayeeMsgRec* )? )>
<!-- PayeeTypeMod Request -->
<!ELEMENT
CustPayeeTypeModRq (RqUID , CustId? ,
CustPayeeId , PayeeType )>
<!-- PayeeType Closed Enum
-->
<!ELEMENT PayeeType
(#PCDATA )>
<!ATTLIST PayeeType dt:type
NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
PayeeType #Enum("TODO", "TODO")-->
<!--
PayeeTypeMod Response -->
<!ELEMENT CustPayeeTypeModRs (Status , RqUID , CustId? , CustPayeeId , PayeeType
, CSPRefId? , SPRefId? )>
<!-- PmtAdd Request -->
<!ELEMENT
PmtAddRq (RqUID , CustId? , PmtInfo ,
DupChkOverride )>
<!-- PmtAdd Response -->
<!ELEMENT
PmtAddRs (Status , RqUID , CustId?
, (PmtInfo , DupChkOverride , PmtRec ,
CSPRefId? , SPRefId? )? )>
<!-- PmtRec aggregate -->
<!ELEMENT
PmtRec (PmtId , RecPmtId? , PmtInfo ,
PmtStatus , PmtRemitName? , PmtRemitAddr? , CreatedDt? , (OrigPmtPrcDt | OrigPmtDueDt )? ,
FIDebitTrcNum? , FICreditTrcNum? , CSPRefId? , SPRefId? , ClientApp?
)>
<!-- CreatedDt Date -->
<!ELEMENT CreatedDt
%Date;>
<!ATTLIST CreatedDt
%Type_Date; >
<!-- OrigPmtPrcDt Date -->
<!ELEMENT
OrigPmtPrcDt %Date;>
<!ATTLIST OrigPmtPrcDt %Type_Date; >
<!-- OrigPmtDueDt
Date -->
<!ELEMENT OrigPmtDueDt %Date;>
<!ATTLIST
OrigPmtDueDt %Type_Date; >
<!--
FIDebitTrcNum NC-8 -->
<!ELEMENT FIDebitTrcNum %NC-8;>
<!ATTLIST
FIDebitTrcNum %Type_NC-8; >
<!--
FICreditTrcNum NC-8 -->
<!ELEMENT FICreditTrcNum %NC-8;>
<!ATTLIST
FICreditTrcNum %Type_NC-8; >
<!--
PmtMod Request -->
<!ELEMENT PmtModRq (RqUID , CustId? , PmtId , PmtInfo , UpdatePayee? ,
DupChkOverride? )>
<!-- UpdatePayee Boolean -->
<!ELEMENT
UpdatePayee %Boolean;>
<!ATTLIST UpdatePayee %Type_Boolean; >
<!-- PmtMod
Response -->
<!ELEMENT PmtModRs
(Status , RqUID , CustId? , (PmtId
, PmtInfo , UpdatePayee? , DupChkOverride? , PmtRec , CSPRefId? , SPRefId? )?
)>
<!-- PmtStatusMod Request -->
<!ELEMENT
PmtStatusModRq (RqUID , CustId? , PmtId
, PmtStatus )>
<!-- PmtStatusMod Response -->
<!ELEMENT
PmtStatusModRs (Status , RqUID ,
CustId? , (PmtId , PmtStatus ,
CSPRefId? , SPRefId? )? )>
<!-- PmtCan Request -->
<!ELEMENT
PmtCanRq (RqUID , CustId? , PmtId
)>
<!-- PmtCan Response -->
<!ELEMENT PmtCanRs (Status , RqUID , CustId? , (PmtId , CSPRefId? , SPRefId? )? )>
<!--
PmtInq Request -->
<!ELEMENT PmtInqRq (RqUID , CustId? , RecCtrlIn? , PmtType* , PmtId , RecPmtId*
, (DepAcctIdFrom | CardAcctIdFrom )? ,
Category* , Memo* , ChkNum* , ChkClrDt* , FIDebitTrcNum* , FICreditTrcNum* ,
PmtMethod* , CustPayeeId* , BillingAcct* , Name* , StdPayeeId* , Nickname* ,
PmtStatusCode* , SelRangeDueDt? , SelRangePrcDt? , SelRangeCurAmt? , LastNRec?
, DeliveryMethod? , CSPRefId* , SPRefId* , IncToken? , IncHistory? )>
<!--
LastNRec Long -->
<!ELEMENT LastNRec %Long;>
<!ATTLIST
LastNRec %Type_Long; >
<!--
PmtInq Response -->
<!ELEMENT PmtInqRs (Status , RqUID , CustId? ,
(RecCtrlOut? , PmtType* , PmtId , RecPmtId* , (DepAcctIdFrom | CardAcctIdFrom )? , Category* , Memo* , ChkNum*
, ChkClrDt* , FIDebitTrcNum* , FICreditTrcNum* , PmtMethod* , CustPayeeId* ,
BillingAcct* , Name* , StdPayeeId* , Nickname* , PmtStatusCode* ,
SelRangeDueDt? , SelRangePrcDt? , SelRangeCurAmt? , LastNRec? , DeliveryMethod?
, CSPRefId* , SPRefId* , IncToken? , IncHistory? , PmtRec* , Token? )?
)>
<!-- PmtType Closed Enum -->
<!ELEMENT
PmtType (#PCDATA )>
<!ATTLIST
PmtType dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY % PmtType
#Enum("TODO", "TODO") -->
<!-- IncHistory
Boolean -->
<!ELEMENT IncHistory %Boolean;>
<!ATTLIST
IncHistory %Type_Boolean; >
<!--
PmtAud Request -->
<!ELEMENT PmtAudRq (RqUID , CustId? , RecCtrlIn? , SelRangeDt? , Method? , PmtId?
)>
<!-- PmtAud Response -->
<!ELEMENT PmtAudRs (Status , RqUID , CustId? , (RecCtrlOut? , SelRangeDt? , Method? ,
PmtId? , PmtMsgRec* )? )>
<!-- PmtMsgRec aggregate
-->
<!ELEMENT PmtMsgRec
(CustId? , MsgRecDt? , (PmtAddRs
| PmtModRs | PmtCanRs ) )>
<!-- PmtSync Request -->
<!ELEMENT
PmtSyncRq (RqUID , CustId? , RecCtrlIn?
, Token )>
<!-- PmtSync Response -->
<!ELEMENT
PmtSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
PmtMsgRec* )? )>
<!-- PmtAuthAdd Request -->
<!ELEMENT
PmtAuthAddRq (RqUID , CustId? ,
PmtAuthInfo )>
<!-- PmtAuthInfo aggregate -->
<!ELEMENT
PmtAuthInfo ( (DepAcctIdFrom |
CardAcctIdFrom ) , CurAmt , Name )>
<!-- PmtAuthAdd Response
-->
<!ELEMENT PmtAuthAddRs
(Status , RqUID , CustId? ,
(PmtAuthInfo , PmtAuthRec )? )>
<!-- PmtAuthRec
aggregate -->
<!ELEMENT PmtAuthRec
(PmtAuthId , PmtAuthInfo , PmtAuthStatus )>
<!--
PmtAuthStatus aggregate -->
<!ELEMENT PmtAuthStatus (PmtAuthStatusCode , EffDt , StatusModBy?
)>
<!-- PmtAuthStatusCode aggregate -->
<!ELEMENT
PmtAuthStatusCode (EffDt , StatusModBy?
)>
<!-- PmtAuthMod Request -->
<!ELEMENT PmtAuthModRq (RqUID , CustId? , PmtAuthId , PmtAuthInfo
)>
<!-- PmtAuthMod Response -->
<!ELEMENT
PmtAuthModRs (Status , RqUID , CustId?
, (PmtAuthId , PmtAuthInfo , PmtAuthRec
)? )>
<!-- PmtAuthCan Request -->
<!ELEMENT
PmtAuthCanRq (RqUID , CustId? ,
PmtAuthId )>
<!-- PmtAuthCan Response -->
<!ELEMENT
PmtAuthCanRs (Status , RqUID , CustId?
, (PmtAuthId , CurAmt* , PmtInst* )?
)>
<!-- PmtAuthInq Request -->
<!ELEMENT
PmtAuthInqRq (RqUID , CustId? ,
PmtAuthId , CurAmt* , PmtInst* , SelRangeDt? )>
<!--
PmtAuthInq Response -->
<!ELEMENT PmtAuthInqRs (Status , RqUID , CustId? , (PmtAuthId , CurAmt* , PmtInst* ,
SelRangeDt? , PmtAuthRec* )? )>
<!-- PmtAuthAud Request
-->
<!ELEMENT PmtAuthAudRq
(RqUID , CustId? , RecCtrlIn? , SelRangeDt? , Method? , PmtAuthId
)>
<!-- PmtAuthAud Response -->
<!ELEMENT
PmtAuthAudRs (Status , RqUID , CustId?
, (RecCtrlOut? , SelRangeDt? , Method?
, PmtAuthId , PmtAuthMsgRec* )? )>
<!-- PmtAuthMsgRec
aggregate -->
<!ELEMENT PmtAuthMsgRec (CustId? , MsgRecDt? ,
(PmtAuthAddRs | PmtAuthModRs | PmtAuthCanRs ) )>
<!--
PmtAuthSync Request -->
<!ELEMENT PmtAuthSyncRq (RqUID , CustId? , RecCtrlIn? , Token
)>
<!-- PmtAuthSync Response -->
<!ELEMENT
PmtAuthSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
PmtAuthMsgRec* )? )>
<!-- RemitAdd Request -->
<!ELEMENT
RemitAddRq (RqUID , CustId? , EffDt ,
PmtId? , RemitInfo , DupChkOverride? )>
<!-- RemitAdd Response
-->
<!ELEMENT RemitAddRs
(Status , RqUID , CustId? ,
(EffDt , PmtId? , RemitInfo , DupChkOverride? , RemitRec , SPRefId? )?
)>
<!--RemitRec aggregate -->
<!ELEMENT
RemitRec (RemitId , RemitInfo ,
RemitStatus )>
<!-- RemitId Identifier -->
<!ELEMENT
RemitId %Identifier;>
<!ATTLIST RemitId %Type_Identifier; >
<!--RemitStatus aggregate
-->
<!ELEMENT RemitStatus
(RemitStatusCode , EffDt , Memo? )>
<!--
RemitStatusCode Closed Enum -->
<!ELEMENT RemitStatusCode (#PCDATA )>
<!ATTLIST
RemitStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'TO DO' >
<!--#ENTITY %
RemitStatusCode #Enum("TODO", "TODO")-->
<!--
RemitMod Request -->
<!ELEMENT RemitModRq (RqUID , CustId? , RemitId , EffDt , PmtId? , RemitInfo ,
DupChkOverride? )>
<!-- RemitMod Response -->
<!ELEMENT
RemitModRs (Status , RqUID , CustId?
, (EffDt , PmtId? , RemitId , RemitInfo
, DupChkOverride? , RemitRec , SPRefId? )? )>
<!-- RemitDel
Request -->
<!ELEMENT RemitDelRq
(RqUID , CustId? , RemitId )>
<!-- RemitDel Response
-->
<!ELEMENT RemitDelRs
(Status , RqUID , CustId? ,
(RemitId , SPRefId? )? )>
<!-- RemitInq Request
-->
<!ELEMENT RemitInqRq
(RqUID , CustId? , RemitId* , CurAmt* , SelRangeDt? )>
<!--
RemitInq Response -->
<!ELEMENT RemitInqRs (Status , RqUID , CustId? ,
(RemitId* , CurAmt* , SelRangeDt? , RemitRec )? )>
<!--
RemitAud Request -->
<!ELEMENT RemitAudRq (RqUID , CustId? , RecCtrlIn? , SelRangeDt? , Method? , RemitId?
)>
<!-- RemitAud Response -->
<!ELEMENT
RemitAudRs (Status , RqUID , CustId?
, (RecCtrlOut? , SelRangeDt? , RemitId*
, RemitMsgRec* )? )>
<!-- RemitMsgRec aggregate -->
<!ELEMENT
RemitMsgRec (CustId? , MsgRecDt? , (RemitAddRs | RemitModRs | RemitDelRs )
)>
<!-- RemitSync Request -->
<!ELEMENT
RemitSyncRq (RqUID , CustId? ,
RecCtrlIn? , Token )>
<!-- RemitSync Response -->
<!ELEMENT
RemitSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
RemitMsgRec* )? )>
<!-- RecPmtAdd Request -->
<!ELEMENT
RecPmtAddRq (RqUID , CustId? , PmtInfo
, RecModelInfo , DupChkOverride? )>
<!-- RecPmtAdd Response
-->
<!ELEMENT RecPmtAddRs
(Status , RqUID , CustId? ,
(PmtInfo , RecModelInfo , DupChkOverride? , RecPmtRec* , CSPRefId? ,
SPRefId? )? )>
<!-- RecPmtRec aggregate -->
<!ELEMENT
RecPmtRec (RecPmtId , PmtInfo ,
RecModelInfo , RemainingInsts )>
<!-- RecPmtId Identifier
-->
<!ELEMENT RecPmtId %Identifier;>
<!ATTLIST
RecPmtId %Type_Identifier; >
<!--
RecPmtMod Request -->
<!ELEMENT RecPmtModRq (RqUID , CustId? , RecPmtId , PmtInfo ,
RecModelInfo , ModPending? )>
<!-- RecPmtMod Response
-->
<!ELEMENT RecPmtModRs
(Status , RqUID , CustId? ,
(PmtInfo , RecModelInfo , DupChkOverride? , RecPmtRec* , CSPRefId? ,
SPRefId? )? )>
<!-- RecPmtCan Request -->
<!ELEMENT
RecPmtCanRq (RqUID , CustId? , RecPmtId
, CascadeDel? )>
<!-- RecPmtCan Response -->
<!ELEMENT
RecPmtCanRs (Status , RqUID , CustId?
, (RecPmtId , CascadeDel? , (RecPmtRec | DependentType+ ) , CSPRefId? ,
SPRefId? )? )>
<!-- RecPmtInq Request -->
<!ELEMENT
RecPmtInqRq (RqUID , CustId? ,
RecCtrlIn? , RecPmtId* , CustPayeeId* ,
(DepAcctIdFrom | CardAcctIdFrom )? , Category* , Memo* , BillingAcct* ,
SelRangeCurAmt? , CSPRefId* , SPRefId* , IncToken? )>
<!--
RecPmtInq Response -->
<!ELEMENT RecPmtInqRs (Status , RqUID , CustId? , (RecCtrlOut? , RecPmtId* , CustPayeeId*
, (DepAcctIdFrom | CardAcctIdFrom )? ,
Category* , Memo* , BillingAcct* , SelRangeCurAmt? , CSPRefId* , SPRefId* ,
RecPmtRec* , Token? )? )>
<!-- RecPmtAud Request -->
<!ELEMENT
RecPmtAudRq (RqUID , CustId? ,
RecCtrlIn? , SelRangeDt? , Method? , RecPmtId? )>
<!--
RecPmtAud Response -->
<!ELEMENT RecPmtAudRs (Status , RqUID , CustId? , (RecCtrlOut? , SelRangeDt? , Method? ,
RecPmtId? , RecPmtMsgRec* )? )>
<!-- RecPmtMsgRec aggregate
-->
<!ELEMENT RecPmtMsgRec
(CustId? , MsgRecDt? ,
(RecPmtAddRs | RecPmtModRs | RecPmtCanRs ) )>
<!--
RecPmtSync Request -->
<!ELEMENT RecPmtSyncRq (RqUID , CustId? , RecCtrlIn? , Token
)>
<!-- RecPmtSync Response -->
<!ELEMENT
RecPmtSyncRs (Status , RqUID , CustId?
, (RecCtrlOut? , Token , NewToken ,
RecPmtMsgRec* )? )>
<!-- PaySvcProfInfo aggregate -->
<!--
XXX BankAcctFromProf renamed to DepAcctIdFromProf - bug in PR Draft
-->
<!-- XXX BankAcctToProf renamed to DepAcctIdToProf - bug in PR
Draft -->
<!ELEMENT PaySvcProfInfo
(SvcCore , MsgSupt+ , OptSupt* , PrcSched? , DepAcctIdFromProf ,
DepAcctIdToProf? , PmtModel , DfltDaysToPay , DfltXferDaysToPay , DaysWith ,
HistRetentionDays , DeliveryMethod* , ModPendingType , RecPmtProf? )>
<!--
PmtModel ClosedEnum -->
<!ELEMENT PmtModel (#PCDATA )>
<!ATTLIST PmtModel dt:type NMTOKEN #FIXED
'string'
dt:enumeration CDATA #FIXED 'DueDt PrcDt' >
<!--#ENTITY
% PmtModel #Enum("DueDt",
"PrcDt")-->
<!-- DfltXferDaysToPay Long -->
<!ELEMENT
DfltXferDaysToPay %Long;>
<!ATTLIST DfltXferDaysToPay %Type_Long; >
<!-- RecPmtProf
aggregate -->
<!ELEMENT RecPmtProf
(Freq* , ModPendingType )>
<!--
-->
<!-- Presentment Service Messages (Pres) -->
<!--
-->
<!ELEMENT PresSvcRq
(SPName? , RqUID , (BillerInqRq | BillInqRq |
BillStatusModRq)*)>
<!ELEMENT
PresSvcRs (Status , SPName? , RqUID ,
(BillerInqRs |
BillInqRs | BillStatusModRs)*)>
<!--
Presentment Service Common Aggregates -->
<!-- BillerId aggregate
-->
<!ELEMENT BillerId
(SPName , BillerNum )>
<!-- BillerRec aggregate -->
<!ELEMENT
BillerRec (BillerId+ , BillerInfo ,
BillerStatus? , BSPReferTo? )>
<!-- BillerInfo aggregate
-->
<!-- XXX edu: Why is there an AND for SecretPrompt, CryptType
-->
<!ELEMENT BillerInfo
(Name , BillerContact? , IndustId? , (SecretPrompt, CryptType)*,
HistRetentionDays? , CSPCustInfoReq? , BillerPayInfo? , LogoURL? , Logo? ,
BillerEnrollURL? , BillerAcctIdInfo? , DiscReqd? , DiscDt? , OptSupt*
)>
<!--CSPCustInfoReq Boolean -->
<!ELEMENT
CSPCustInfoReq %Boolean;>
<!ATTLIST CSPCustInfoReq %Type_Boolean; >
<!--LogoURL URL
-->
<!ELEMENT LogoURL %URL;>
<!ATTLIST LogoURL %Type_URL; >
<!--Logo Binary
-->
<!ELEMENT Logo %Binary;>
<!ATTLIST Logo %Type_Binary; >
<!--BillerEnrollURL
URL -->
<!ELEMENT BillerEnrollURL %URL;>
<!ATTLIST
BillerEnrollURL %Type_URL; >
<!--DiscReqd
Boolean -->
<!ELEMENT DiscReqd %Boolean;>
<!ATTLIST
DiscReqd %Type_Boolean; >
<!--DiscDt
Date -->
<!ELEMENT DiscDt %Date;>
<!ATTLIST DiscDt %Type_Date; >
<!-- BillerStatus
aggregate -->
<!ELEMENT BillerStatus (BillerStatusCode , EffDt? , StatusModBy? , Memo? )>
<!--
BillerStatusCode ClosedEnum -->
<!ELEMENT BillerStatusCode (#PCDATA )>
<!ATTLIST
BillerStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'Available
Deleted Delpend' >
<!-- #ENTITY
% BillerStatusCode
#Enum("Available", "Deleted",
"Delpend")-->
<!-- BSPReferTo aggregate -->
<!ELEMENT
BSPReferTo (SPName? , OrgContact?
)>
<!-- BillerAcctIdInfo aggregate -->
<!ELEMENT
BillerAcctIdInfo (AcctFormat? ,
AcctMask* , AcctHelpMsg? , AcctRestrictMsg? , AcctValidateURL? )>
<!--AcctFormat
NC-1024 -->
<!ELEMENT AcctFormat %NC-1024;>
<!ATTLIST
AcctFormat %Type_NC-1024; >
<!--
XXX Typo in PR Draft. AcctMask should
be NC-32, according to -->
<!-- section 3.1.1 -->
<!--AcctMask
C-32 -->
<!-- ELEMENT AcctMask
%C-32; -->
<!-- ATTLIST AcctMask %Type_C-32; -->
<!--AcctHelpMsg C-Infinite
-->
<!ELEMENT AcctHelpMsg %C-Infinite;>
<!ATTLIST
AcctHelpMsg %Type_C-Infinite;
>
<!--AcctRestrictMsg C-1024 -->
<!ELEMENT
AcctRestrictMsg %C-1024;>
<!ATTLIST AcctRestrictMsg %Type_C-1024; >
<!--AcctValidateURL
URL -->
<!ELEMENT AcctValidateURL %URL;>
<!ATTLIST
AcctValidateURL %Type_URL; >
<!--Bill
Status Aggregate -->
<!ELEMENT BillStatus (BillStatusCode , EffDt? , StatusModBy? , Memo? )>
<!--BillStatusCode
Open Enum -->
<!ELEMENT BillStatusCode %OpenEnum;>
<!ATTLIST
BillStatusCode %Type_OpenEnum;
>
<!-- BillPmtStatus aggregate -->
<!ELEMENT
BillPmtStatus (PmtId? ,
BillPmtStatusCode , EffDt? , StatusModBy? , Memo? )>
<!--
BillPmtStatusCode Open Enum -->
<!ELEMENT BillPmtStatusCode
%OpenEnum;>
<!ATTLIST BillPmtStatusCode %Type_OpenEnum; >
<!-- PresAcctId aggregate
-->
<!ENTITY % PRESACCTID " (BillingAcct
, BillerId
)">
<!ELEMENT PresAcctId %PRESACCTID;>
<!--
BillRec aggregate -->
<!ELEMENT BillRec (BillId , BillInfo , BillStatus? , BillPmtStatus? )>
<!--
BillInfo aggregate -->
<!ELEMENT BillInfo (BillType , PresAcctId , Memo? , BillSummAmt* , PmtDueDt? ,
BillDt , OpenDt? , CloseDt? , PmtInst* , NotifyReqd , MustViewDtlToPay? ,
StmtImage? , BillRefInfo? )>
<!-- BillType Open Enum
-->
<!ELEMENT BillType %OpenEnum;>
<!ATTLIST
BillType %Type_OpenEnum; >
<!--
BillSummAmt aggregate -->
<!ELEMENT BillSummAmt (BillSummAmtId? , BillSummAmtCode? ,
ShortDesc , Desc? , Memo? , CurAmt , BillSummAmtType , BillSummSubAmt*
)>
<!-- BillSummSubAmt aggregate -->
<!ELEMENT
BillSummSubAmt (BillSummAmtId ,
ShortDesc , Desc? , Memo? , CurAmt , AllocateAllowed? )>
<!--
BillDt Date -->
<!ELEMENT BillDt %Date;>
<!ATTLIST
BillDt %Type_Date; >
<!--
OpenDt Date -->
<!ELEMENT OpenDt %Date;>
<!ATTLIST
OpenDt %Type_Date; >
<!--
CloseDt Date -->
<!ELEMENT CloseDt %Date;>
<!ATTLIST
CloseDt %Type_Date; >
<!--
NotifyReqd Boolean -->
<!ELEMENT NotifyReqd %Boolean;>
<!ATTLIST
NotifyReqd %Type_Boolean; >
<!--
MustViewDtlToPay Boolean -->
<!ELEMENT MustViewDtlToPay
%Boolean;>
<!ATTLIST MustViewDtlToPay %Type_Boolean; >
<!-- BillSummAmtCode Open Enum
-->
<!ELEMENT BillSummAmtCode %OpenEnum;>
<!ATTLIST BillSummAmtCode %Type_OpenEnum; >
<!-- ShortDesc
C-15 -->
<!ELEMENT ShortDesc %C-15;>
<!ATTLIST
ShortDesc %Type_C-15; >
<!--
BillSummAmtType Closed Enum -->
<!ELEMENT BillSummAmtType (#PCDATA )>
<!ATTLIST
BillSummAmtType dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'Payable Supplemental InfoOnly'
>
<!--#ENTITY % BillSummAmtType
#Enum("Payable", "Supplemental",
"InfoOnly")-->
<!-- AllocateAllowed Boolean -->
<!ELEMENT
AllocateAllowed %Boolean;>
<!ATTLIST AllocateAllowed %Type_Boolean; >
<!-- StmtImage
aggregate -->
<!ELEMENT StmtImage
(ImageURL , PrefetchURL* , ExpDt? )>
<!-- ImageURL URL
-->
<!ELEMENT ImageURL %URL;>
<!ATTLIST ImageURL %Type_URL; >
<!-- PrefetchURL URL
-->
<!ELEMENT PrefetchURL %URL;>
<!ATTLIST
PrefetchURL %Type_URL; >
<!--
BillerInqRq aggregate -->
<!ELEMENT BillerInqRq (RqUID , CustId? , RecCtrlIn? , BillerId* ,
Name* , PostAddr* , Phone* , PostalCode* , UpDt? , IndustId* ,
IncBillerContact? , IncImages? )>
<!-- IncBillerContact
Boolean -->
<!ELEMENT IncBillerContact %Boolean;>
<!ATTLIST
IncBillerContact %Type_Boolean;
>
<!-- IncImages Boolean -->
<!ELEMENT IncImages
%Boolean;>
<!ATTLIST IncImages
%Type_Boolean; >
<!-- BillerInqRs aggregate -->
<!ELEMENT
BillerInqRs (Status , RqUID , CustId? ,
RecCtrlOut? , BillerId* , Name* , PostAddr* , Phone* , PostalCode* , UpDt? ,
IndustId* , IncBillerContact? , IncImages? , IncBillerContact? , IncImages? ,
NewUpDt? , BillerRec* )>
<!-- NewBillerDirDt TimeStamp
-->
<!ELEMENT NewUpDt %TimeStamp;>
<!ATTLIST NewUpDt %Type_TimeStamp; >
<!-- BillInqRq
Aggregate -->
<!ELEMENT BillInqRq
(RqUID , CustId? , RecCtrlIn? , SPName , SelRangeDt? , BillId* ,
BillerId* , BillType* , BillStatusCode* , BillPmtStatusCode* , NotifyWilling? ,
IncCounts? , IncSummary? )>
<!-- NotifyWilling Boolean
-->
<!ELEMENT NotifyWilling %Boolean;>
<!ATTLIST
NotifyWilling %Type_Boolean; >
<!--
IncCounts Boolean -->
<!ELEMENT IncCounts %Boolean;>
<!ATTLIST
IncCounts %Type_Boolean; >
<!--
IncSummary Boolean -->
<!ELEMENT IncSummary %Boolean;>
<!ATTLIST
IncSummary %Type_Boolean; >
<!--
BillInqRs Aggregate -->
<!ELEMENT BillInqRs (Status , RqUID , CustId? , (RecCtrlOut? , SelRangeDt? , BillId* ,
BillerId* , BillStatusCode* , BillPmtStatusCode* , NotifyWilling? , IncCounts?
, IncSummary? , BillRec* , BillCounts* )? )>
<!-- BillCounts
Aggregate -->
<!ELEMENT BillCounts
(BillStatusCounts* , BillPmtStatusCounts* )>
<!--
BillStatusCounts Aggregate -->
<!ELEMENT BillStatusCounts (BillStatusCode , Count )>
<!--
BillPmtStatusCounts Aggregate -->
<!ELEMENT BillPmtStatusCounts (BillPmtStatusCode , Count )>
<!--
BillStatusModeRq Aggregate -->
<!ELEMENT BillStatusModRq (RqUID , CustId? , BillId , (BillStatus | BillPmtStatus | (BillStatus , BillPmtStatus ) ) )>
<!--
BillStatusModRs Aggregate -->
<!ELEMENT BillStatusModRs (Status , RqUID , CustId? , (BillId ,
(BillStatus | BillPmtStatus |
(BillStatus , BillPmtStatus ) ) , CSPRefId? , SPRefId? )? )>
<!--
PresSvcProfInfo aggregate -->
<!ELEMENT PresSvcProfInfo (SvcCore , MsgSupt+ , OptSupt* , PrcSched?
)>
<!-- BankAcctStatusCode ClosedEnum -->
<!ELEMENT
BankAcctStatusCode (#PCDATA )>
<!ATTLIST
BankAcctStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration CDATA #FIXED 'Open Closed Inactive NotAvail'
>
<!ELEMENT PresAcctRec
(PresAcctId , PresAcctInfo , PresAcctStatus? )>
<!ELEMENT
PresAcctInfo (StdPayeeId? )>
<!ELEMENT
PresAcctStatus (PresAcctStatusCode ,
StatusDesc? , EffDt? , StatusModBy? )>
<!-- PresAcctStatusCode
ClosedEnum-->
<!ELEMENT PresAcctStatusCode (#PCDATA )>
<!ATTLIST PresAcctStatusCode dt:type NMTOKEN #FIXED
'string'
dt:enumeration CDATA #FIXED
'Open Closed Inactive NotAvail' >
<!-- ENTITY %
PresAcctStatusCode #Enum("Open",
"Closed", "Inactive", "NotAvail")-->
<!ELEMENT
ChkOrdRec (ChkOrdId , ChkOrdInfo ,
ChkOrdStatus )>
<!-- ChkOrdId Identifier -->
<!ELEMENT
ChkOrdId %Identifier;>
<!ATTLIST ChkOrdId %Type_Identifier; >
<!ELEMENT ChkOrdInfo ( (DepAcctId | CardAcctId | LoanAcctId ) ,
ChkPrint? , ShipTo? , Count? , ChkNumStart? , ChkBkStyleId? , DeliveryMethod?
)>
<!ELEMENT ChkOrdStatus
(ChkOrdStatusCode )>
<!-- ChkOrdStatusCode Open Enum
-->
<!ELEMENT ChkOrdStatusCode %OpenEnum;>
<!ATTLIST
ChkOrdStatusCode %Type_OpenEnum;
>
<!ELEMENT DepBkOrdRec
(DepBkOrdId , DepBkOrdInfo , DepBkOrdStatus )>
<!--
DepBkOrdId Identifier -->
<!ELEMENT DepBkOrdId
%Identifier;>
<!ATTLIST DepBkOrdId
%Type_Identifier; >
<!ELEMENT DepBkOrdInfo (DepAcctId , Count? , DepBkStyleId? ,
DeliveryMethod? )>
<!ELEMENT DepBkOrdStatus (DepBkOrdStatusCode , EffDt , StatusModBy?
)>
<!-- DepBkOrdStatusCode ClosedEnum-->
<!ELEMENT
DepBkOrdStatusCode (#PCDATA )>
<!ATTLIST
DepBkOrdStatusCode dt:type NMTOKEN #FIXED 'string'
dt:enumeration
CDATA #FIXED 'TO DO' >
<!ELEMENT
StdPayeeInfo (Name? , PostAddr? ,
AcctMask* , IndustId? , DaysToPay )>
<!-- PmtRemitName C-40
-->
<!ELEMENT PmtRemitName %C-40;>
<!ATTLIST
PmtRemitName %Type_C-40; >
<!--
PmtRemitAddr aggregate -->
<!ELEMENT PmtRemitAddr
%ADDRESS;>
<!ELEMENT RemitStatusModRq (RqUID , CustId? , RemitId , RemitStatus
)>
<!ELEMENT RemitStatusModRs
(Status , RqUID , CustId? , PmtId , RemitStatus , CSPRefId? , SPRefId?
)>