Martin Heller
Contributing Writer

XML Notepad 2007

analysis
May 14, 20072 mins

In case you missed it, Microsoft resurrected the old XML Notepad last year. The new version, XML Notepad 2007, is a .NET 2.0 application for which source code is available on CodePlex. I find it the application quite useful. You can find the links to XML Notepad 2007 at the Microsoft XML Developer Center site. In an August 2006 article on MSDN, Chris Lovett, the principal developer of the appllication

You can find the links to XML Notepad 2007 at the Microsoft XML Developer Center site. In an August 2006 article on MSDN, Chris Lovett, the principal developer of the appllication, discussses its design.

What does it do? According to the author:

XML Notepad 2007 provides a simple intuitive User Interface for browsing and editing XML documents.

Handy features include:

  • Tree View synchronized with Node Text View for quick editing of node names and values.
  • Incremental search (Ctrl+I) in both tree and text views, so as you type it navigates to matching nodes.
  • Cut/copy/paste with full namespace support.
  • Drag/drop support for easy manipulation of the tree, even across different instances of XML Notepad and from the file system.
  • Infinite undo/redo for all edit operations.
  • In place popup multi-line editing of large text node values.
  • Configurable fonts and colors via the options dialog.
  • Full find/replace dialog with support for regex and XPath.
  • Good performance on large XML documents, loading a 3mb document in about one second.
  • Instant XML schema validation while you edit with errors and warnings shown in the task list window.
  • Intellisense based on expected elements and attributes and enumerated simple type values.
  • Support for custom editors for date, dateTime and time datatypes and other types like color.
  • Handy nudge tool bar buttons for quick movement of nodes up and down the tree.
  • Inplace HTML viewer for processing
  • Built-in XML Diff tool.
  • Support for XInclude.
  • Dynamic help from XSD annotations.
  • Goto definition to navigate includes and XSD schema information.

What can you learn from the source code? The short summary is how to implement all of the above; I think that the code that processes XML is quite elegant, and a good starting point for people writing other XML processing applications.

On the other hand, don’t expect too much: I wasn’t able to build the version 465 project I downloaded from CodePlex without errors in my copy of Visual Studio 2005. I wasn’t able to bring up the forms in design view, and all the unit tests failed. There has been a new build posted in the last few days; I hope that will fix the problem.

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author