A few scribbles toward the DTD.
diff --git a/Doc/sgml/python.dtd b/Doc/sgml/python.dtd
new file mode 100644
index 0000000..e9bf50a
--- /dev/null
+++ b/Doc/sgml/python.dtd
@@ -0,0 +1,43 @@
+<!ENTITY % common.att "
+	  id	ID	#IMPLIED
+	  role	NMTOKEN	#IMPLIED">
+
+<!-- include the OASIS Exchange Table Model -->
+<!ENTITY oasis-tables.mod
+	  PUBLIC "-//OASIS//DTD Exchange Table Model 19960430//EN">
+&oasis-tables.mod;
+
+<!ELEMENT input - - EMPTY>
+<!ATTLIST input
+	  %common.att;
+          xml:link #FIXED "simple"
+          show CDATA "embed"
+          embed CDATA "auto"
+          source CDATA #REQUIRED>
+
+<!ELEMENT (function|constant) - - (#PCDATA)>
+<!ATTLIST (function|constant)
+	  %common.att;
+	  index (index|noindex) noindex
+	  module CDATA #IMPLIED>
+
+<!ELEMENT method - - (#PCDATA)>
+<!ATTLIST method
+	  %common.att;
+	  index (index|noindex) noindex
+	  module CDATA #IMPLIED
+	  class CDATA #IMPLIED>
+
+<!ELEMENT module - - (#PCDATA)>
+<!ATTLIST module
+	  %common.att;
+	  link (link|nolink) nolink
+	  package CDATA #IMPLIED>
+
+<!ELEMENT signature - - (name, super*, args?)>
+<!ELEMENT name      - - (#PCDATA)>
+<!ELEMENT super     - - (#PCDATA)>
+<!ELEMENT args      - - (#PCDATA)>
+
+<!ELEMENT %descriptor.class; - - (sig+, description)>
+<!ELEMENT description        - - (%para.mix;)>