[Yanel-dev] BasicXMLResource inconsistencies
Evaldas Taroza
etaroza at optaros.com
Mon Jan 14 14:35:37 CET 2008
Josias Thöny wrote:
> Evaldas Taroza wrote:
>> Josias Thöny wrote:
>>> Evaldas Taroza wrote:
>>>> Hi,
>>>> there are static properties in BasicXMLResource:
>>>> SERIALIZER_OMIT_XML_DECLARATION = "serializer-omit-xml-declaration";
>>>> SERIALIZER_DOCTYPE_PUBLIC = "serializer-doctype-public";
>>>> SERIALIZER_DOCTYPE_SYSTEM = "serializer-doctype-system";
>>>
>>> I think those properties are obsolete and should be removed.
>>> Thanks for pointing this out.
>>>
>>> The serializer can be overridden in the rc like so:
>>>
>>> <yanel:custom-config>
>>> <views>
>>> <view id="default">
>>> <mime-type>text/html</mime-type>
>>> <xslt>/xslt/global.xsl</xslt>
>>> <serializer key="HTML_TRANSITIONAL">
>>> <omit-xml-declaration>yes</omit-xml-declaration>
>>> <doctype-public>-//W3C//DTD XHTML 1.0
>>> Transitional//EN</doctype-public>
>>>
>>> <doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</doctype-system>
>>>
>>> </serializer>
>>> </view>
>>> </views>
>>> </yanel:custom-config>
>>>
>> The thing is that these properties
>> <omit-xml-declaration>
>> <doctype-public>
>> <doctype-system>
>>
>> don't override serializer's behaviour... That needs to be implemented
>> in BasicXMLResource.
>
> Hm, it's implemented as follows (line 276):
>
> // allow to override xml declaration and doctype:
> Properties properties = viewDescriptor.getSerializerProperties();
> if (properties != null) {
> Enumeration propNames = properties.propertyNames();
> while (propNames.hasMoreElements()) {
> String name = (String)propNames.nextElement();
> String value = properties.getProperty(name);
>
> serializer.getOutputFormat().setProperty(name, value);
> }
> }
>
> do you think it's not working?
Yeah, it is really implemented. Still with this view:
<view id="default">
<mime-type>text/html</mime-type>
<xslt>/xslt/brand-browser-xml2json.xsl</xslt>
<serializer key="HTML_TRANSITIONAL">
<omit-xml-declaration>yes</omit-xml-declaration>
<doctype-public>-//W3C//DTD XHTML 1.0
Transitional//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</doctype-system>
</serializer>
</view>
The generated XHTML has the following header:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE"
"http://www.w3.org/TR/html4/loose.dtd">
which is not quite as specified.
Evaldas
More information about the Yanel-development
mailing list