Skin Doctype
If you create a skin, the skin parser (which converts an HTML skin file to the actual skin usercontrol) only uses the HTML pages content between the body tags.
Anything outside the body tags is ignored.
This means the doctype of an HTML skin is not used by DotNetNuke.
This could lead to rendering difference if you use an XHTML doctype in your HTML skin, since DotNetNuke use a HTML 4 transitional doctype by default (to support legacy skins).
There are 2 ways to force DotNetNuke to use an XHTML doctype:
A. You can set the doctype for a specific skin by including a doctype.xml file.
The name of this file should be: "skinname".doctype.xml.
So of every HTML / ASCX file you will have to add an XML file.
The content of this file should be:
<SkinDocType>
<![CDATA[<!DOCTYPE>]]>
</SkinDocType>
The <!DOCTYPE> part should be replaced with the HTML doctype.
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
B. You can set the Fallback doctype from the host settings.
Choose Host > Host Settings and select the doctype under “Fallback Skin doctype”.
This will force all skins on all portals without a doctype.xml file to use the doctype you set.
Please beware that this could potentially lead to unwanted effects if there are non XHTML skins in other portals then the one you are targeting.
Xml Namespace for XHTML skins
If you use an XHTML doctype, the Xml Namespace will be added automatically to the HTML element by the Framework. (Result: <html xmlns="http://www.w3.org/1999/xhtml" >)