A lot of people ask us what the differences are between ml: and the fo: namespace and why we don't have chosen to implement it?
The reasons are two-fold:
- Have you ever looked at the
fo: specification as a 'newcomer'.
Unless you are working in the pre-press world you will be quite frightened
with the whole lot of options and possibilities the specification defines. Not only is the specification difficult to use, it is also often
overkill for that 'simple' report you want.
- A lot of
fo: transformers are quite memory hungry and have poor
performance (ever tried to generate a 5000 pages document with one table in
it) ?
Based on these two reasons we implemented are own ml: namespace:
- The
ml: namespace is much simpler that the fo: specification, making it
easier to get started with.
- As the specification is much simpler, XMLMill's footprint is also much
smaller allowing 'high volume xml/xsl to pdf generation'.
The ml: implementation will feel like you are working with your favorite word processor:
- First you define the document's default page properties (media, orientation, margins, header, footer, ...).
- Next you define the content of each page with the existing elements like
<p>, <textbox>, <table>, list-bullets, ...
As of version 2.00 XMLMill has inherited a number of fo: elements (although the ml: namespace is kept), facilitating the transformation from the fo: namespace to the ml: namespace (for those willing to use the 'high volume xml/xsl to pdf generation' capability of XMLMill).