OSDN Git Service

* Added dt, dd tags.
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Wed, 19 Mar 2008 05:42:12 +0000 (05:42 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Wed, 19 Mar 2008 05:42:12 +0000 (05:42 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@1894 1a406e8e-add9-4483-a2c8-d8cac5b7c224

include/mod_chxj.h
include/qs_parse_string.h
src/chxj_chtml10.c
src/chxj_chtml20.c
src/chxj_chtml30.c
src/chxj_hdml.c
src/chxj_jhtml.c
src/chxj_xhtml_mobile_1_0.c

index 27cda26..d74086d 100644 (file)
@@ -289,6 +289,8 @@ typedef enum {
   tagDT,
   tagLEGEND,
   tagLABEL,
+  tagDL,
+  tagDD,
 } tag_type;
 
 typedef struct mod_chxj_config mod_chxj_config;
index fae10b7..631e3f9 100644 (file)
@@ -73,8 +73,6 @@
 #define has_child(c)       ((strcasecmp(c, "base"     ) != 0) \
                         &&  (strcasecmp(c, "meta"     ) != 0) \
                         &&  (strcasecmp(c, "br"       ) != 0) \
-                        &&  (strcasecmp(c, "dt"       ) != 0) \
-                        &&  (strcasecmp(c, "dd"       ) != 0) \
                         &&  (strcasecmp(c, "hr"       ) != 0) \
                         &&  (strcasecmp(c, "img"      ) != 0) \
                         &&  (strcasecmp(c, "input"    ) != 0) \
index 439d4e1..486e3b8 100644 (file)
@@ -84,8 +84,12 @@ static char *s_chtml10_start_option_tag   (void *pdoc, Node *node);
 static char *s_chtml10_end_option_tag     (void *pdoc, Node *node);
 static char *s_chtml10_start_div_tag      (void *pdoc, Node *node);
 static char *s_chtml10_end_div_tag        (void *pdoc, Node *node);
-static char *s_chtml10_start_dl_tag      (void *pdoc, Node *node);
-static char *s_chtml10_end_dl_tag        (void *pdoc, Node *node);
+static char *s_chtml10_start_dl_tag       (void *pdoc, Node *node);
+static char *s_chtml10_end_dl_tag         (void *pdoc, Node *node);
+static char *s_chtml10_start_dt_tag       (void *pdoc, Node *node);
+static char *s_chtml10_end_dt_tag         (void *pdoc, Node *node);
+static char *s_chtml10_start_dd_tag       (void *pdoc, Node *node);
+static char *s_chtml10_end_dd_tag         (void *pdoc, Node *node);
 
 static void  s_init_chtml10(chtml10_t *chtml, Doc *doc, request_rec *r, device_table *spec);
 
@@ -305,8 +309,8 @@ tag_handler chtml10_handler[] = {
   },
   /* tagDT */
   {
-    NULL,
-    NULL,
+    s_chtml10_start_dt_tag,
+    s_chtml10_end_dt_tag,
   },
   /* tagLEGEND */
   {
@@ -325,8 +329,8 @@ tag_handler chtml10_handler[] = {
   },
   /* tagDD */
   {
-    NULL,
-    NULL,
+    s_chtml10_start_dd_tag,
+    s_chtml10_end_dd_tag,
   },
 };
 
@@ -2867,6 +2871,107 @@ s_chtml10_end_dl_tag(void *pdoc, Node *UNUSED(child))
 
   return chtml10->out;
 }
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml10_start_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml10_t    *chtml10;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml10 = GET_CHTML10(pdoc);
+  doc     = chtml10->doc;
+  r       = doc->r;
+
+  chtml10->out = apr_pstrcat(r->pool, chtml10->out, "<dt>", NULL);
+
+  return chtml10->out;
+}
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml10_end_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml10_t    *chtml10;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml10 = GET_CHTML10(pdoc);
+  doc     = chtml10->doc;
+  r       = doc->r;
+
+  chtml10->out = apr_pstrcat(r->pool, chtml10->out, "\n", NULL);
+
+  return chtml10->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml10_start_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml10_t    *chtml10;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml10 = GET_CHTML10(pdoc);
+  doc     = chtml10->doc;
+  r       = doc->r;
+
+  chtml10->out = apr_pstrcat(r->pool, chtml10->out, "<dd>", NULL);
+
+  return chtml10->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml10_end_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml10_t    *chtml10;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml10 = GET_CHTML10(pdoc);
+  doc     = chtml10->doc;
+  r       = doc->r;
+
+  chtml10->out = apr_pstrcat(r->pool, chtml10->out, "\n", NULL);
+
+  return chtml10->out;
+}
+
 /*
  * vim:ts=2 et
  */
