You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Glen Mazza <gm...@apache.org> on 2005/06/27 02:54:35 UTC

Re: [Xmlgraphics-fop Wiki] Update of "ApiRequirements" by JeremiasMaerki

+ == HR8 ==

>+ 
>+ (jeremias, 2005-06-26) At some point we should localize the clear-text feedback from the validation and layout process. If FOP is used in an end-user application, the errors and warning must be understandable to not-so-technical people.
>+ 
>  
>


Most validation messages are now centralized in FONode's message 
functions, so a Xalan-style i18n (language files, etc.) can be done much 
more easily right now.  Understanding DTD content model error messages 
(+, *, etc.) is much less mentally challenging than XSL FO stylesheet 
design, anyone who cannot handle the former will not be able to do that 
latter anyway.  I would not want to mask knowledge of this from the 
user--along with XSL, it's a Very Good Thing for them to learn, and any 
questions they may have on this on the FOP-USER list would happily be 
answered by other users with no effort from us.  (Although Andreas tends 
to answer such questions anyway, they are like candy to him. ;-)

We want our users to be very, very smart and confident at the 
office--much more Java and XML-knowledgable than others at the office 
who would recommend proprietary technologies for report generation.  
Getting rid of TraxInputHandler and XSLTInputHandler and having them 
learn standard JAXP instead was one way to accomplish this goal.  Having 
them learning DTD content-model syntax helps us in another.


>+ == wL1 ==
>+ 
>+ (jeremias, 2005-06-26) I want renderer selection by MIME type even though there's technically no MIME type for a print renderer.
>  
>


Hmmm, you have wanted this for a long time now.  MIME types are hard to 
remember--most users *don't* have them etched in memory like you do--and 
we don't get the auto-complete from IDE's that we can get from 
Fop.RENDER_XXX.   Nor have we had much demand for them, or complaints 
about the integer constants. 

At the same time though it would be better for the project for you to 
accomplish what you want here, so you can better and more productively 
focus on other things.  I would recommend first having MIME types *in 
addition to* integer constants--i.e., add an additional "convenience" 
constructor in apps.Fop that takes the String MIME type and converts it 
there to an integer for subsequent use by the system.  Step #2 would be 
to come up with a plan for the team to replace the constants with 
strings internally, and then proceed if they approve.  Steps #3, #4, 
etc. are whatever you're planning for this afterwards.  But I'm taking 
myself out of this discussion--if the team wants MIME types instead of 
integer constants, MIME types it will be.

My main concern though is that I would recommend against direct access 
of RendererFactory by embedded users--keep them referencing apps.Fop or 
FOUserAgent for their configurations (or Avalon configuration file, 
etc.) if possible.  Those two classes form the shield that allow present 
and future committers to do anything they want to FOP's internal code 
without concern for backwards compatibility.  Like FOTreeBuilder, 
RendererFactory is within our black box, and should be subject to 
renaming/modification/deletion at any time.

Glen