    /*
     * call-seq:
     *  internal_subset
     *
     * Get the internal subset
     */
    static VALUE internal_subset(VALUE self)
    {
      xmlNodePtr node;
      xmlDocPtr doc;
      xmlDtdPtr dtd;

      Data_Get_Struct(self, xmlNode, node);

      if(!node->doc) return Qnil;

      doc = node->doc;
      dtd = xmlGetIntSubset(doc);

      if(!dtd) return Qnil;

      return Nokogiri_wrap_xml_node(Qnil, (xmlNodePtr)dtd);
    }