arapXML 
Home  XML Schema OMG submission Use Cases Discussion  Requirements Research About arapXML
Overview of adfst.dtd Format For General Ledger Data Transfer, created by Eric Cohen 1999

(Note: the schema and documentation was formerly hosted on www.computerCPA.com but is not on the Internet anymore. The usenet discussion came from alt.accounting, and the diagrams of the DTD from XMLauthority.)


(Usenet announcement and discussion:)

From: "Eric E. Cohen" <cybercpa@sprynet.com>
Newsgroups: comp.text.xml,microsoft.public.xml
Subject: Accounting Data and Financial Statement Transfer - adfst
Date: Fri, 18 Jun 1999 08:27:21 -0400

PROJECT - An Industry Standard Format For General Ledger Data Transfer

I am working on a XML structure to facilitate the movement of accounting
(general ledger) information between disparate systems and between
organizations. The prototype is called "Accounting Data and Financial
Statement Transfer" - ADFST - or AddFast!.

PURPOSE - Where This Standard Can Be Used

If everyone that exports or imports general ledger data could agree on a
common data structure, then data transfer between disparate systems and
between organization would be relatively simple. Accounting software,
e-commerce systems, manufacturing systems, point of sale systems, payroll
systems and time clocks, spreadsheets, report writers, financial reporters,
executive information systems, OLAP and data mining systems, budget and
forecasting tools, and even banks and CPAs could send and receive general
ledger detail, budgets, and other accounting information with no concern
about the source or target applications or platforms.

This is designed to facilitate tasks such as:

- taking the entries from a e-commerce system to post into a backoffice
general ledger
- getting information from a payroll provider so it can automatically feed
into a general ledger
- getting information from a business and being able to send it to a bank or
a CPA without caring about the source or target application
- moving from a low-end accounting product to a higher-end accounting
product with a minimum of rekeying
- moving budgets seamlessly between and accounting product and a spreadsheet
or forecasting tool.

If the transfer of accounting information between systems and companies was
as simple as Export to AddFast! and Import from AddFast!, we would be on our
way to plug-and-play accounting.

NEED - This Standard Does Not Seem To Be Mentioned Elsewhere

I have seen various DTDs and schemas for various business aspects, like
sending invoices or material requests around, but have seen nothing to hit
general ledger transactions. I am also aware of the AICPA project for
financial statement representation, and the PWC Financial XML.

PROTOTYPE - AddFast! Project Location

The current DTD, sample file and design goals and notes are listed at
http://www.computercpa.com/xml2.html. I call it an "accounting data and
financial statement transfer" file - adfst or AddFast! for pronunciation
sake.

GENERAL LEDGER: Technical Background

A general ledger software product has a number of distinct "files". These
include at a minimum:

A chart of accounts
- with integrated or external account breaks (which range of accounts
count as current assets, which as revenues, which are non-financial, etc.)
- with integrated or external Financial statement layout instructions
Accounting periods
GL Detail - General ledger transactions (posted and unposted)
Budgets
Comparatives

REQUEST FOR DISCUSSION AND RECOMMENDATIONS

Question #1: The current prototype has one consolidated file to hold all of
these elements.

Does it make more sense to have each of the components in its own separate
file with its own DTD?
Does the DOM model promote a single or multiple files? How about XSL?
Are drill-downs easier from one file?
Will tools - current or in development - be better able to work with one
file?
Will large data file sizes (mostly from the detailed transaction history)
make breaking this up important?

Thanks!

Eric E. Cohen, CPA
Technology Coach, Cohen Computer Consulting, Rochester, NY USA
xml@computercpa.com

<ec />



========
From: tboyle@NoSMAProsehill.net (Todd Boyle)
Newsgroups: comp.text.xml
Subject: Re: Accounting Data and Financial Statement Transfer - adfst
Date: Sun, 20 Jun 1999 05:57:55 GMT


Hallalujah! somebody is taking the leadership on this.

>The current DTD, sample file and design goals and notes are listed at
>http://www.computercpa.com/xml2.html. I call it an "accounting data and
>financial statement transfer" file - adfst or AddFast! for pronunciation
>sake.

It would be awesome if this definition converges with OMG's General 
Ledger definitions http://www.omg.org/cgi-bin/doc?finance/99-02-02.pdf
Their terminology on page 9 seems old-fashioned, eg. "trans_id", 
"entry_id", "entry_date", etc. Maybe just use their tags instead of
yours wherever the meaning is the same. 

But more importantly, make sure the adfst standard includes everything
in OMG. I think you've covered almost all of it but can't be sure.

ALso if they assume a certain structure for header-detail rows then it 
would be scary if adfst was very much different, after all the companies 
that have been hammering out the OMG's standard. They seem to have
3 tables: "Transaction" and "Transaction Info" are the header table and
"Entry" is the rows.

-------------

On my MSIE5 5.00.2314, when I click on "The ADFST Design Goals .9 " I cannot
view them. I get error message:

The XML page cannot be displayed 
Cannot view XML input using XSL style sheet. Please correct the error
and then click the Refresh button, or try again later. 

The character '<' cannot be used in an attribute value. Line 122, Position 1 
<document-type type="bandersnatch">

ALSO, on line 115 you show

<document-type type="account-break>

which appears to lack a closing quote. after I fixed that, it still
won't load but displays the following

End tag 'example' does not match the start tag 'document-type'. 
Line 126, Position 3 
</example>

