=====================
===   xml-2-mdb   ===
=====================


Purpose
=======

Convert any XML to MDB (Microsoft Access database) file. All tables will
be created, including necessary indexes and relationships between tables. 
Created for use as a command line tool.


Installation
============

Run setup.exe for installation. Uninstall from "Control Panel" / "Software".

If you do not want to run setup.exe, just copy xml2mdb.exe and ChilkatXml.dll 
into some directory and run it. Should some Visual Basic DLL be missing, copy 
them to System32 directory and register with regsvr32. 

ChilkatXml.dll is a XML Active-X object for parsing XML documents.
Check http://www.chilkatsoft.com/ for details. This DLL is distributed
royalty free. Conversion requires installed MS Access on the target
computer. Microsoft Access is not a part of this distribution.


Command line switches (+/-)
===========================

quiet, q
--------
No messages shown, see "Progress" tab for current actions.

recreate_database, d (default)
------------------------------
MDB file will be deleted, and re-created. When delete is not possible, all
tables and relationships will be deleted

extend_mdb
----------
Structure of MDB will be extended by new tables and columns.

append, +append (default)
-------------------------
When converting xml-2-txt the existing files will not be deleted, but new 
content will be appended to the existing file

columns, +columns (default)
---------------------------
When creating new xml-2-txt text files, the first line of the file will contain 
names of the columns or fields

empty_tables, e
---------------
Before importing XML file into an existing database, all tables of the MDB
will be emptied.

relations, r (default)
----------------------
relations between access tables are created (existing relations are kept).
See parameters "primary" and "foreign".

attributes, a (default)
-----------------------
Attributes of XML elements will be imported as separate columns. See
parameter "attr".

one_table_per_element, o
------------------------
In XML files where one element can be a child of different parents, 
all of these elements will be packed into one table, including the name of
the parent table

skip_empty
----------
There are wrapping elements in XMLs that contain only children with other
children. These elements appear in the MDB normally as tables with two columns 
only (Primary key and Foreign key) these tables are not really necessary, 
as they make the MDB structure rather "complicated". This switch skips these 
elements and makes a direct connection between master and detail tables.

debug
-----
Writes all steps of conversion into log file. Slows down the performance.


Command line parameters (param=Value param2="Long value with space")
====================================================================

pkey, primary, p, fkey, foreign, f (default values are "PKEY" and "FKEY")
-------------------------------------------------------------------------
For every table are created these fields, after import relationships
through these fields are created (see switch "relations").

attr, at (default value is "attr_")
-----------------------------------
Prefix for columns which contains Attributes of XML elements

table_prefix, tp (default value is "")
table_suffix, ts (default value is "")
--------------------------------------
Prefix for table names. Helpful when importing several different typos 
of XML files into single MDB to keep the tables together when sorting.

xml, x (required)
-----------------
Location of the XML file to be imported. Wild-cards are allowed to import
multiple xml file into single MDB file.

mdb, m (required)
-----------------
Location of the Microsoft Access MDB file where the results will be
stored. If the file does not exist, one will be created.

logfile, log, l
---------------
Location of the file where the processing logs will be saved. If no file
specified, no log will be created. (Events are appended.)

t, tags
-------
Tag-Mapping file: enables to import <SOME_TAG> into some [COLUMN_NAME].
To create a Tag-Mapping file, define pairs using supplied fields and save them 
into file. Use "t=filename.tsv" as parameter when running conversion from 
command prompt.  

ver, v (default value is "2000")
--------------------------------
Version of the Microsoft Access database.
Possible values are "97"=dbVersion30, "2000"=dbVersion40

url
---
URL of the source XML file, imported using CURL command

auth
----
User-name when authentication is required (CURL command)

pwd
---
Password when authentication is required (CURL command)

txt
---
Directory where xml-2-txt should put its results (see append switch)

delimiter
---------
Delimiter between fields of xml-2-txt (use /t for tab)

n rename
--------
After successful conversion of XML file the XML will be renamed into new
filename. Following characters between % will be converted as follows:
   d    Current Day:       01-31
   m    Current Month:     01-12
   y    Current Year:       2000
   h    Current Hour:      00-24
   n    Current Minutes:   00-60
   s    Current Second:    00-60
   p    Path to XML  without backslash
   f    XML filename without extension
Example: 
   Pattern: %p%\done\imported_on_%y-m-d.h-m-s.f%.xxx
   Source:  C:\files_to_import\source.xml 
   Target:  C:\files_to_import\done\imported_on_2006-10-30.15-39-50.source.xxx



Command line example
====================

xml2mdb.exe xml="C:\po_*.xml" mdb="C:\po.mdb" -recreate_database extend_mdb empty_tables
Press the "Command line" button to wiew command line with current set of parameters


History of changes
==================

xml-2-mdb 2.6                                                      11. Jul. 2008
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.zip
+ Convert xml-2-txt added
+ Small changes to interface
+ ADO added to distribution

xml-2-mdb 2.5.5                                                    08. Jul. 2008
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.5.5.zip
+ BugFix: Multiple Tables without content but atributes failed to import 
+ Launch XML Editor with a single button

