KMRCLを眺める(228) SGML-HEADER-STREAM — #:g1

Posted 2010-11-22 13:41:00 GMT

今回はKMRCLのxml-utils.lispから、SGML-HEADER-STREAMです。
名前の通り、SGML系のヘッダを出力するのに使うようです。
定義は、

(defun sgml-header-stream (format stream &key entities (encoding "iso-8859-1") standalone (version "1.0")
                          top-element (availability "PUBLIC") registered organization (type "DTD")
                           label (language "EN") url)
  (when (in format :xhtml :xhtml11 :xhtml10-strict :xhtml10-transitional :xhtml10-frameset :xml :docbook)
    (xml-declaration-stream stream :version version :encoding encoding :standalone standalone))
  (unless (eq :xml format)
    (doctype-format stream format :top-element top-element
                    :availability availability :registered registered
                    :organization organization :type type :label label :language language
                    :url url :entities entities))
  stream)
動作は、
(with-output-to-string (out)
  (kl::sgml-header-stream :xhtml10-transitional
                          out))
;=> "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>
;   <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml10/DTD/xhtml10-transitional.dtd\">
;   "
といったところ。
ふと気付いたのですが、どうも、一般的には、http://www.w3.org/TR/xhtml10/DTD/xhtml10-transitional.dtdじゃなくて、 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdのようなんですが、定義が古かったりするんでしょうか。

comments powered by Disqus