--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--Versions available:\r
+1.1 (August-01-2002)\r
+-->\r
+\r
+<!-- Start Simple Types -->\r
+\r
+<!-- Supplementary Vocabulary -->\r
+<!ELEMENT Version (#PCDATA)>\r
+<!ELEMENT Location (#PCDATA)>\r
+<!ELEMENT Comment (#PCDATA)>\r
+<!ELEMENT Length (#PCDATA)>\r
+<!ELEMENT References (#PCDATA)>\r
+<!ELEMENT From (#PCDATA)>\r
+<!ELEMENT To (#PCDATA)>\r
+\r
+<!-- Specifying a maximum length for a VariableLength column can\r
+ reduce a VariableLength tables' import time. If MaxLength\r
+ is not specified then we parse URL to determine the MaxLength\r
+ for each column.\r
+ \r
+ * Only applies to VariableLength tables. -->\r
+<!ELEMENT MaxLength (#PCDATA)>\r
+\r
+<!-- Specifies which character (if any) encapsulates a\r
+ VariableLength AlphaNumeric column.\r
+ \r
+ Doublequote is the default TextEncapsulator "\r
+ \r
+ * Only applies to VariableLength tables. (Optional) -->\r
+<!ELEMENT TextEncapsulator (#PCDATA)>\r
+\r
+<!-- Specifies how many digits appear to the right of the decimal symbol.\r
+\r
+ CAUTION: Results are undefined when importing numeric data with\r
+ greater Accuracy than the Accuracy defined in index.xml \r
+ \r
+ For example trying to import the value 1000,25 with an\r
+ accuracy of 0 might result in 1000 or an error. This\r
+ behavior is specific to the implementation.\r
+ \r
+ Zero is the default Accuracy '0' (Optional) \r
+-->\r
+<!ELEMENT Accuracy (#PCDATA)>\r
+\r
+<!-- The decimal place is not always stored with numbers. If each number\r
+ is supposed to have decimal places use ImpliedAccuracy -->\r
+<!ELEMENT ImpliedAccuracy (#PCDATA)>\r
+\r
+<!-- Enables you to change how GDPdU displays dates.\r
+ DD.MM.YYYY is the default Format -->\r
+<!ELEMENT Format (#PCDATA)>\r
+\r
+<!-- Specifies the symbol that indicates decimal values.\r
+ Comma is the default DecimalSymbol. ','\r
+ Specified once per Table. -->\r
+<!ELEMENT DecimalSymbol (#PCDATA)>\r
+\r
+<!-- Specifies the symbol that groups the digits in large numbers.\r
+ Dot is the default DigitGroupingSymbol or ThousandsSeperator. '.'\r
+ Specified once per Table -->\r
+<!ELEMENT DigitGroupingSymbol (#PCDATA)>\r
+\r
+<!-- Command(s) are executed in the following manner\r
+ * before the import process\r
+ * after the import process\r
+ * before a Media is imported\r
+ * after a Media is imported\r
+-->\r
+<!ELEMENT Command (#PCDATA)>\r
+\r
+<!-- Only the file protocol is supported at this time.\r
+\r
+ * The standard uses relative URLs.\r
+ \r
+ Absolute URLs are not allowed. The following are all invalid:\r
+ * http://www.somewhere.com/data/Accounts.dat\r
+ * ftp://ftp.somewhere.com/data/Accounts.dat\r
+ * file://localhost/Accounts.dat\r
+ * file:///Accounts.dat\r
+ \r
+ The following are valid examples\r
+ * Accounts.dat \r
+ * data/Accounts.dat\r
+ * data/january/Accounts.dat\r
+ * ../Accounts.dat\r
+-->\r
+<!ELEMENT URL (#PCDATA)>\r
+\r
+<!-- Textual description of specified element (Optional) -->\r
+<!ELEMENT Description (#PCDATA)>\r
+\r
+<!-- The logical name of specified element.\r
+ Sometimes referred to business name.\r
+ \r
+ If missing, URL will be used in place of Name. -->\r
+<!ELEMENT Name (#PCDATA)>\r
+\r
+<!-- Y2K Window Any year before Epoch is 2000+\r
+ Default value 30. -->\r
+<!ELEMENT Epoch (#PCDATA)>\r
+\r
+<!-- Element(s) that separate columns or records.\r
+ Semicolon is the default ColumnDelimiter. ';'\r
+ CRLF or is the default RecordDelimiter. -->\r
+<!ELEMENT ColumnDelimiter (#PCDATA)>\r
+<!ELEMENT RecordDelimiter (#PCDATA)>\r
+\r
+<!-- The number of bytes skipped before reading of URL commences.\r
+ Zero is the default when not specified. '0'\r
+-->\r
+<!ELEMENT SkipNumBytes (#PCDATA)>\r
+\r
+<!-- End Simple Types -->\r
+<!-- Start Complex Types -->\r
+<!-- Self-explanatory -->\r
+<!ELEMENT Range (From, (To | Length)?)>\r
+<!ELEMENT FixedRange (From, (To | Length))>\r
+\r
+<!-- The document element -->\r
+<!ELEMENT DataSet (Version, DataSupplier?, Command*, Media+, Command*)>\r
+\r
+<!-- Supported datatypes (mandatory) -->\r
+<!ELEMENT AlphaNumeric EMPTY>\r
+<!ELEMENT Date (Format?)>\r
+<!ELEMENT Numeric ((ImpliedAccuracy | Accuracy)?)>\r
+\r
+<!-- Supported codepages:\r
+ Be careful to explicitly define RecordDelimiter when using\r
+ a non-default codepage.\r
+\r
+ ANSI is the default codepage when not specified -->\r
+<!ELEMENT ANSI EMPTY>\r
+<!ELEMENT Macintosh EMPTY>\r
+<!ELEMENT OEM EMPTY>\r
+<!ELEMENT UTF16 EMPTY>\r
+<!ELEMENT UTF7 EMPTY>\r
+<!ELEMENT UTF8 EMPTY>\r
+\r
+<!-- Supported file formats:\r
+ FixedLength\r
+ VariableLength -->\r
+<!ELEMENT FixedLength ((Length | RecordDelimiter)?, ((FixedPrimaryKey+, FixedColumn*) | (FixedColumn+)), ForeignKey*)>\r
+<!ELEMENT FixedColumn (Name, Description?, (Numeric | AlphaNumeric | Date), Map*, FixedRange)>\r
+<!ELEMENT FixedPrimaryKey (Name, Description?, (Numeric | AlphaNumeric | Date), Map*, FixedRange)>\r
+<!ELEMENT VariableLength (ColumnDelimiter?, RecordDelimiter?, TextEncapsulator?, ((VariablePrimaryKey+, VariableColumn*) | (VariableColumn+)), ForeignKey*)>\r
+<!ELEMENT VariableColumn (Name, Description?, (Numeric | (AlphaNumeric, MaxLength?) | Date), Map*)>\r
+<!ELEMENT VariablePrimaryKey (Name, Description?, (Numeric | (AlphaNumeric, MaxLength?) | Date), Map*)>\r
+\r
+<!-- Description of the entity supplying the data. (Optional) -->\r
+<!ELEMENT DataSupplier (Name, Location, Comment)>\r
+\r
+<!-- The first Media will contain index.xml. Importing will process each media listed -->\r
+<!ELEMENT Media (Name, Command*, Table+, Command*)>\r
+\r
+<!-- Elements common to FixedLength & VariableLength are propagated to Table. -->\r
+<!ELEMENT Table (URL, Name?, Description?, Validity?, (ANSI | Macintosh | OEM | UTF16 | UTF7 | UTF8)?, (DecimalSymbol, DigitGroupingSymbol)?, SkipNumBytes?, Range?, Epoch?, (VariableLength | FixedLength))>\r
+\r
+<!-- ForeignKeys denote joins or relationships between tables.\r
+ To successfully join two tables make sure both the PrimaryKey\r
+ and the referenced column (foreignkey) are of the same datatype.\r
+ Results are undefined when joining two tables with different\r
+ key datatypes. Most likely an error will occur. -->\r
+<!ELEMENT ForeignKey (Name+, References)>\r
+\r
+<!-- Maps AlphaNumeric columns from 'From' to 'To'\r
+ ie. From To\r
+ ============ =============\r
+ True 1\r
+ True -1\r
+ False 0\r
+ \r
+ Basically, a map is an associative container. \r
+ \r
+ The standard implementation only supports\r
+ AlphaNumeric datatypes. The following\r
+ conversions are NOT supported.\r
+ \r
+ Numeric -> AlphaNumeric\r
+ Date -> AlphaNumeric\r
+ AplhaNumeric -> Date\r
+ AlphaNumeric -> Numeric \r
+-->\r
+<!ELEMENT Map (Description?, From, To)>\r
+\r
+<!-- Documentation for table validity. -->\r
+<!ELEMENT Validity (Range, Format?)>\r
+\r
+<!-- End Complex Types -->\r