[jsr-314-open-mirror] [jsr-314-open] [490-XmlViews] Chapter 11: The JSF XML View Syntax
Blake Sullivan
blake.sullivan at oracle.com
Wed Oct 27 19:18:38 EDT 2010
On 10/27/10 2:09 PM, Andy Schwartz wrote:
> On 10/27/10 12:29 AM, Cay Horstmann wrote:
>> Sure, that's great. Except, it should probably be f:doctype since it
>> is not HTML specific.
>
I think that the idea is that it shouldn't be in h: because it applies
to all SGML-derived languages.
-- Blake
> I think f:doctype works. Though we do seem to be blurring the lines a
> bit between the h: and f: tag libraries. The old JSP taglib doc for
> h: says:
>
>> This tag library contains JavaServer Faces component tags for all
>> UIComponent + HTML RenderKit Renderer combinations defined in the
>> JavaServer Faces Specification.
>
> And doc for the f: taglib:
>
>> The core JavaServer Faces custom actions that are independent of any
>> particular RenderKit.
>
> These descriptions seem to be accurate for 1.2. As of 2.0 we have
> started adding tags into the f: taglib that actually do have
> corresponding Renderers (or ClientBehaviorRenderers) in the HTML_BASIC
> standard render kit. (I am thinking of f:viewParam and f:ajax.)
>
> Would f:doctype be similar to f:viewParam in that we would introduce a
> new component + Renderer in the HTML_BASIC render kit?
>
>> Or, if we cared about consistency with JSP, we could use the same
>> attributes as jsp:output:
>>
>> <f:doctype omit-xml-declaration="no"
>> doctype-root-element="html"
>> doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
>>
>> doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
>>
>
> Ah, good old jsp:output. The highlight of my day was reviewing this
> reference doc:
>
> http://java.sun.com/products/jsp/syntax/2.0/syntaxref2022.html
>
> My favorite part:
>
>> The JSP container will not include the XML declaration in the output
>> when either of the following is true:
>>
>> You set the omit-xml-declaration attribute of the jsp:output element
>> to either true or yes.
>> You have a jsp:root element in your JSP document, and you do not
>> specify omit-xml-declaration="false" in jsp:output.
>>
>> The JSP container will include the XML declaration in the output when
>> either of the following is true:
>>
>> You set the omit-xml-declaration attribute of the jsp:output element
>> to either false or no.
>> You do not have a jsp:root action in your JSP document, and you do
>> not specify the omit-xml-declaration attribute in jsp:output.
>
> I had the same reaction to this that Bart Simpson had to "Don't do
> what Donnie Don't Does": They could have made this clearer. [1] :-)
>
> If we do follow a jsp:output-like solution, I think that we would want
> to:
>
> - Separate out the XML declaration part. This doesn't seem to make
> sense on an f:doctype tag.
> - Massage the attribute names to be more in line with JSF naming
> conventions, eg. "rootElement", "public", "system"
>
> The XML declaration part is interesting on its own. When running in
> the new XML/JSPX processing modes, we do not want to pass this through
> by default - ie. the XML declaration pertains to the Facelets document
> itself, not to the generated content. However, when rendering
> text/xhtml content, we do want to render an XML declaration so that
> our rendered document will be valid XML. Rather than requiring the
> page author to provide a hint to control this behavior (like
> jsp:output's omit-xml-declaration attribute), I would prefer that the
> RenderKit/ResponseWriter detect this case and handle it in a
> transparent manner. Does this sound reasonable/doable?
>
> Andy
>
> [1] http://www.snpp.com/episodes/1F06.html
More information about the jsr-314-open-mirror
mailing list