index e1a5a14..ab79187 100644 (file)
@@ -87,6 +87,10 @@ static char *s_chtml20_start_div_tag     (void *pdoc, Node *node);
 static char *s_chtml20_end_div_tag       (void *pdoc, Node *node);
 static char *s_chtml20_start_dl_tag      (void *pdoc, Node *node);
 static char *s_chtml20_end_dl_tag        (void *pdoc, Node *node);
+static char *s_chtml20_start_dt_tag      (void *pdoc, Node *node);
+static char *s_chtml20_end_dt_tag        (void *pdoc, Node *node);
+static char *s_chtml20_start_dd_tag      (void *pdoc, Node *node);
+static char *s_chtml20_end_dd_tag        (void *pdoc, Node *node);
 
 static void  s_init_chtml20(chtml20_t *chtml, Doc *doc, request_rec *r, device_table *spec);
 
@@ -308,8 +312,8 @@ tag_handler chtml20_handler[] = {
   },
   /* tagDT */
   {
-    NULL,
-    NULL,
+    s_chtml20_start_dt_tag,
+    s_chtml20_end_dt_tag,
   },
   /* tagLEGEND */
   {
@@ -328,8 +332,8 @@ tag_handler chtml20_handler[] = {
   },
   /* tagDD */
   {
-    NULL,
-    NULL,
+    s_chtml20_start_dd_tag,
+    s_chtml20_end_dd_tag,
   },
 };
 
@@ -3150,6 +3154,106 @@ s_chtml20_end_dl_tag(void *pdoc, Node *UNUSED(child))
 
   return chtml20->out;
 }
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml20_start_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml20_t    *chtml20;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml20 = GET_CHTML20(pdoc);
+  doc     = chtml20->doc;
+  r       = doc->r;
+
+  chtml20->out = apr_pstrcat(r->pool, chtml20->out, "<dt>", NULL);
+
+  return chtml20->out;
+}
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml20_end_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml20_t    *chtml20;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml20 = GET_CHTML20(pdoc);
+  doc     = chtml20->doc;
+  r       = doc->r;
+
+  chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\n", NULL);
+
+  return chtml20->out;
+}
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml20_start_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml20_t    *chtml20;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml20 = GET_CHTML20(pdoc);
+  doc     = chtml20->doc;
+  r       = doc->r;
+
+  chtml20->out = apr_pstrcat(r->pool, chtml20->out, "<dd>", NULL);
+
+  return chtml20->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml20_end_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml20_t    *chtml20;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml20 = GET_CHTML20(pdoc);
+  doc     = chtml20->doc;
+  r       = doc->r;
+
+  chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\n", NULL);
+
+  return chtml20->out;
+}
+
 /*
  * vim:ts=2 et
  */
index d25447a..93f502c 100644 (file)
@@ -89,6 +89,10 @@ static char *s_chtml30_chxjif_tag         (void *pdoc, Node *node);
 static char *s_chtml30_text_tag           (void *pdoc, Node *node);
 static char *s_chtml30_start_dl_tag       (void *pdoc, Node *node);
 static char *s_chtml30_end_dl_tag         (void *pdoc, Node *node);
+static char *s_chtml30_start_dt_tag       (void *pdoc, Node *node);
+static char *s_chtml30_end_dt_tag         (void *pdoc, Node *node);
+static char *s_chtml30_start_dd_tag       (void *pdoc, Node *node);
+static char *s_chtml30_end_dd_tag         (void *pdoc, Node *node);
 
 static void  s_init_chtml30(chtml30_t *chtml, Doc *doc, request_rec *r, device_table *spec);
 
