SourceForge Logo

xmLP - A Literate Programming Tool for XML

Anthony B. Coates

| Download xmLP from SourceForge |

xmLP News

xmLP & Literate Programming

xmLP is a literate programming tool written in XSL-T. It is heavily influenced by experience with FunnelWeb, a non-XML literate programming tool. Literate programming is about being able to getting away from having to write computer programs (or any other files for programmatic consumption) in a fashion that makes sense only to the compiler (or other applications) rather than to the humans, who really need to be the ones in charge of the process.

A literate program is a human readable document which is written and ordered so that it can be understood most easily by people. Source code fragments (or any text/XML fragments) can appear in the literate document in any order, and are assembled in the order required for computer use by tangling the document, to introduce the terminology of Donald Knuth, who came up with the idea of literate programming in the first place. The literate document is also woven to convert it into a final documentation format (traditionally TeX or LaTeX, but these days likely to be HTML or PDF).

xmLP differs from traditional literate programming tools when it comes to weaving. Traditionally, weaving involves both generating cross-reference information and producing formatted output. However, tools like XSL-T make it unnecessary for an XML literate programming tool to deal with display rendering. Hence the xmLP weaver is intentionally minimalist, and does nothing except add cross-reference information to the original literate document. This additional cross-reference information makes it much easier to build cross-reference hyperlinks using a simple rendering XSL-T stylesheet (rule of thumb: always try to separate business logic and display rendering into separate XSL-T stylesheets).

xmLP is released under version 2.1 of the Lesser GNU Public License.

Using xmLP

This first release is xmLP is very bare bones, and has almost no documentation. Documentation will come with a future release. There are two main elements that xmLP requires to be embedded in an XML literate program:

  1. lp:macro is used to define a named xmLP macro (code fragment). It can contain either lp:text or lp:xml elements, but best practice is not to mix both within a single macro (or within the macros used to build a single file);
  2. lp:file is similar to a macro definition, but provides binding to a filename for use by the xmLP tangler.

The way that xmLP is used is:

  1. Write your XML literate program containing lp:file, lp:macro, etc.;
  2. Use xmLPtangle.xsl (or xalan-tangle.xsl) to tangle your literate program and produce the raw source files;
  3. Use xmLPweave.xsl to add cross-reference information to your literate program;
  4. Use an XSL-T stylesheet (or other mechanism) to convert your woven literate program into a presentation format (e.g. (X)HTML, XSL-FO, RTF). An example is weave-xhtml.xsl.

How to get xmLP

xmLP is available from SourceForge. As well as the download area, the latest xmLP news is there, as well as forums and the xmLP-announce mailing list. For general discussion about xmLP and literate programming with XML, please use the xml-litprog-l list at Yahoo Groups.


  1. xmLP — a Literate Programming Tool for XML & Text, Extreme Markup Languages 2002.
  2. Two of the presentations at XML DevCon Europe 2001 were generated using XML literate programs. See


  2. Literate programming was first thought of by Donald Knuth, who has written a book about it. He wrote the first literate programming tool, WEB, which is Pascal-specific.
  3. To mention just some of the available literate programming tools :
    FunnelWeb, noweb, SWEB, WEB, CWEB, FWEB.
  4. Literate programming resources (in English) at LORIA.
  5. xml-litprog-l is an independent mailing list for discussion of literate programming using XML.
  6. This latest version of this information is available from

Last updated: 6th August, 2002.

SourceForge Logo