The only thing that seemed to work was to delete EVERY line with
tag <document-type type="(all five of them)"> Maybe you're not
allowed to nest <document-type type> tags inside user defined tags? 


>GENERAL LEDGER: Technical Background
>
>A general ledger software product has a number of distinct "files". These
>include at a minimum:
>
>A chart of accounts
> - with integrated or external account breaks (which range of accounts
>count as current assets, which as revenues, which are non-financial, etc.)
> - with integrated or external Financial statement layout instructions
>Accounting periods
>GL Detail - General ledger transactions (posted and unposted)
>Budgets
>Comparatives

I am aware of a number of accounting packages that mark each account as 
belonging uniquely to Cash, Receivable, etc. categories and this truly
appears to be an essential fact in the "problem domain". 

But I do not believe an "integrated or external Financial statement layout
instructions" are an intrinsic part of a chart of accounts. 

I don't believe a general ledger must always contain Budgets or Comparatives. 
I agree they are useful and should be supported in the adfst standard though.


============================================
comments on the http://www.computercpa.com/xml/adfst.xml

<company-info>
<company-name>Hypothetical Corporation</company-name> 
<division>Programming Division</division> 
<branch>Velley Branch</branch> 
<office>Business Office</office> 
<department>Accounting department</department> 
</company-info>

I would like to also see CompanyID, DivisionID, BranchID, OfficeID,
and DepartmentID in the file. I'd use those a lot more easily than
the long names.

<creation-date year="1999" month="06" day="14" /> 

I think all dates should include optionally, timezone/hour/minute/second.
Can this be supported, without being required for all users?

<header>
<account-structure> ...

That's fine so far. Now, I think <account-definition> goes right after 
that, as another tag in the header. inside that is <account-ID>, 
<account-desc> and <account-type> having allowed values like Cash, 
Accounts Receivable, etc. Would this be an inappropriate place to stuff 
the chart of accounts?

<customer-vendor-employee /> 

I think these should be separate. Many transactions are associated
simultaneously with a particular customer, the employee associated with
the revenue or expense, and a particular vendor. It will be exceedingly
valuable to be able to carry these as distinct separate values.

I believe an add'l dimension that is extremely useful is <productID>.

Don't we need a provision in the <header> for <job-definition>, 
<job-definition>, <customer-definition>, <vendor-definition>, and 
<employee-definition>, just like the <account-definition>?


<check-invoice-document-number /> 

These should be separate, I think, also.

<document-type type="journal-entries">

Here is a minor point; it seems to me the generic term "transactions"
fits better here. It might be more widely understood and it would be
consistent with database lingo, i.e. here are rows which all must be
posted or none.

<recurring-entry>
<frequency/>

I wonder if you should include <interval> (YEAR,QTR,MONTH,WEEK)

<transaction>
<date year="1999" month="06" day="15" /> 

I think we need <date-executed/>, <date-posted/>, and <date-cashflow/> 
or something of that nature.

Somehow we have to make this thing support cash management, cash planning. 
We have to ensure this thing supports the cash flow statement, too.
a really important feature of many accounting software packages.


-----------------

Caveat: I am an accountant and not an XML expert. The above are
just my 2 cents worth and I hope they are helpful.

Thanks for all the work you did Eric! I hope this gets plenty of attention
and brings us closer to an Accounting XML standard! 

* Todd F. Boyle CPA http://www.GLDialtone.com/
* International Accounting Services LLC tboyle@rosehill.net
* 9745-128th Av NE, Kirkland WA 98033 (425) 827-3107
* XML Accounting Web ledger ASP netledger, web GL Dialtone, whatever.


========
From: "Eric E. Cohen" <cybercpa@sprynet.com>
Newsgroups: comp.text.xml
Subject: Re: Accounting Data and Financial Statement Transfer - adfst
Date: Sun, 20 Jun 1999 19:04:54 -0400

> >The current DTD, sample file and design goals and notes are listed at
> >http://www.computercpa.com/xml2.html. I call it an "accounting data and
> >financial statement transfer" file - adfst or AddFast! for pronunciation
> >sake.
>
> It would be awesome if this definition converges with OMG's General
> Ledger definitions http://www.omg.org/cgi-bin/doc?finance/99-02-02.pdf

I'll check it out. Why do you think this is important?
> On my MSIE5 5.00.2314, when I click on "The ADFST Design Goals .9 " I
cannot
> view them. I get error message:

Sorry. That's the peril of using MS Notepad (not even XML Notepad) as my
editing tool.
It's fixed and extended for the beginning of documentation.

> I am aware of a number of accounting packages that mark each account as
> belonging uniquely to Cash, Receivable, etc. categories and this truly
> appears to be an essential fact in the "problem domain".

I fleshed this out a bit more.

> But I do not believe an "integrated or external Financial statement layout
> instructions" are an intrinsic part of a chart of accounts.

Many accounting packages I am familiar with incorporate the financial
statement layout encoding right in their chart of accounts entry screen.

> I don't believe a general ledger must always contain Budgets or
Comparatives.
> I agree they are useful and should be supported in the adfst standard
though.

I am not aware of any accounting product costing more than $29.95 that does
not keep one budget and one year of comparative figures. Not saying it is
mandatory. Just saying it is there.

