<!DOCTYPE class>
<class name='Child'>
   A Child object is something contained by a parent, and this class contains methods to support that.  Most user code will not use this class directly.
  <include name='Node'>
    
  </include>
  <attribute name='parent' type='accessor'/>
  <method name='initialize'>
    <argument default='nil' name='parent'>
      if supplied, the parent of this child will be set to the supplied value, and self will be added to the parent
    </argument>
     Constructor.  Any inheritors of this class should call super to make sure this method is called. 
  </method>
  <method name='replace_with'>
    <argument name='child'/>
    <return>
      self
    </return>
     Replaces this object with another object.  Basically, calls Parent.replace_child 
  </method>
  <method name='remove'>
    <return>
      self
    </return>
     Removes this child from the parent. 
  </method>
  <alias alias='next_sibling' orig='next_sibling_node'>
    
  </alias>
  <alias alias='previous_sibling' orig='previous_sibling_node'>
    
  </alias>
  <method name='document'>
    <return>
      the document this child belongs to, or nil if this child belongs to no document
    </return>
     
  </method>
  <method name='bytes'>
     This doesn't yet handle encodings
  </method>
</class>