Xompare
XML comparison utility in C#.

CLI Syntax
==========

   filediff|files|f: Compares given XML files

        /ofn /originalfilename : The original XML file name (String) 
        /ol /labelfororiginal  : A label describing the original XML file (String) 
        /tfn /targetfilename   : The target XML file name (String) 
        /tl /labelfortarget    : A label describing the target XML file (String) 

   Global Parameters:

        /h /help : Display this syntax information message (Boolean)
        /debug	 : (Boolean) 


Credits
=======
1. CLAP library for command-line parsing by Adrian Aisemberg - http://adrianaisemberg.github.io/CLAP/#about
2. Application logo, icon of Owl by Martin Berube - http://www.iconarchive.com/show/animal-icons-by-martin-berube/owl-icon.html
3. DiffPlex library for finding differences between given texts - https://diffplex.codeplex.com/


Release Notes
=============

Version 0.9.12.1 Beta
=====================
- Fixed problem with multiple redundant GUI tree refreshes in cases of adding a comaprison tab, changing file in one pane and editing files outside the application.
- Fixed a performance problem with creating inner (attributes of an element) XML comparisons.
- Fixed: Sometimes focusing on one node, shows more than one corresponding nodes on the other pane, not all of which are related.
- Added subject to the feedback email link on the About form.

January 21st, Version 0.9.12 Beta
=================================
- Added feedback-link to the About form.
- Added 'Copy XML Text' option to the tree-node context menu to copy the (recursive) XML contents represented by that tree-node to the Clipboard.
- Fixed bug #1894 - Comparison is only case-sensitive.
    - Added functions to ignore name case, value case or white-spaces in the XNL comparison, both algorithm and UI-wise.
        - These functions are saved to the application configuration when changed.
- Fixed: When choosing a tree-node with no peer on the other pane, on the bottom text comparison the other text is not changing and false text-diff is calculaated.
- Fixed: Values containing EOLs would not display in the text-comparison pane.

December 7th, Version 0.9.11.2 Beta, Revision
=============================================
- XML value text comparator is displaying colorized diffs.

December 6th, Version 0.9.11.1 Beta, Revision
=============================================
- Fixed the scroll-bar of the text value comparison to actually affect the text-boxes.

December 5th, Version 0.9.11 Beta
=================================
- Application title reflects the name of the current tab.
- Added Toolbar with:
    - 'New Comparison' button.
    - 'Refresh' tab button.
- Added bottom text lines to display the values of the nodes selected in the original and target panes, so it is easier to compare them.
    - Selecting a node while pressing the Ctrl key only selects it and puts it on the text line comparer on the bottom without selecting the peer node on the other pane.
- Added auto refresh for file changes outside the utility.
- Added copy to clipboard menu items for XML tree nodes, to copy the qualified-name, local-name and value of the XML object represented.
- Added context menu to the tab-pages.
- Added basic UI commands infrastructure to handle the visibility state of tool-item control commands.
- Added a question box display + log.
- Right click on XML tree node selects the node.

November 8th, Version 0.9.10 Beta
=================================
- Textbox of the filename would accept empty name, and if there was an invalid file name given - the last legal name would not re-appear. Fixed.
- Leaf XML elements would sometime appear as changed although they're not. Fixed.
- Created FormsUtilities project for generix UI utilities. Moved 'LabeledTextBox' there.

November 2nd, Version 0.9.9 Beta
================================
- Added CLAP library to be able to parse command line and run the utility accordingly.
    - CLI command for XML file diff. The command can choose files to compare, and optionally labels to give the files on display.
    - Added a license notice for CLAP in the 'About' form.
    - Added menu 'Help/CLI Syntax', displaying the available CLI parser expected syntax.
- The text-box for file name can display a label instead, until gets the focus - and then displays the file name again for editing.
- Making sure that the splitter in the XML comparison tab stays mostly in the middle.
- Double clicking the splitter on an XML comparison tab, positions the splitter in the middle of the tab.
- The 'About' form behaved like a modeless form. Fixed.
- Fixed issue #1890 - "Showing redundant differences".

October 22nd, 2013: Version 0.9.8 Beta
======================================
- Parse files and present comparison in a tree structure.
- MDI tab UI.
- Mark comparison with:
    - Red for items only in original XML.
    - Green for items only in target XML.
    - Purple for items similar on both sides but different.
    - Light blue background for parents of items of several types of differences, to show path of different items in the tree.
    - Sub-tree of added element is marked with light green.
    - Sub-tree of removed element is marked with light red.
    - When selecting a tree-node that has a match on the other side of the comparison - it is marked with yellow.
- Expand and collapse all decended nodes (context menu from tree-node).
- Show tree and XML path for each node (context menu from tree-node).
- Choose and replace files on both sides.
- Configuration allows:
    - Determine a default key as name of XML attribute for comparison.
    - Determine an overriding such a default key per a given file extension.

Known issues:
1. If the XML file order is crucial (e.g. XAML) the tool does not refer to the order of XML elements.
    This, e.g., may lead to not pointing out that two elements switched places.