> <company-info>
> <company-name>Hypothetical Corporation</company-name>
> <division>Programming Division</division>
> <branch>Velley Branch</branch>
> <office>Business Office</office>
> <department>Accounting department</department>
> </company-info>
>
> I would like to also see CompanyID, DivisionID, BranchID, OfficeID,
> and DepartmentID in the file. I'd use those a lot more easily than
> the long names.

Building in a numerical ID as an attribute or element makes sense.

> <creation-date year="1999" month="06" day="14" />
>
> I think all dates should include optionally,
timezone/hour/minute/second.
> Can this be supported, without being required for all users?

Are you aware of an industry stardard format for this?

> <header>
> <account-structure> ...
>
> That's fine so far. Now, I think <account-definition> goes right after
> that, as another tag in the header. inside that is <account-ID>,
> <account-desc> and <account-type> having allowed values like Cash,
> Accounts Receivable, etc. Would this be an inappropriate place to stuff
> the chart of accounts?

Good design question - is the chart of accounts included at the TB level
sufficient for this purpose, or is a separate chart of accounts section
necessary?

> <customer-vendor-employee />
>
> I think these should be separate. Many transactions are associated
> simultaneously with a particular customer, the employee associated with
> the revenue or expense, and a particular vendor. It will be exceedingly
> valuable to be able to carry these as distinct separate values.

Maybe <customer-vendor-employee type ="customer" (or vendor or employee)/>

> I believe an add'l dimension that is extremely useful is <productID>.

Yep. But opening another Pandora's box, will this now extend out to product
description and quantities? Related PO? Customer Order?

> Don't we need a provision in the <header> for <job-definition>,
> <job-definition>, <customer-definition>, <vendor-definition>, and
> <employee-definition>, just like the <account-definition>?

Good question.

> <check-invoice-document-number />
>
> These should be separate, I think, also.

As above, I might prefer <check-invoice-document-number type="check" (or
invoice or other document)/>

> <document-type type="journal-entries">
>
> Here is a minor point; it seems to me the generic term "transactions"
> fits better here. It might be more widely understood and it would be
> consistent with database lingo, i.e. here are rows which all must be
> posted or none.

I'll leave that open for now.

> <recurring-entry>
> <frequency/>
>
> I wonder if you should include <interval> (YEAR,QTR,MONTH,WEEK)

That's what frequency was for ... that could be fleshed that out to

<frequency every="3" interval="month">

> <transaction>
> <date year="1999" month="06" day="15" />
>
> I think we need <date-executed/>, <date-posted/>, and <date-cashflow/>
> or something of that nature.

I'll think of that one a bit.

> Somehow we have to make this thing support cash management, cash
planning.
> We have to ensure this thing supports the cash flow statement, too.
> a really important feature of many accounting software packages.

Right - that was meant to be another addition to v.9 soon - Cash,
Operations, Investment, Treasury ...

Great contribution Todd.

<ec />




 

Design considerations for adfst (Accounting Data and Financial Statement Transfer - AddFast!) files.

Wouldn't it be great if you could just hit "Export to XML" from your accounting, manufacturing, payroll or other system ... And then hit "Import from XML" into your backroom accounting or your accountant's write up software? It can happen - of we all agree what that file should look like in the middle. XML makes it more than possible. Now we just have to agree on what it will look like.

This file contains the development thoughts of the ADFST XML format. This is a preliminary work in process. "AddFast!" is putting meat around how to pronounce adfst (accounting data and financial statement transfer) - it is the adfst, pronounced AddFast!, protocol.


Design goals:

The file CAN contain all of the information about a company's accounting: journal entries, trial balance, accounting periods, account breaks (where chart of accounts falls in general categories for later classification and ratio analysis) The goal of adfst was to capture all of the information you would have in a typical general ledger product, and be able to export any or all of it to a universally acceptable format. The typical GL has the following: an accounting period file a chart of accounts file with some way to indicate whether that account is an asset, liablity, etc., and what type of ratio it may figure into - or if it is a non-financial account for descriptive or analystical purposes a transaction file (yet to be posted) a recurring transaction file a historical transaction file (posted transactions) a budget file a comparative file and a financial statement layout file. Hence, an adfst file will let you grab any or all of those files, and any part of those files.

Any single area can be used where necessary: just journal entries, just trial balance information, etc.


The file must be ready for internationalizing: language and currency, in particular.

The concept of adfst is that you have the capability of transferring ANY part or EVERY part of a general ledger system out to XML. You have the capability of dumping all aspects of QuickBooks and importing it into Dynamics - all the underlying data, the budgets, the comparatives, the accounting periods, the set up. Imagine how happy a client will be to have all of their data instantly update from one system to another with minor cleaning up! When you add a financial statement standard like the AICPA XFSML projec to the <document-type type="financial-statement"/> section, that transfer will include the financial statement formatting. But you only need use any single part, or you may use a combination of the parts - such as transaction data to receive information from a payroll provider into your GL, or the trial-balance and the transaction data to send your information to your accountant.

questions

1 Should the file be ready for multiple entities all in one?

2 Should foreign currency be on a line by line level rather than overall?

3 There could be separate files for each of the functions. For the sake of management, they are all together. They could be managed as one file, or managed as many (drill-down might be easier as one file - from the trial-balance to the journal-entries, for example).


notes

1 The financial statement portion is being independently developed, but can be integrated.

examples