xml-2-mdb 2.4.5                                                    12. Apr. 2007
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.4.5.zip
+ BugFix: MS Access not starting when no MSB specified 
+ BugFix: Tag mapping click on last element in the list

xml-2-mdb 2.4                                                      11. Apr. 2007
--------------------------------------------------------------------------------
+ Progress bar when for importing large nuber of files
+ Launch MDB with a single button
+ BugFix: Various

xml-2-mdb 2.3.9                                                    10. Jan. 2007
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.3.9.zip
+ BugFix: kybShowXMLDescription: bug when showing description of large files

xml-2-mdb 2.3.7                                                    24. Nov. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.3.7.zip
+ "Debug" parameter for better protocolizing 
+ BugFix: ADO Propblems with Access 97 fixed

xml-2-mdb 2.3                                                      22. Nov. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.3.zip
+ BugFix: Import of XMLs where all content is stored in attributes.
+ BugFix: Numerical Tags were created as MEMO. Now they are STRING again. 

xml-2-mdb 2.2                                                      13. Nov. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.2.zip
+ Database constrains are not dropped anymore before importing XML
+ Complete switch from DAO to ADO technology
+ Show command line call for the current set of parameters
+ File counter with batch import
+ BugFix: Batch import of files fixed
+ Create Memo columns in the database for strings longer than 255 characters

xml-2-mdb 2.1                                                       2. Nov. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.1.zip
+ All tables of the MDB will be deleted
+ Relationships are now CASCADE ON UPDATE and CASCADE ON DELETE (Use of ADO)

xml-2-mdb 2.0                                                      31. Oct. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.2.0.zip
+ Renaming of imported files
+ Import of multiple XMLs with wildcards

xml-2-mdb 1.9.4                                                    11. Aug. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.9.4.zip
+ BugFix: Import XML files, where all values are stored in attributes only  

xml-2-mdb 1.9                                                      28. Apr. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.9.zip
+ Get XML files from Internet

xml-2-mdb 1.8                                                      03. Mar. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.8.zip
+ "." within object names is replaced through "_"
+ Tag-Mapping: enables to translate <Tag> into different [column/table name]

xml-2-mdb 1.7                                                      20. Feb. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.7.zip
+ Table prefix / suffix added (to help sorting within existing MDBs)
+ Bugfix: "Do not create relationships" did not work properly

xml-2-mdb 1.6.3                                                    08. Feb. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.6.3.zip
+ Bugfix: Tables were not emptied

xml-2-mdb 1.6.1                                                    24. Jan. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.6.1.zip
+ Bugfix: Relationships were not created

xml-2-mdb 1.5                                                      19. Jan. 2006
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.5.zip
+ Performance enhanced
+ Resize/maximize of the application
+ Setup.exe and Uninstall functionality added for more installation comfort

xml-2-mdb 1.4                                                      20. Dec. 2005
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.4.zip
+ Added column "MASTER_TABLE" if referencing several tables
+ Change: "Recreate tables" changed into "Extend MDB structure"
+ Change of the "t" option
+ MDB structure extends also by new columns

xml-2-mdb 1.3                                                      20. Oct. 2005
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.3.zip
+ Same elements on different levels are imported as extra tables

xml-2-mdb 1.2                                                      14. Oct. 2005
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.2.zip  
+ Extra table created for same Elements within another element

xml-2-mdb 1.1                                                     16. Sept. 2005
--------------------------------------------------------------------------------
http://www.kybernetika.de/xml2mdb/xml2mdb.1.1.zip 
+ Several bugfixes

xml-2-mdb 1.0                                                     15. Sept. 2005 
--------------------------------------------------------------------------------
+ First version



Support
=======

Visit our support forum at http://forum.kybernetika.de/ 
Do not forget to post your error message, and the XML file you are having
trouble with.



Disclaimer
==========

DISCLAIMER OF WARRANTIES:  YOU AGREE THAT KYBERNETIKA GmbH HAS MADE NO
EXPRESS WARRANTIES TO YOU REGARDING THE SOFTWARE AND THAT THE SOFTWARE IS
BEING PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. KYBERNETIKA
GmbH DISCLAIMS ALL WARRANTIES WITH REGARD TO THE SOFTWARE; EXPRESS OR
IMPLIED; INCLUDING; WITHOUT LIMITATION; ANY IMPLIED WARRANTIES OF FITNESS
FOR A PARTICULAR PURPOSE; MERCHANTABILITY; MERCHANTABLE QUALITY OR
NONINFRINGEMENT OF THIRD PARTY RIGHTS.

LIMIT OF LIABILITY: IN NO EVENT WILL KYBERNETIKA GmbH BE LIABLE TO YOU FOR
ANY LOSS OF USE; INTERRUPTION OF BUSINESS; OR ANY DIRECT; INDIRECT;
SPECIAL; INCIDENTAL; OR CONSEQUENTIAL DAMAGES OF ANY KIND (INCLUDING LOST
PROFITS) REGARDLESS OF THE FORM OF ACTION WHETHER IN CONTRACT; TORT
(INCLUDING NEGLIGENCE); STRICT PRODUCT LIABILITY OR OTHERWISE; EVEN IF
KYBERNETIKA GmbH HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Enjoy,

Michael Banik
KYBERNETIKA GmbH
http://www.kybernetika.de/
