Mathieu has posted 10 posts at DZone. View Full User Profile

Fluent Interface for Building XML Documents

09.15.2008
| 4280 views |
  • submit to reddit
Location: 
http://code.google.com/p/xmltool/

XML Tool is a Java library to help developers using XML document. You can build new documents, load existing documents, and execute all sorts of operations onto: delete, renaming, adding tags, attributes, text, data, namespaces, ... Navigation by XPath is also supported.

Since it uses the Fluent Interface pattern, you don't have to know about plenty of classes, but just one: XMLDoc. From there, you can just use your IDE's code completion to check for available methods and call them consecutively.

Here is an excerpt of an example:

XMLDocument doc = XMLDoc.newDocument()
.addDefaultNamespace("http://www.w3.org/2002/06/xhtml2/")
.addNamespace("wicket", "http://wicket.sourceforge.net/wicket-1.0")
.addRoot("html")
.addTag("wicket:border")
.gotoRoot().addTag("head")
.addNamespace("other", "http://other-ns.com")
.gotoRoot().addTag("other:foo");

You can download / checkout XML Tool from http://code.google.com/p/xmltool/

0
Average: 4 (1 vote)
Published at DZone with permission of its author, Mathieu Carbou.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Peter Maas replied on Mon, 2008/09/15 - 5:44am

You should remove the following line from the source listing since is is not part of the actuall code:

<a name="XML_Tool_Overview" title="XML_Tool_Overview"></a>

 

Wilfred Springer replied on Sat, 2009/02/14 - 4:04pm

I have been working on Pecia last year. It's a fluent interface for building documents, based on a subset of DocBook. While working on it, I started to think that it probably would make sense to basically generate the fluent interface from the XML schema. Reading all of the above, it made me remember all of that again.

Lukas Eder replied on Tue, 2011/08/09 - 7:30am

Very nice. I found this article when looking for a similar tool. Too bad, yours doesn't generate standard org.w3c.dom.Document's but rolls its own DOM model. Any plans to extend this?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.