@@ -305,8 +309,8 @@ tag_handler chtml30_handler[] = {
   },
   /* tagDT */
   {
-    NULL,
-    NULL,
+    s_chtml30_start_dt_tag,
+    s_chtml30_end_dt_tag,
   },
   /* tagLEGEND */
   {
@@ -325,8 +329,8 @@ tag_handler chtml30_handler[] = {
   },
   /* tagDD */
   {
-    NULL,
-    NULL,
+    s_chtml30_start_dd_tag,
+    s_chtml30_end_dd_tag,
   },
 };
 
@@ -2818,7 +2822,7 @@ s_chtml30_start_dl_tag(void *pdoc, Node *UNUSED(child))
 
 
 /**
- * It is a handler who processes the DLtag.
+ * It is a handler who processes the DL tag.
  *
  * @param pdoc  [i/o] The pointer to the CHTML structure at the output
  *                     destination is specified.
@@ -2841,6 +2845,107 @@ s_chtml30_end_dl_tag(void *pdoc, Node *UNUSED(child))
   return chtml30->out;
 }
 
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DL tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml30_start_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml30_t    *chtml30;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml30 = GET_CHTML30(pdoc);
+  doc     = chtml30->doc;
+  r       = doc->r;
+
+  chtml30->out = apr_pstrcat(r->pool, chtml30->out, "<dt>", NULL);
+
+  return chtml30->out;
+}
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml30_end_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml30_t    *chtml30;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml30 = GET_CHTML30(pdoc);
+  doc     = chtml30->doc;
+  r       = doc->r;
+
+  chtml30->out = apr_pstrcat(r->pool, chtml30->out, "\n", NULL);
+
+  return chtml30->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml30_start_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml30_t    *chtml30;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml30 = GET_CHTML30(pdoc);
+  doc     = chtml30->doc;
+  r       = doc->r;
+
+  chtml30->out = apr_pstrcat(r->pool, chtml30->out, "<dd>", NULL);
+
+  return chtml30->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_chtml30_end_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  chtml30_t    *chtml30;
+  Doc          *doc;
+  request_rec  *r;
+
+  chtml30 = GET_CHTML30(pdoc);
+  doc     = chtml30->doc;
+  r       = doc->r;
+
+  chtml30->out = apr_pstrcat(r->pool, chtml30->out, "\n", NULL);
+
+  return chtml30->out;
+}
+
+
 /*
  * vim:ts=2 et
  */
index 849b5d5..71f8330 100644 (file)
@@ -70,6 +70,10 @@ static char *s_hdml_start_img_tag     (void *pdoc,  Node *node);
 static char *s_hdml_end_img_tag       (void *pdoc,  Node *node);
 static char *s_hdml_start_div_tag     (void *pdoc,  Node *node);
 static char *s_hdml_end_div_tag       (void *pdoc,  Node *node);
+static char *s_hdml_start_dt_tag      (void *pdoc,  Node *node);
+static char *s_hdml_end_dt_tag        (void *pdoc,  Node *node);
+static char *s_hdml_start_dd_tag      (void *pdoc,  Node *node);
+static char *s_hdml_end_dd_tag        (void *pdoc,  Node *node);
 
 static char *s_get_form_no          (request_rec *r, hdml_t *hdml);
 
@@ -304,8 +308,8 @@ tag_handler hdml_handler[] = {
   },
   /* tagDT */
   {
-    NULL,
-    NULL,
+    s_hdml_start_dt_tag,
+    s_hdml_end_dt_tag,
   },
   /* tagLEGEND */
   {
@@ -324,8 +328,8 @@ tag_handler hdml_handler[] = {
   },
   /* tagDD */
   {
-    NULL,
-    NULL,
+    s_hdml_start_dd_tag,
+    s_hdml_end_dd_tag,
   },
 };
 
