ServingXML is a markup language for expressing XML pipelines and an extensible Java framework for defining the elements of the language. It defines a vocabulary for expressing flat-XML, XML-flat, flat-flat, and XML-XML transformations in pipelines. The accompanying console app supports reading content as XML files, flat files, SQL queries, or SAX events, and writing it as XML, HTML, PDF, or mail attachments. This software is especially suited for converting flat file or database records to XML, with its support for namespaces, variant record types, multi-valued fields, segments and repeating groups, hierarchical grouping of records, and row-by-row validation with XML Schema. There is also an API for embedding the software in a Java application.
xml-test checks that an XML document is included in another document. It is handy when testing an application's output against a document where element order is different (GData and Atom are examples of specifications where element order is unimportant). It has a relaxed notion of containment: element order is ignored, whitespace is trimmed, comments are ignored, specific elements can be ignored by passing XPath-like paths on the command line, and text nodes (element and attribute content) can be ignored by passing '-notext' on the command line.