title: OML
text: # OML
  
  OML (Outline Markup Language) is an XML format for outlines. It was originally proposed by Ray Grieselhuber. The specification is designed to build upon the concepts found in OPML, with the goal of fixing some of its limitations.
  
  OML has a structure similar to OPML. Its advocates claim that although it is as simple and as flexible as OPML, its extension mechanism is better than that of OPML. Instead of letting users add attributes freely, OML introduces an <item> element (child element of <outline>); instances of the <item> element may be added freely.
  
  The resulting documents are claimed to be easier to parse than equivalent OPML documents. Readers of OPML never know what attributes others may have added to standard elements; so an element the reader wants to parse may contain a mixture of known and unknown attributes. This claimed disadvantage of OPML actually applies to any XML-based format, including OML, because XML namespaces may add attributes to existing tags; however, OPML is unusual in its enthusiasm for free-form definition of new attributes. In OML, extensions are added in the form of <item>s instead; an unknown <item> may be discarded without harming known data elsewhere in the file. The approach taken by OML is designed to be more in keeping with the approach of other XML-based languages and with the philosophy of some standards organizations.
  
  Despite its claimed advantages, OML has not seen wide use. Reasons for the greater popularity of OPML may include the relative newness of OML (finalized in May 2003), and non-technical political issues between members of the XML community.
  
  Critics of OML point out OML doesn't have a mechanism to preserve whitespace. Some have also found the distinction between <item> and <data> unnecessary.
  
  