@@ -2873,6 +2877,98 @@ s_hdml_text_tag(void *pdoc, Node *child)
   return hdml->out;
 }
 
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc   [i/o] The pointer to the HDML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_hdml_start_dt_tag(void *pdoc, Node *UNUSED(node)) 
+{
+  hdml_t *hdml;
+  Doc    *doc;
+
+  hdml = GET_HDML(pdoc);
+  doc  = hdml->doc;
+
+  s_output_to_hdml_out(hdml, "<LINE>");
+
+  return hdml->out;
+}
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc   [i/o] The pointer to the HDML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_hdml_end_dt_tag(void *pdoc, Node *UNUSED(node)) 
+{
+  hdml_t *hdml;
+  Doc    *doc;
+
+  hdml = GET_HDML(pdoc);
+  doc  = hdml->doc;
+
+  s_output_to_hdml_out(hdml, "\n");
+
+  return hdml->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc   [i/o] The pointer to the HDML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_hdml_start_dd_tag(void *pdoc, Node *UNUSED(node)) 
+{
+  hdml_t *hdml;
+  Doc    *doc;
+
+  hdml = GET_HDML(pdoc);
+  doc  = hdml->doc;
+
+  s_output_to_hdml_out(hdml, "<WRAP>&nbsp;<TAB>");
+
+  return hdml->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc   [i/o] The pointer to the HDML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_hdml_end_dd_tag(void *pdoc, Node *UNUSED(node)) 
+{
+  hdml_t *hdml;
+  Doc    *doc;
+
+  hdml = GET_HDML(pdoc);
+  doc  = hdml->doc;
+
+  s_output_to_hdml_out(hdml, "\n");
+
+  return hdml->out;
+}
+
 /*
  * vim:ts=2 et
  */
index 6145467..8a0cc02 100644 (file)
@@ -78,6 +78,10 @@ static char *s_jhtml_chxjif_tag         (void *pdoc, Node *node);
 static char *s_jhtml_text_tag           (void *pdoc, Node *node);
 static char *s_jhtml_start_dl_tag       (void *pdoc, Node *node);
 static char *s_jhtml_end_dl_tag         (void *pdoc, Node *node);
+static char *s_jhtml_start_dt_tag       (void *pdoc, Node *node);
+static char *s_jhtml_end_dt_tag         (void *pdoc, Node *node);
+static char *s_jhtml_start_dd_tag       (void *pdoc, Node *node);
+static char *s_jhtml_end_dd_tag         (void *pdoc, Node *node);
 
 static void  s_init_jhtml(
   jhtml_t *jhtml,
@@ -302,8 +306,8 @@ tag_handler jhtml_handler[] = {
   },
   /* tagDT */
   {
-    NULL,
-    NULL,
+    s_jhtml_start_dt_tag,
+    s_jhtml_end_dt_tag,
   },
   /* tagLEGEND */
   {
@@ -322,8 +326,8 @@ tag_handler jhtml_handler[] = {
   },
   /* tagDD */
   {
-    NULL,
-    NULL,
+    s_jhtml_start_dd_tag,
+    s_jhtml_end_dd_tag,
   },
 };
 
@@ -2590,6 +2594,108 @@ s_jhtml_end_dl_tag(void *pdoc, Node *UNUSED(child))
 
   return jhtml->out;
 }
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_jhtml_start_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  jhtml_t      *jhtml;
+  Doc          *doc;
+  request_rec  *r;
+
+  jhtml = GET_JHTML(pdoc);
+  doc   = jhtml->doc;
+  r     = doc->r;
+
+
+  jhtml->out = apr_pstrcat(r->pool, jhtml->out, "<dt>", NULL);
+
+  return jhtml->out;
+}
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_jhtml_end_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  jhtml_t      *jhtml;
+  Doc          *doc;
+  request_rec  *r;
+
+  jhtml = GET_JHTML(pdoc);
+  doc   = jhtml->doc;
+  r     = doc->r;
+
+
+  jhtml->out = apr_pstrcat(r->pool, jhtml->out, "\n", NULL);
+
+  return jhtml->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_jhtml_start_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  jhtml_t      *jhtml;
+  Doc          *doc;
+  request_rec  *r;
+
+  jhtml = GET_JHTML(pdoc);
+  doc   = jhtml->doc;
+  r     = doc->r;
+
+  jhtml->out = apr_pstrcat(r->pool, jhtml->out, "<dd>", NULL);
+
+  return jhtml->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the CHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_jhtml_end_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  jhtml_t      *jhtml;
+  Doc          *doc;
+  request_rec  *r;
+
+  jhtml = GET_JHTML(pdoc);
+  doc   = jhtml->doc;
+  r     = doc->r;
+
+  jhtml->out = apr_pstrcat(r->pool, jhtml->out, "\n", NULL);
+
+  return jhtml->out;
+}
 /*
  * vim:ts=2 et
  */
