For the record, this is how to include a "DOCTYPE declaration"n:http://www.seoconsultants.com/w3c/doctype.asp in Zope when you use "PageTemplates with METAL"n:http://dev.zope.org/Wikis/DevSite/Projects/ZPT/METAL%20Specification%201.0.
In your standard template object (e.g. StandardLook.zpt):
<metal:block define-macro="standard">
<?xml version="1.0"?>
<metal:block define-slot="doctype">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</metal:block>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
...
</html>
</metal:block>
This site is not XHTML valid (yet), but W3C has the validator to use.
Comments
Thanks for a great bit of advice! I find that some parsers (notably W3C's validator) get a little confused by the empty 1st line that this results in. I fixed it by doing
<metal:block define-macro="foobar"
><?xml version="1.0" encoding="utf-8"?>
...etc
instead -- no newline between the end of metal:block and the beginning of the xml processing directive.