1. We are pretending that we have a company and their CPA firm. As of the "system date" 12/31/98 their systems were in sync as the CPA did a review, proposed some adjustments (which were accepted by the client) and made the adjustments, and now it is time to do the review again as of 12/31/99. So, the client went into their accounting system and pressed a button. Doing so created the attached file. The attached file was emailed to the CPA. The CPA went into the write-up package, pressed a button, pointed to the Emailed file, and imported the trial balance into their write-up software. They did all their "magic". The CPA proposed some Journal entries (and actually made them in the write-up software). He then exported those entries (using this XML based mechanism), the client reviewed them (use your imagination here and assume they really do), and they entries are made to the clients accounting system. Both systems are back in sync as of 12/31/99, entries were keyed in only once not multiple times into the various systems, and life is good.

2. Some examples of using each of the sections. 1.<document-type type="journal-entries">a. The company has ADP doing its payroll. ADP can create an adfst data file and send all of the journal entries in an industry standard format so the user's accounting systems can import them without a special interface designed for each accounting product. 

b. The CPA wants to do an analysis of certain accounts: repairs and maintenance, tax payable, assets accounts. The client creates an adfst file with all the detail for the year for the accounts in question and sends them to the CPA for analysis.

document-type usages:
trial-balance

a. The accountant is doing their year-end review. The client sends out their beginning balances, total debits, total credits, and ending balance into an XML file as trial-balance entries, which the CPAs tax and write-up system can read in. While they are at it, they also send out all of their detail in the journal-entries entries.

budget-entries

The client is going through the budgeting process. They export the final 99 budget to XML which Excel reads in. They update it, and export it back via XML to become the initial 2000 budget in the system.

period-file

The client is changing their year end, or moving from a monthly to 4-4-5 reporting period. What periods did the old system refer to? Contained in the period-file. Dump transactions, journal entries and period end into XML, recalculate, and bring them back.

account-break

When we are preparing financial statements, we need a way to map which accounts are current assets, which are cash and cash equivalents, which are stockholder's equity. Also, want a way to capture these terms in different languages for different users. Cash 01 Net A/R 02 Other Receivables 03 Inventory 04 Prepaid Expenses 05 Other Assets 06 Current Liability 07 Long Term 08 Stockholder’s Equity 09 Retained Earnings 10 Net Sales 11 Cost of Sales 12 Operating Expenses 13 Interest Expense 14 Other Income and Expense 15 Interest Expense 16 Income Tax 17 Cash flow reporting Cash Operations Financing Investment


Because it is extensible, a company can set up its own document-types for internal use.


commentary

Fields and DTD discussion

A work in process. I'll be building this and trying to keep it up with changes as we go along.

Copyright 1999 Eric E. Cohen, CPA

<discussion> ELEMENT adfst (header|document-type)* 

The ADDFAST! File is made up of a header overall, followed up by a series of document types. The use of multiple document types lets the file contain the stand document-types, as well as user defined document types for internal or agreed-upon use.

ELEMENT header (file-info|company-info|time-period|account-structure)* 

The header is made up of any or all the elements:

file-info
company-info
time-period
account-structure

None are required elements.

ELEMENT file-info (audit-number|source-application|target-application|creation-date|language|currency|number-of-decimals|created-by)* 

The header is made up of any or all the elements:

audit-number
source-application
target-application
creation-date
language
currency
number-of-decimals
created-by

None are required elements.