index 8d22e3e..5ebf177 100644 (file)
@@ -89,6 +89,10 @@ static char *s_xhtml_1_0_end_b_tag        (void *pdoc, Node *node);
 static char *s_xhtml_1_0_chxjif_tag       (void *pdoc, Node *node);
 static char *s_xhtml_1_0_start_dl_tag     (void *pdoc, Node *node);
 static char *s_xhtml_1_0_end_dl_tag       (void *pdoc, Node *node);
+static char *s_xhtml_1_0_start_dt_tag     (void *pdoc, Node *node);
+static char *s_xhtml_1_0_end_dt_tag       (void *pdoc, Node *node);
+static char *s_xhtml_1_0_start_dd_tag     (void *pdoc, Node *node);
+static char *s_xhtml_1_0_end_dd_tag       (void *pdoc, Node *node);
 
 static void  s_init_xhtml(xhtml_t *xhtml, Doc *doc, request_rec *r, device_table *spec);
 static char* s_xhtml_1_0_text_tag(void *pdoc, Node *child);
@@ -307,8 +311,8 @@ tag_handler xhtml_handler[] = {
   },
   /* tagDT */
   {
-    NULL,
-    NULL,
+    s_xhtml_1_0_start_dt_tag,
+    s_xhtml_1_0_end_dt_tag,
   },
   /* tagLEGEND */
   {
@@ -327,8 +331,8 @@ tag_handler xhtml_handler[] = {
   },
   /* tagDD */
   {
-    NULL,
-    NULL,
+    s_xhtml_1_0_start_dd_tag,
+    s_xhtml_1_0_end_dd_tag,
   },
 };
  
@@ -2473,6 +2477,82 @@ s_xhtml_1_0_end_dl_tag(void *pdoc, Node *UNUSED(child))
 
   return xhtml->out;
 }
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the XHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_xhtml_1_0_start_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  xhtml_t      *xhtml = GET_XHTML(pdoc);
+  Doc          *doc   = xhtml->doc;
+  request_rec  *r     = doc->r;
+  xhtml->out = apr_pstrcat(r->pool, xhtml->out, "<dt>", NULL);
+  return xhtml->out;
+}
+
+
+/**
+ * It is a handler who processes the DT tag.
+ *
+ * @param pdoc  [i/o] The pointer to the XHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DT tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_xhtml_1_0_end_dt_tag(void *pdoc, Node *UNUSED(child))
+{
+  xhtml_t      *xhtml = GET_XHTML(pdoc);
+  Doc          *doc   = xhtml->doc;
+  request_rec  *r     = doc->r;
+  xhtml->out = apr_pstrcat(r->pool, xhtml->out, "\n", NULL);
+  return xhtml->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the XHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_xhtml_1_0_start_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  xhtml_t      *xhtml = GET_XHTML(pdoc);
+  Doc          *doc   = xhtml->doc;
+  request_rec  *r     = doc->r;
+  xhtml->out = apr_pstrcat(r->pool, xhtml->out, "<dd>", NULL);
+  return xhtml->out;
+}
+
+
+/**
+ * It is a handler who processes the DD tag.
+ *
+ * @param pdoc  [i/o] The pointer to the XHTML structure at the output
+ *                     destination is specified.
+ * @param node   [i]   The DD tag node is specified.
+ * @return The conversion result is returned.
+ */
+static char *
+s_xhtml_1_0_end_dd_tag(void *pdoc, Node *UNUSED(child))
+{
+  xhtml_t      *xhtml = GET_XHTML(pdoc);
+  Doc          *doc   = xhtml->doc;
+  request_rec  *r     = doc->r;
+  xhtml->out = apr_pstrcat(r->pool, xhtml->out, "\n", NULL);
+  return xhtml->out;
+}
 /*
  * vim:ts=2 et
  */