diff options
author | John Wiegley <johnw@newartisans.com> | 2009-10-25 23:08:07 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2009-10-25 23:11:30 -0400 |
commit | 1f5ceb0db50df9ad0f9048ee02ad749507cbd737 (patch) | |
tree | a8609fdcd28aa4d371aebf8a9867e43014e652f1 /doc/Ledger.scriv/snapshots/203.snapshots | |
parent | 9dadaebfeb461ba795124281018d0f7eac200cf4 (diff) | |
download | fork-ledger-1f5ceb0db50df9ad0f9048ee02ad749507cbd737.tar.gz fork-ledger-1f5ceb0db50df9ad0f9048ee02ad749507cbd737.tar.bz2 fork-ledger-1f5ceb0db50df9ad0f9048ee02ad749507cbd737.zip |
Added beginning draft of manual for 3.0
This is being kept in Scrivener format, for ease of writing.
Diffstat (limited to 'doc/Ledger.scriv/snapshots/203.snapshots')
-rw-r--r-- | doc/Ledger.scriv/snapshots/203.snapshots | 579 |
1 files changed, 579 insertions, 0 deletions
diff --git a/doc/Ledger.scriv/snapshots/203.snapshots b/doc/Ledger.scriv/snapshots/203.snapshots new file mode 100644 index 00000000..1cda4747 --- /dev/null +++ b/doc/Ledger.scriv/snapshots/203.snapshots @@ -0,0 +1,579 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>$archiver</key> + <string>NSKeyedArchiver</string> + <key>$objects</key> + <array> + <string>$null</string> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>37</integer> + </dict> + <key>NS.objects</key> + <array> + <dict> + <key>CF$UID</key> + <integer>2</integer> + </dict> + </array> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>33</integer> + </dict> + <key>NS.keys</key> + <array> + <dict> + <key>CF$UID</key> + <integer>3</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>4</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>5</integer> + </dict> + </array> + <key>NS.objects</key> + <array> + <dict> + <key>CF$UID</key> + <integer>6</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>7</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>35</integer> + </dict> + </array> + </dict> + <string>Title</string> + <string>Text</string> + <string>Date</string> + <string>Untitled Snapshot</string> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>34</integer> + </dict> + <key>NSAttributes</key> + <dict> + <key>CF$UID</key> + <integer>10</integer> + </dict> + <key>NSDelegate</key> + <dict> + <key>CF$UID</key> + <integer>0</integer> + </dict> + <key>NSString</key> + <dict> + <key>CF$UID</key> + <integer>8</integer> + </dict> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>9</integer> + </dict> + <key>NS.string</key> + <string>By default, Ledger uses a human-readable data format, and displays its +reports in a manner meant to be read on screen. For the purpose of +writing tools which use Ledger, however, it is possible to read and +display data using XML. This section documents that format. + +The general format used for Ledger data is: + +@smallexample +<?xml version="1.0"?> +<ledger> + <xact>...</xact> + <xact>...</xact> + <xact>...</xact>... +</ledger> +@end smallexample + +The data stream is enclosed in a @samp{ledger} tag, which contains a +series of one or more transactions. Each @samp{xact} describes the transaction +and contains a series of one or more postings: + +@smallexample +<xact> + <en:date>2004/03/01</en:date> + <en:cleared/> + <en:code>100</en:code> + <en:payee>John Wiegley</en:payee> + <en:postings> + <posting>...</posting> + <posting>...</posting> + <posting>...</posting>... + </en:postings> +</xact> +@end smallexample + +The date format for @samp{en:date} is always @samp{YYYY/MM/DD}. The +@samp{en:cleared} tag is optional, and indicates whether the +posting has been cleared or not. There is also an +@samp{en:pending} tag, for marking pending postings. The +@samp{en:code} and @samp{en:payee} tags both contain whatever text the +user wishes. + +After the initial transaction data, there must follow a set of postings +marked with @samp{en:postings}. Typically these postings will +all balance each other, but if not they will be automatically balanced +into an account named @samp{<Unknown>}. + +Within the @samp{en:postings} tag is a series of one or more +@samp{posting}'s, which have the following form: + +@smallexample +<posting> + <tr:account>Expenses:Computer:Hardware</tr:account> + <tr:amount> + <value type="amount"> + <amount> + <commodity flags="PT">$</commodity> + <quantity>90.00</quantity> + </amount> + </value> + </tr:amount> +</posting> +@end smallexample + +This is a basic posting. It may also be begin with +@samp{tr:virtual} and/or @samp{tr:generated} tags, to indicate virtual +and auto-generated postings. Then follows the @samp{tr:account} +tag, which contains the full name of the account the posting is +related to. Colons separate parent from child in an account name. + +Lastly follows the amount of the posting, indicated by +@samp{tr:amount}. Within this tag is a @samp{value} tag, of which +there are four different kinds, each with its own format: + +@enumerate +@item boolean +@item integer +@item amount +@item balance +@end enumerate + +The format of a boolean value is @samp{true} or @samp{false} +surrounded by a @samp{boolean} tag, for example: + +@smallexample +<boolean>true</boolean> +@end smallexample + +The format of an integer value is the numerical value surrounded by an +@samp{integer} tag, for example: + +@smallexample +<integer>12036</integer> +@end smallexample + +The format of an amount contains two members, the commodity and the +quantity. The commodity can have a set of flags that indicate how to +display it. The meaning of the flags (all of which are optional) are: + +@table @strong +@item P +The commodity is prefixed to the value. +@item S +The commodity is separated from the value by a space. +@item T +Thousands markers are used to display the amount. +@item E +The format of the amount is European, with period used as a thousands +marker, and comma used as the decimal point. +@end table + +The actual quantity for an amount is an integer of arbitrary size. +Ledger uses the GNU multi-precision math library to handle such +values. The XML format assumes the reader to be equally capable. +Here is an example amount: + +@smallexample +<value type="amount"> + <amount> + <commodity flags="PT">$</commodity> + <quantity>90.00</quantity> + </amount> +</value> +@end smallexample + +Lastly, a balance value contains a series of amounts, each with a +different commodity. Unlike the name, such a value does need to +balance. It is called a balance because it sums several amounts. For +example: + +@smallexample +<value type="balance"> + <balance> + <amount> + <commodity flags="PT">$</commodity> + <quantity>90.00</quantity> + </amount> + <amount> + <commodity flags="TE">DM</commodity> + <quantity>200.00</quantity> + </amount> + </balance> +</value> +@end smallexample + +That is the extent of the XML data format used by Ledger. It will +output such data if the @command{xml} command is used, and can read +the same data.</string> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSMutableString</string> + <string>NSString</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSMutableString</string> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>33</integer> + </dict> + <key>NS.keys</key> + <array> + <dict> + <key>CF$UID</key> + <integer>11</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>12</integer> + </dict> + </array> + <key>NS.objects</key> + <array> + <dict> + <key>CF$UID</key> + <integer>13</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>30</integer> + </dict> + </array> + </dict> + <string>NSParagraphStyle</string> + <string>NSFont</string> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>29</integer> + </dict> + <key>NSAlignment</key> + <integer>4</integer> + <key>NSLineHeightMultiple</key> + <real>1.1000000238418579</real> + <key>NSTabStops</key> + <dict> + <key>CF$UID</key> + <integer>14</integer> + </dict> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>28</integer> + </dict> + <key>NS.objects</key> + <array> + <dict> + <key>CF$UID</key> + <integer>15</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>17</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>18</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>19</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>20</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>21</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>22</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>23</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>24</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>25</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>26</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>27</integer> + </dict> + </array> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>28</real> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSTextTab</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSTextTab</string> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>56</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>84</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>112</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>140</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>168</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>196</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>224</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>252</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>280</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>308</real> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>16</integer> + </dict> + <key>NSLocation</key> + <real>336</real> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSArray</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSArray</string> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSParagraphStyle</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSParagraphStyle</string> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>32</integer> + </dict> + <key>NSName</key> + <dict> + <key>CF$UID</key> + <integer>31</integer> + </dict> + <key>NSSize</key> + <real>14</real> + <key>NSfFlags</key> + <integer>16</integer> + </dict> + <string>Courier</string> + <dict> + <key>$classes</key> + <array> + <string>NSFont</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSFont</string> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSDictionary</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSDictionary</string> + </dict> + <dict> + <key>$classes</key> + <array> + <string>KBWordCountingTextStorage</string> + <string>NSTextStorage</string> + <string>NSMutableAttributedString</string> + <string>NSAttributedString</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>KBWordCountingTextStorage</string> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>36</integer> + </dict> + <key>NS.time</key> + <real>267380389.39831501</real> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSDate</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSDate</string> + </dict> + <dict> + <key>$classes</key> + <array> + <string>NSMutableArray</string> + <string>NSArray</string> + <string>NSObject</string> + </array> + <key>$classname</key> + <string>NSMutableArray</string> + </dict> + </array> + <key>$top</key> + <dict> + <key>Snapshots</key> + <dict> + <key>CF$UID</key> + <integer>1</integer> + </dict> + </dict> + <key>$version</key> + <integer>100000</integer> +</dict> +</plist> |