This Page for search term : xml formatter, xml validator, what is xml, xml viewer, xml notepad, xml parser, xml to json, xmlspy, xml comment, xml format, driveimage xml, python xml, format xml, xml reader, json vs xml, json to xml, xml to csv, validate xml, what is an xml file, xml document, xml editor free, free xml editor, xml spy, xml beautifier, xml cdata, xml namespace, online xml formatter, oxygen xml, xml example, xml validator online, xml to excel, python xml parser, xml pretty print, pom.xml, convert xml to excel, convert xml to json, convert xml to csv, xml comments, xml-rpc, linq to xml, xml file example, how to open xml file, xml viewer online, open xml file, xml vs json, cdata in xml, for xml path, xml database, xml to xsd, sample xml file, oxygen xml editor, xml converter, xml validation, what is xml format, learn xml, xml header, comments in xml, php parse xml, xml special characters, python parse xml, xml encoding, c# xml, xml dtd, xml notepad 2007, xml tags, xsd to xml, xml schema example, xml to pdf, xml marker, excel to xml, generate xsd from xml, xml to json converter, csv to xml, xml parser online, xml feed, androidmanifest.xml, xml checker, xml vs html, comment in xml, log4j.xml, xml serialization c#, xml definition, jquery xml, xml attribute, xml tag, xml file format, format xml online, xml formatter online, online xml editor, online xml validator, what is a xml file, convert json to xml, xml to html, parse xml, validate xml against xsd, w3schools xml, xml wiki, php xml parser, xml interview questions, jquery parse xml, perl xml parser, powershell xml, php xml to array, soap xml, xml declaration, xml element, sample xml, define xml, xml syntax, open xml sdk, xml code, convert xml to pdf, xml structure, what is xml file, xml parsing, excel xml, generate xml from xsd, xml file viewer, convert csv to xml, xml editor online, convert excel to xml, xml schema validator, xml generator, convert xml to html, import xml into excel, office open xml, best free xml editor, xml to excel converter, xml stylesheet, pdf to xml, stylus studio, c# read xml, comment xml, perl xml, c# read xml file, c# parse xml, read xml file c#, xml ampersand, python xml parsing, web.xml example, scala xml, xml parsing error, xml node, build.xml, xml encode, xml tidy, edit xml file, what is xml used for, create xsd from xml, xml xsd, simple xml, how to view xml files, create xml file, best xml editor, how to open an xml file, xml copy editor, xml schema generator, what is an xml document, android xml, online xml viewer, convert pdf to xml, how to open xml files, xml basics, microsoft xml editor, online xml parser, json to xml converter, xml diff, xml to csv converter, xml for dummies, xml sample, perl xml simple, xml doctype, xml python, & in xml, parse xml c#, xml w3schools, xml date format, log4j.xml example, cdata xml, c# xml parser, ant build.xml, dtd xml, application.xml, hibernate.cfg.xml, xml xpath, xml attributes, sql xml, xml site map, parsing xml, sql xml query, xml publisher, voicexml, xml language, xml path, how to create an xml file, xml excel, how to open xml, open source xml editor, xml gateway, what are xml files, xml editors, xml tutorial pdf, xml reader online, xml tools, xml compare, convert html to xml, xml viewer free, compare xml files, create xml sitemap, invalid xml characters, xml extension, ruby xml, php array to xml, microsoft xml parser, ampersand in xml, tomcat server.xml, xml examples, html vs xml, sql server xml, xml entity, xml mime type, maven pom.xml, microsoft xml core services, well formed xml, json xml, xml namespaces, xml api, xml injection, how to read xml file, how to edit xml files, xml writer, edit xml, music xml, xml to xsd converter, xml document example, microsoft open xml converter, how to create xml file, xml transformation, xml to xls, valid xml, eclipse xml editor, learning xml, opening xml files, how to convert xml to excel, xml validate, xsd viewer, xml online tutorials, xml template, html to xml, xml pad, validate xml online, read xml file, free xml viewer, xml creator, altova xml spy, liquid xml, php read xml, c# xml reader, parse xml php, xml reserved characters, microsoft xml notepad, ruby xml parser, xml datetime, org.xml.sax.saxparseexception, android xml parser, xml entities, view xml, xml schema tutorial, system.xml, linq xml, xml to sql, microsoft xml, xml programming, xml c#, xml query, xml serialization, xsd from xml, xml xslt, xml standard, html xml, hr-xml, convert xml to xsd, dita xml, &amp xml, c xml parser, xml xsd validator, xml to pdf converter, xml file reader, open xml files, xml training, xml coding, convert xml to text, xml to html converter, excel xml mapping, convert xml, read xml, pdf to xml converter, xml formatting, xml editor open source, xml syntax checker, xml invalid characters, view xml file, xml attribute vs element, xml specification, cannot view xml input using xsl style sheet, display xml in html, doctype xml, vtd-xml, perl parse xml, xml standalone, sitemap.xml example, javax.xml, system.xml.linq, tomcat web.xml, jquery ajax xml, xml-apis, xml array, xml icon, spring xml, python xml tutorial, php simple xml, xml soap, xml data types, xml schema definition, sql to xml, xml parse, xml php, xml mapping, what is an xml, as3 xml, rss xml, xml json, xml tree, config.xml, xml web services, special characters in xml, read xml c#, xml table, how to convert xml to pdf, xml format online, xml file editor, convert xls to xml, notepad xml, xml builder, xml diff tool, convert xml to xls, convert xml to word, xml to text, xml pdf, open office xml, xml documents, how to read xml, how to open xml file in excel, how to parse xml, xml parse error, wiki xml, w3c xml validator, jquery get xml, xml parser c#, xml prolog, atom xml, xml processing instruction, xml include, c# linq to xml, groovy xml, excel xml format, xml line break, xml sitemap example, xml decoder, example xml file, log4j xml configuration, import xml to excel, xml declaration allowed only at the start of the document, sample web.xml, xls to xml, xml schema validation, xml sax, xml parsers, example xml, xml character, xml list, xml serializer, xml string, xml error, xml nodes, xml schemas, xml html, voice xml, linux xml editor, convert xsd to xml, xml xsl, xml in excel, w3c xml, how to edit xml file, editing xml files, rdf xml, converting xml to excel, windows xml editor, what is xml document, create xml schema, xml spreadsheet, convert txt to xml, xml import, xml browser, how to edit xml, xml feeds, xml map, xml tutorials, generate sample xml from xsd, html to xml converter, xml tutorial for beginners, xml visualizer, create xml, liquid xml studio, xml to word, sax xml, xml for beginners, xml signature, csv to xml converter, xml tester, how to open a xml file, xml software, word xml, xml tree viewer, how to use xml, xml verifier, excel to xml converter, merge xml files, xml validation tool, xml books, perl xml parser example, xml &amp, sample xml document, xml format example, wikipedia xml, binary xml, xml case sensitive, xml wikipedia, php read xml file, boost xml, php create xml, android parse xml, xml cdata example, xml encryption, convert string to xml, system.xml.xmldocument, xml interview questions and answers, export excel to xml, microsoft xml viewer, xml beans, xml to array php, xml document must have a top level element, system.xml.serialization, open xml sdk 2.0, javax.xml.transform.transformer, xml encoder, xml new line, how to read an xml file, qt xml, string to xml, convert to xml, xml date, reading xml files, xml, xml grid, xml sql, xml linq, eclipse xml, xml android, ajax xml, import xml, docbook editor, xml text, xml testing, xml databases, convert xml file to excel, xml conversion, how to read xml files, creating an xml file, xml to table, xml editor microsoft, viewing xml files, xml training courses, xml validator xsd, open xml document, xml doc, xml online validator, how to open xml document, xml to database, xml for dummies pdf, firstobject xml editor, compare xml, how to create a xml file, create xml from xsd, create an xml file, xml schema editor, xml tool, online xml reader, xml document reader, xml view, convert xml to doc, test xml, free xml editor windows, pdf xml, xml file converter, verify xml, xml comparison tool, xml notepad download, wmpinfo.xml, xml download, xml editor free download, xml reference, view xml files, how to view xml, xml indent, comments in xml file, xml file structure, acord xml, jquery read xml, php xml parse, read xml, xml types, c# create xml, xml parser perl, xml utf-8, namespace xml, xml fo, javax.xml.transform.source, castor xml, xml sitemap validator, generate schema from xml, rest xml, xml character encoding, open an xml file, xml schema data types, weather xml, microsoft core xml services, xml id, open xml converter, xpath xml, xml to string, svg xml, android strings.xml, xml documentation, xml standards, validate xml file, compare two xml files, xml type, struts.xml, schema xml, xml image, xml metadata, indesign xml, xml css, 3d xml, export xml, flash xml,