ELEMENT audit-number (#PCDATA)* 

A number to be used to uniquely identify this particular XML file, to differentiate one file from another.

ELEMENT source-application (#PCDATA)* 

An identifier of the application or database from which the data comes.

ELEMENT target-application (#PCDATA)* 

An identifier of the application or database to which the data is headed.

ELEMENT creation-date EMPTY 

A date to identify when this file was created for audit purposes. Don’t want to use an earlier dump instead of a later dump of the same data.

ATTLIST creation-date year CDATA #IMPLIED 

Year in CCYY

ATTLIST creation-date month CDATA #IMPLIED 

Month in MM

ATTLIST creation-date day CDATA #IMPLIED 

Day in DD

ELEMENT language (#PCDATA)* 

The default language for output in this file. Various other fields can override this for their own purposes.

ELEMENT currency (#PCDATA)* 

The default currency. Various other fields can override this for their own purposes.

ELEMENT number-of-decimals (#PCDATA)* 

As some systems imply two digits and others specify them directly, a place to show how many decimals are implied.

ELEMENT created-by (name|phone|e-mail)* 

For audit purposes, the creator of the XML file. Uses any or all of the fields

Last update: 6/20/1999

author

Eric E. Cohen, CPA
copyright 1999


DTD:
<!ELEMENT adfst (header|document-type)* >
<!ATTLIST adfst version CDATA #IMPLIED>
<!ELEMENT header (file-info|company-info|time-period|account-structure)* >
<!ELEMENT file-info (audit-number|source-application|target-application|creation-date|language|currency|number-of-decimals|created-by)* >
<!ELEMENT audit-number (#PCDATA)* >
<!ELEMENT source-application (#PCDATA)* >
<!ELEMENT target-application (#PCDATA)* >
<!ELEMENT creation-date EMPTY >
 <!ATTLIST creation-date year CDATA #IMPLIED>
<!ATTLIST creation-date month CDATA #IMPLIED>
<!ATTLIST creation-date day CDATA #IMPLIED>
<!ELEMENT language (#PCDATA)* >
<!ELEMENT currency (#PCDATA)* >
<!ELEMENT number-of-decimals (#PCDATA)* >
<!ELEMENT created-by (name|phone|e-mail)* >
<!ELEMENT name (#PCDATA)* >
<!ELEMENT phone (#PCDATA)* >
<!ELEMENT e-mail (#PCDATA)* >
<!ELEMENT company-info (company-name|division|branch|office|department)* >
<!ELEMENT company-name (#PCDATA)* >
<!ELEMENT division (#PCDATA)* >
<!ELEMENT branch (#PCDATA)* >
<!ELEMENT office (#PCDATA)* >
<!ELEMENT department (#PCDATA)* >
<!ELEMENT time-period (beginning|ending)* >
<!ELEMENT beginning EMPTY >
 <!ATTLIST beginning year CDATA #IMPLIED>
<!ATTLIST beginning month CDATA #IMPLIED>
<!ATTLIST beginning day CDATA #IMPLIED>
<!ELEMENT ending EMPTY >
 <!ATTLIST ending year CDATA #IMPLIED>
<!ATTLIST ending month CDATA #IMPLIED>
<!ATTLIST ending day CDATA #IMPLIED>
<!ELEMENT account-structure (main-account)* >
<!ELEMENT main-account (account|sub-account)* >
<!ELEMENT account (main|sub)* >
<!ATTLIST account start-position CDATA #IMPLIED>
<!ATTLIST account length CDATA #IMPLIED>
<!ATTLIST account budget-number CDATA #IMPLIED>
<!ELEMENT sub-account EMPTY >
 <!ATTLIST sub-account start-position CDATA #IMPLIED>
<!ATTLIST sub-account length CDATA #IMPLIED>
<!ELEMENT document-type (hash-total|transaction|trial-balance-entry|override-previous-entries|out-of-balance|budget-entry|number|Method|period|break)* >
<!ATTLIST document-type type CDATA #IMPLIED>
<!ELEMENT hash-total (count|checksum)* >
<!ELEMENT count (#PCDATA)* >
<!ATTLIST count value CDATA #IMPLIED>
<!ELEMENT checksum (#PCDATA)* >
<!ATTLIST checksum value CDATA #IMPLIED>
<!ELEMENT transaction (date|amount|batch|debit-or-credit|source-journal|journal-number|entry-line-number|job-number|comment|correction-entry|reversing-date|non-financial-entry|recurring-entry|date-entered|entered-by-name|posted-or-unposted|prior-period-entry|customer-vendor-employee|check-invoice-document-number|account|description|out-of-balance)* >
<!ELEMENT date EMPTY >
 <!ATTLIST date year CDATA #IMPLIED>
<!ATTLIST date month CDATA #IMPLIED>
<!ATTLIST date day CDATA #IMPLIED>
<!ELEMENT amount (#PCDATA)* >
<!ELEMENT batch EMPTY >
 <!ATTLIST batch value CDATA #IMPLIED>
<!ELEMENT debit-or-credit EMPTY >
 <!ATTLIST debit-or-credit value CDATA #IMPLIED>
<!ELEMENT source-journal EMPTY >
 <!ATTLIST source-journal value CDATA #IMPLIED>
<!ELEMENT journal-number EMPTY >
 <!ATTLIST journal-number value CDATA #IMPLIED>
<!ELEMENT entry-line-number (#PCDATA)* >
<!ELEMENT job-number EMPTY >
 <!ATTLIST job-number value CDATA #IMPLIED>
<!ELEMENT comment (#PCDATA)* >
<!ELEMENT correction-entry EMPTY >
 <!ATTLIST correction-entry answer CDATA #IMPLIED>
<!ELEMENT reversing-date EMPTY >
 <!ATTLIST reversing-date year CDATA #IMPLIED>
<!ATTLIST reversing-date month CDATA #IMPLIED>
<!ATTLIST reversing-date day CDATA #IMPLIED>
<!ELEMENT non-financial-entry EMPTY >
 <!ATTLIST non-financial-entry answer CDATA #IMPLIED>
<!ELEMENT recurring-entry (frequency|ending-date|last-date|remaining-entries)* >
<!ELEMENT frequency (#PCDATA)* >
<!ELEMENT ending-date (#PCDATA)* >
<!ELEMENT last-date (#PCDATA)* >
<!ELEMENT remaining-entries (#PCDATA)* >
<!ELEMENT date-entered EMPTY >
 <!ATTLIST date-entered year CDATA #IMPLIED>
<!ATTLIST date-entered month CDATA #IMPLIED>
<!ATTLIST date-entered day CDATA #IMPLIED>
<!ELEMENT entered-by-name EMPTY >
 <!ATTLIST entered-by-name entered CDATA #IMPLIED>
<!ELEMENT posted-or-unposted EMPTY >
 <!ATTLIST posted-or-unposted answer CDATA #IMPLIED>
<!ELEMENT prior-period-entry EMPTY >
 <!ATTLIST prior-period-entry answer CDATA #IMPLIED>
<!ELEMENT customer-vendor-employee (#PCDATA)* >
<!ELEMENT check-invoice-document-number (#PCDATA)* >
<!ELEMENT main (#PCDATA)* >
<!ELEMENT sub (#PCDATA)* >
<!ELEMENT description (#PCDATA)* >
<!ATTLIST description language CDATA #IMPLIED>
<!ELEMENT out-of-balance (#PCDATA)* >
<!ATTLIST out-of-balance answer CDATA #IMPLIED>
<!ELEMENT trial-balance-entry (account|period|beginning-balance|total-debits|total-credits|ending-balance)* >
<!ELEMENT period (#PCDATA)* >
<!ATTLIST period number CDATA #IMPLIED>
<!ATTLIST period starting-date CDATA #IMPLIED>
<!ATTLIST period ending-date CDATA #IMPLIED>
<!ELEMENT beginning-balance (#PCDATA)* >
<!ELEMENT total-debits (#PCDATA)* >
<!ELEMENT total-credits (#PCDATA)* >
<!ELEMENT ending-balance (#PCDATA)* >
<!ELEMENT override-previous-entries (#PCDATA)* >
<!ELEMENT budget-entry (account|period|beginning-balance|debits-for-period|credits-for-period|ending-balance|out-of-balance)* >
<!ELEMENT debits-for-period (#PCDATA)* >
<!ELEMENT credits-for-period (#PCDATA)* >
<!ELEMENT number (#PCDATA)* >
<!ELEMENT Method (#PCDATA)* >
<!ELEMENT break (general-area|description|starting-account|ending-account)* >
<!ELEMENT general-area (#PCDATA)* >
<!ELEMENT starting-account (#PCDATA)* >
<!ELEMENT ending-account (#PCDATA)* >
<!ENTITY  amp "&amp;" >
(Note: you will have to delete that last element to load it into XML Authority.)

sample:

<?xml version="1.0"?>
<!DOCTYPE adfst SYSTEM "adfst.dtd">
<adfst version=".9099062001">
   <!--Accounting Data and Financial Statement Transfer (AddFast!)-->
  <!--Last update 6/20/99 9:00pm EDT-->
  <!--Designed by Eric E. Cohen, CPA www.computercpa.com-->
<!--copyright 1999 Eric E. Cohen-->

   <header>
      <file-info>
         <audit-number>ABC123</audit-number>
         <source-application>Quickboooks 99</source-application>
         <target-application>GoSystem</target-application>
         <creation-date year="1999" month="06" day="14"/>
         <language>U.S. English</language>
         <currency>Dollar, U.S.</currency>
         <number-of-decimals>0.00</number-of-decimals>
         <created-by>
            <name>Eric E. Cohen</name>
            <phone>716-271-4070</phone>
            <e-mail>adfst@computercpa.com</e-mail>
         </created-by>
      </file-info>
      <company-info>
         <company-name>Hypothetical Corporation</company-name>
         <division>Programming Division</division>
         <branch>Velley Branch</branch>
         <office>Business Office</office>
         <department>Accounting department</department>
      </company-info>
      <time-period>
         <beginning year="1999" month="06" day="01"/>
         <ending year="1999" month="06" day="30"/>
      </time-period>
      <account-structure>
         <main-account>
            <account start-position="008" length="008"/>
            <sub-account start-position="001" length="007"/>
            <sub-account start-position="015" length="007"/>
            <sub-account start-position="022" length="007"/>
         </main-account>
      </account-structure>
   </header>
   <document-type type="journal-entries">
      <hash-total>
         <count value="10"/>
         <checksum value="5000"/>
      </hash-total>
      <transaction>
         <date year="1999" month="06" day="15"/>
         <amount>600.00</amount>
         <batch value="PR001"/>
         <debit-or-credit value="dr"/>
         <source-journal value="PR"/>
         <journal-number value="001"/>
         <entry-line-number>0001</entry-line-number>
         <job-number value=""/>
         <comment/>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="16"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00006000</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Payroll General</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="15"/>
         <amount>400.00</amount>
         <batch value="PR001"/>
         <debit-or-credit value="dr"/>
         <source-journal value="PR"/>
         <journal-number value="001"/>
         <entry-line-number>0002</entry-line-number>
         <job-number value=""/>
         <comment/>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="16"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00002200</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Accrued Payroll</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="15"/>
         <amount>900.00</amount>
         <batch value="PR001"/>
         <debit-or-credit value="cr"/>
         <source-journal value="PR"/>
         <journal-number value="001"/>
         <entry-line-number>0003</entry-line-number>
         <job-number value=""/>
         <comment/>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="16"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00001100</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Cash</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="15"/>
         <amount>100.00</amount>
         <batch value="PR001"/>
         <debit-or-credit value="cr"/>
         <source-journal value="PR"/>
         <journal-number value="001"/>
         <entry-line-number>0004</entry-line-number>
         <job-number value=""/>
         <comment/>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="16"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00006200</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Payroll Disability</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="16"/>
         <amount>1000.00</amount>
         <batch value="GL001"/>
         <debit-or-credit value="cr"/>
         <source-journal value="GL"/>
         <journal-number value="001"/>
         <entry-line-number>0005</entry-line-number>
         <job-number value="ABC105"/>
         <comment>To record depreciation on non-recorded asset</comment>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="17"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00001300</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Accumulated Depreciation</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="16"/>
         <amount>1000.00</amount>
         <batch value="GL001"/>
         <debit-or-credit value="dr"/>
         <source-journal value="GL"/>
         <journal-number value="001"/>
         <entry-line-number>0006</entry-line-number>
         <job-number value="ABC105"/>
         <comment>To record depreciation on non-recorded asset</comment>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="17"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00006300</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Depreciation Expense</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="16"/>
         <amount>100.00</amount>
         <batch value="RJ001"/>
         <debit-or-credit value="cr"/>
         <source-journal value="RJ"/>
         <journal-number value="001"/>
         <entry-line-number>0007</entry-line-number>
         <job-number value=""/>
         <comment>New profit sharing plan</comment>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency>M</frequency>
            <ending-date>1999-12-31</ending-date>
            <last-date>1999-05-31</last-date>
            <remaining-entries>7</remaining-entries>
         </recurring-entry>
         <date-entered year="1999" month="06" day="17"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee>Prudential Life</customer-vendor-employee>
         <check-invoice-document-number>PL10922</check-invoice-document-number>
         <account>
            <main>00006900</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Pension and Profit Sharing</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="16"/>
         <amount>100.00</amount>
         <batch value="RJ001"/>
         <debit-or-credit value="dr"/>
         <source-journal value="RJ"/>
         <journal-number value="001"/>
         <entry-line-number>0008</entry-line-number>
         <job-number value=""/>
         <comment>New profit sharing plan</comment>
         <correction-entry answer="N"/>
         <reversing-date year="" month="" day=""/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency>M</frequency>
            <ending-date>1999-12-31</ending-date>
            <last-date>1999-05-31</last-date>
            <remaining-entries>7</remaining-entries>
         </recurring-entry>
         <date-entered year="1999" month="06" day="17"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee>Prudential Life</customer-vendor-employee>
         <check-invoice-document-number>PL10922</check-invoice-document-number>
         <account>
            <main>00002300</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Profit Sharing Payable</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="16"/>
         <amount>100.00</amount>
         <batch value="GJ002"/>
         <debit-or-credit value="cr"/>
         <source-journal value="GJ"/>
         <journal-number value="002"/>
         <entry-line-number>0009</entry-line-number>
         <job-number value=""/>
         <comment/>
         <correction-entry answer="N"/>
         <reversing-date year="2000" month="01" day="01"/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="17"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00002005</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Accrued Pension</description>
         <out-of-balance answer="N"/>
      </transaction>
      <transaction>
         <date year="1999" month="06" day="16"/>
         <amount>100.00</amount>
         <batch value="GJ002"/>
         <debit-or-credit value="dr"/>
         <source-journal value="GJ"/>
         <journal-number value="002"/>
         <entry-line-number>0010</entry-line-number>
         <job-number value=""/>
         <comment/>
         <correction-entry answer="N"/>
         <reversing-date year="2000" month="01" day="01"/>
         <non-financial-entry answer="N"/>
         <recurring-entry>
            <frequency/>
            <ending-date/>
            <last-date/>
            <remaining-entries/>
         </recurring-entry>
         <date-entered year="1999" month="06" day="17"/>
         <entered-by-name entered="EEC"/>
         <posted-or-unposted answer="P"/>
         <prior-period-entry answer="N"/>
         <customer-vendor-employee/>
         <check-invoice-document-number/>
         <account>
            <main>00007200</main>
            <sub>0000000</sub>
            <sub>0000000</sub>
            <sub>0000000</sub>
         </account>
         <description language="English">Pension Expense</description>
         <out-of-balance answer="N"/>
      </transaction>
   </document-type>
   <document-type type="trial-balance">
      <hash-total>
         <count>7</count>
         <checksum>3900</checksum>
      </hash-total>
      <trial-balance-entry>
         <account>
            <main>1000</main>
            <sub>000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+200.00</beginning-balance>
         <total-debits>500.00</total-debits>
         <total-credits>600.00</total-credits>
         <ending-balance>+100.00</ending-balance>
      </trial-balance-entry>
      <trial-balance-entry>
         <account>
            <main>1200</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+100.00</beginning-balance>
         <total-debits>200.00</total-debits>
         <total-credits>100.00</total-credits>
         <ending-balance>+200.00</ending-balance>
      </trial-balance-entry>
      <trial-balance-entry>
         <account>
            <main>2000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>-300.00</beginning-balance>
         <total-debits>200.00</total-debits>
         <total-credits>200.00</total-credits>
         <ending-balance>-300.00</ending-balance>
      </trial-balance-entry>
      <trial-balance-entry>
         <account>
            <main>3000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>-100.00</beginning-balance>
         <total-debits>00.00</total-debits>
         <total-credits>00.00</total-credits>
         <ending-balance>-100.00</ending-balance>
      </trial-balance-entry>
      <trial-balance-entry>
         <account>
            <main>4000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+100.00</beginning-balance>
         <total-debits>00.00</total-debits>
         <total-credits>200.00</total-credits>
         <ending-balance>-100.00</ending-balance>
      </trial-balance-entry>
      <trial-balance-entry>
         <account>
            <main>5000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>-50.00</beginning-balance>
         <total-debits>0.00</total-debits>
         <total-credits>50.00</total-credits>
         <ending-balance>-100.00</ending-balance>
      </trial-balance-entry>
      <trial-balance-entry>
         <account>
            <main>6000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+25.00</beginning-balance>
         <total-debits>25.00</total-debits>
         <total-credits>0.00</total-credits>
         <ending-balance>+50.00</ending-balance>
      </trial-balance-entry>
      <override-previous-entries>N</override-previous-entries>
      <out-of-balance>N</out-of-balance>
   </document-type>
   <document-type type="budget-entries">
      <hash-total>
         <count>7</count>
         <checksum>3900.00</checksum>
      </hash-total>
      <budget-entry>
         <account budget-number="01">
            <main>1000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+200.00</beginning-balance>
         <debits-for-period>500.00</debits-for-period>
         <credits-for-period>600.00</credits-for-period>
         <ending-balance>+100.00</ending-balance>
      </budget-entry>
      <budget-entry>
         <account budget-number="01">
            <main>1200</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+100.00</beginning-balance>
         <debits-for-period>200.00</debits-for-period>
         <credits-for-period>100.00</credits-for-period>
         <ending-balance>+200.00</ending-balance>
      </budget-entry>
      <budget-entry>
         <account budget-number="01">
            <main>2000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>-300.00</beginning-balance>
         <debits-for-period>200.00</debits-for-period>
         <credits-for-period>200.00</credits-for-period>
         <ending-balance>-300.00</ending-balance>
      </budget-entry>
      <budget-entry>
         <account budget-number="01">
            <main>3000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>-100.00</beginning-balance>
         <debits-for-period>00.00</debits-for-period>
         <credits-for-period>00.00</credits-for-period>
         <ending-balance>-100.00</ending-balance>
      </budget-entry>
      <budget-entry>
         <account budget-number="01">
            <main>4000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>+100.00</beginning-balance>
         <debits-for-period>00.00</debits-for-period>
         <credits-for-period>200.00</credits-for-period>
         <ending-balance>-100.00</ending-balance>
      </budget-entry>
      <budget-entry>
         <account budget-number="01">
            <main>5000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>-50.00</beginning-balance>
         <debits-for-period>0.00</debits-for-period>
         <credits-for-period>50.00</credits-for-period>
         <ending-balance>-100.00</ending-balance>
      </budget-entry>
      <budget-entry>
         <account budget-number="1">
            <main>6000</main>
            <sub>0000</sub>
         </account>
         <period>12</period>
         <beginning-balance>25.00</beginning-balance>
         <debits-for-period>25.00</debits-for-period>
         <credits-for-period>00.00</credits-for-period>
         <ending-balance>50.00</ending-balance>
         <out-of-balance>N</out-of-balance>
      </budget-entry>
   </document-type>
   <document-type type="period-file">
      <number>12</number>
      <Method>M</Method>
      <!--Monthly, Quarterly, 4-4-5, Custom-->
      <period number="01" starting-date="1999/01/01" ending-date="1999/01/31"/>
      <period number="02" starting-date="1999/02/01" ending-date="1999/02/28"/>
      <period number="03" starting-date="1999/03/01" ending-date="1999/03/31"/>
      <period number="04" starting-date="1999/04/01" ending-date="1999/04/30"/>
      <period number="05" starting-date="1999/05/01" ending-date="1999/05/31"/>
      <period number="06" starting-date="1999/06/01" ending-date="1999/06/30"/>
      <period number="07" starting-date="1999/07/01" ending-date="1999/07/31"/>
      <period number="08" starting-date="1999/08/01" ending-date="1999/08/31"/>
      <period number="09" starting-date="1999/09/01" ending-date="1999/09/30"/>
      <period number="10" starting-date="1999/10/01" ending-date="1999/10/31"/>
      <period number="11" starting-date="1999/11/01" ending-date="1999/11/30"/>
      <period number="12" starting-date="1999/12/01" ending-date="1999/12/31"/>
   </document-type>
   <document-type type="financial-statement"/>
   <document-type type="account-break">
      <!--Assets, Liabilities, Equity, Revenue, COGS, G&A, Other, Taxes, Exceptional, etc.-->
      <!--Current, Fixed, Other Assets; Current, Long-term Liabilities -->
      <!--Cash, AR, Inventory, other ratio requirements -->
      <break>
         <general-area>Assets</general-area>
         <description language="English">Assets</description>
         <description language="Klingonese">Passifs Exigibles</description>
         <starting-account>00001000</starting-account>
         <ending-account>00001999</ending-account>
      </break>
      <break>
         <general-area>Liabilities</general-area>
         <description language="English">Liabilities</description>
         <description language="Klingonese">Responsabilites</description>
         <starting-account>00002000</starting-account>
         <ending-account>00002999</ending-account>
      </break>
      <break>
         <general-area>Owner's Equity</general-area>
         <description language="English">Fund Balance</description>
         <description language="Klingonese">capitaux propres</description>
         <starting-account>00003000</starting-account>
         <ending-account>00003999</ending-account>
      </break>
      <break>
         <general-area>Revenue</general-area>
         <description language="English">Sales</description>
         <description language="Klingonese">Revenus Totaux</description>
         <starting-account>00004000</starting-account>
         <ending-account>00004999</ending-account>
      </break>
      <break>
         <general-area>COGS</general-area>
         <description language="English">Cost of Sales</description>
         <description language="Klingonese">Cout de ventes</description>
         <starting-account>00005000</starting-account>
         <ending-account>00005999</ending-account>
      </break>
      <break>
         <general-area>Expenses</general-area>
         <description language="English">Sales &amp; operating expense</description>
         <description language="Klingonese">D'Autres Depenses</description>
         <starting-account>00006000</starting-account>
         <ending-account>00006999</ending-account>
      </break>
      <break>
         <general-area>Other</general-area>
         <description language="English">Other Income and Expenses</description>
         <description language="Klingonese">q'plach</description>
         <starting-account>00007000</starting-account>
         <ending-account>00007999</ending-account>
      </break>
   </document-type>
</adfst>