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
Based on these two reasons we implemented are own
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'.
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).