epic-s6ts
[kivitendo-erp.git] / users / gdpdu-01-08-2002.dtd
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!--Versions available:\r
3 1.1 (August-01-2002)\r
4 -->\r
5 \r
6 <!-- Start Simple Types -->\r
7 \r
8 <!-- Supplementary Vocabulary -->\r
9 <!ELEMENT Version (#PCDATA)>\r
10 <!ELEMENT Location (#PCDATA)>\r
11 <!ELEMENT Comment (#PCDATA)>\r
12 <!ELEMENT Length (#PCDATA)>\r
13 <!ELEMENT References (#PCDATA)>\r
14 <!ELEMENT From (#PCDATA)>\r
15 <!ELEMENT To (#PCDATA)>\r
16 \r
17 <!-- Specifying a maximum length for a VariableLength column can\r
18      reduce a VariableLength tables' import time. If MaxLength\r
19          is not specified then we parse URL to determine the MaxLength\r
20          for each column.\r
21         \r
22          * Only applies to VariableLength tables. -->\r
23 <!ELEMENT MaxLength (#PCDATA)>\r
24 \r
25 <!-- Specifies which character (if any) encapsulates a\r
26      VariableLength AlphaNumeric column.\r
27         \r
28          Doublequote is the default TextEncapsulator "\r
29         \r
30          * Only applies to VariableLength tables. (Optional) -->\r
31 <!ELEMENT TextEncapsulator (#PCDATA)>\r
32 \r
33 <!-- Specifies how many digits appear to the right of the decimal symbol.\r
34 \r
35          CAUTION: Results are undefined when importing numeric data with\r
36                   greater Accuracy than the Accuracy defined in index.xml                       \r
37                         \r
38                           For example trying to import the value 1000,25 with an\r
39                           accuracy of 0 might result in 1000 or an error. This\r
40                           behavior is specific to the implementation.\r
41         \r
42          Zero is the default Accuracy '0' (Optional)            \r
43 -->\r
44 <!ELEMENT Accuracy (#PCDATA)>\r
45 \r
46 <!-- The decimal place is not always stored with numbers. If each number\r
47      is supposed to have decimal places use ImpliedAccuracy -->\r
48 <!ELEMENT ImpliedAccuracy (#PCDATA)>\r
49 \r
50 <!-- Enables you to change how GDPdU displays dates.\r
51          DD.MM.YYYY is the default Format -->\r
52 <!ELEMENT Format (#PCDATA)>\r
53 \r
54 <!-- Specifies the symbol that indicates decimal values.\r
55      Comma is the default DecimalSymbol. ','\r
56          Specified once per Table. -->\r
57 <!ELEMENT DecimalSymbol (#PCDATA)>\r
58 \r
59 <!-- Specifies the symbol that groups the digits in large numbers.\r
60      Dot is the default DigitGroupingSymbol or ThousandsSeperator. '.'\r
61          Specified once per Table -->\r
62 <!ELEMENT DigitGroupingSymbol (#PCDATA)>\r
63 \r
64 <!-- Command(s) are executed in the following manner\r
65       * before the import process\r
66           * after the import process\r
67           * before a Media is imported\r
68           * after a Media is imported\r
69 -->\r
70 <!ELEMENT Command (#PCDATA)>\r
71 \r
72 <!-- Only the file protocol is supported at this time.\r
73 \r
74      * The standard uses relative URLs.\r
75         \r
76          Absolute URLs are not allowed. The following are all invalid:\r
77          * http://www.somewhere.com/data/Accounts.dat\r
78          * ftp://ftp.somewhere.com/data/Accounts.dat\r
79          * file://localhost/Accounts.dat\r
80      * file:///Accounts.dat\r
81         \r
82          The following are valid examples\r
83           * Accounts.dat        \r
84       * data/Accounts.dat\r
85       * data/january/Accounts.dat\r
86       * ../Accounts.dat\r
87 -->\r
88 <!ELEMENT URL (#PCDATA)>\r
89 \r
90 <!-- Textual description of specified element (Optional) -->\r
91 <!ELEMENT Description (#PCDATA)>\r
92 \r
93 <!-- The logical name of specified element.\r
94      Sometimes referred to business name.\r
95         \r
96          If missing, URL will be used in place of Name. -->\r
97 <!ELEMENT Name (#PCDATA)>\r
98 \r
99 <!-- Y2K Window Any year before Epoch is 2000+\r
100      Default value 30.  -->\r
101 <!ELEMENT Epoch (#PCDATA)>\r
102 \r
103 <!-- Element(s) that separate columns or records.\r
104      Semicolon is the default ColumnDelimiter. ';'\r
105          CRLF or &#13;&#10; is the default RecordDelimiter. -->\r
106 <!ELEMENT ColumnDelimiter (#PCDATA)>\r
107 <!ELEMENT RecordDelimiter (#PCDATA)>\r
108 \r
109 <!-- The number of bytes skipped before reading of URL commences.\r
110      Zero is the default when not specified. '0'\r
111 -->\r
112 <!ELEMENT SkipNumBytes (#PCDATA)>\r
113 \r
114 <!-- End Simple Types -->\r
115 <!-- Start Complex Types -->\r
116 <!-- Self-explanatory -->\r
117 <!ELEMENT Range (From, (To | Length)?)>\r
118 <!ELEMENT FixedRange (From, (To | Length))>\r
119 \r
120 <!-- The document element -->\r
121 <!ELEMENT DataSet (Version, DataSupplier?, Command*, Media+, Command*)>\r
122 \r
123 <!-- Supported datatypes (mandatory) -->\r
124 <!ELEMENT AlphaNumeric EMPTY>\r
125 <!ELEMENT Date (Format?)>\r
126 <!ELEMENT Numeric ((ImpliedAccuracy | Accuracy)?)>\r
127 \r
128 <!-- Supported codepages:\r
129      Be careful to explicitly define RecordDelimiter when using\r
130          a non-default codepage.\r
131 \r
132      ANSI is the default codepage when not specified -->\r
133 <!ELEMENT ANSI EMPTY>\r
134 <!ELEMENT Macintosh EMPTY>\r
135 <!ELEMENT OEM EMPTY>\r
136 <!ELEMENT UTF16 EMPTY>\r
137 <!ELEMENT UTF7 EMPTY>\r
138 <!ELEMENT UTF8 EMPTY>\r
139 \r
140 <!-- Supported file formats:\r
141      FixedLength\r
142          VariableLength -->\r
143 <!ELEMENT FixedLength ((Length | RecordDelimiter)?, ((FixedPrimaryKey+, FixedColumn*) | (FixedColumn+)), ForeignKey*)>\r
144 <!ELEMENT FixedColumn (Name, Description?, (Numeric | AlphaNumeric | Date), Map*, FixedRange)>\r
145 <!ELEMENT FixedPrimaryKey (Name, Description?, (Numeric | AlphaNumeric | Date), Map*, FixedRange)>\r
146 <!ELEMENT VariableLength (ColumnDelimiter?, RecordDelimiter?, TextEncapsulator?, ((VariablePrimaryKey+, VariableColumn*) | (VariableColumn+)), ForeignKey*)>\r
147 <!ELEMENT VariableColumn (Name, Description?, (Numeric | (AlphaNumeric, MaxLength?) | Date), Map*)>\r
148 <!ELEMENT VariablePrimaryKey (Name, Description?, (Numeric | (AlphaNumeric, MaxLength?) | Date), Map*)>\r
149 \r
150 <!-- Description of the entity supplying the data. (Optional) -->\r
151 <!ELEMENT DataSupplier (Name, Location, Comment)>\r
152 \r
153 <!-- The first Media will contain index.xml. Importing will process each media listed -->\r
154 <!ELEMENT Media (Name, Command*, Table+, Command*)>\r
155 \r
156 <!-- Elements common to FixedLength & VariableLength are propagated to Table. -->\r
157 <!ELEMENT Table (URL, Name?, Description?, Validity?, (ANSI | Macintosh | OEM | UTF16 | UTF7 | UTF8)?, (DecimalSymbol, DigitGroupingSymbol)?, SkipNumBytes?, Range?, Epoch?, (VariableLength | FixedLength))>\r
158 \r
159 <!-- ForeignKeys denote joins or relationships between tables.\r
160      To successfully join two tables make sure both the PrimaryKey\r
161          and the referenced column (foreignkey) are of the same datatype.\r
162          Results are undefined when joining two tables with different\r
163          key datatypes. Most likely an error will occur. -->\r
164 <!ELEMENT ForeignKey (Name+, References)>\r
165 \r
166 <!-- Maps AlphaNumeric columns from 'From' to 'To'\r
167      ie. From         To\r
168              ============ =============\r
169                  True         1\r
170                  True         -1\r
171                  False        0\r
172                 \r
173          Basically, a map is an associative container.          \r
174         \r
175          The standard implementation only supports\r
176          AlphaNumeric datatypes. The following\r
177          conversions are NOT supported.\r
178         \r
179          Numeric      -> AlphaNumeric\r
180          Date         -> AlphaNumeric\r
181          AplhaNumeric -> Date\r
182          AlphaNumeric -> Numeric                        \r
183 -->\r
184 <!ELEMENT Map (Description?, From, To)>\r
185 \r
186 <!-- Documentation for table validity. -->\r
187 <!ELEMENT Validity (Range, Format?)>\r
188 \r
189 <!-- End Complex Types -->\r