(I am using 15rc2 because I need all the svg tags)

I am rendering a foreignObject svg tag. According to [MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject) I put body tag inside that tag and then whatever html I want in there.

``` html
<foreignObject>
  <body xmlns="http://www.w3.org/1999/xhtml">
   <!-- whatever html I want -->
  </body>
</foreignObject>
```

renderToString on the server leaves the body tag in place, and gives it a react-dataid. However when rendered on the client that body tag is removed. So when I look at the live elements, the body inside foreignObjects is gone, along with it's data-reactid.  The server source ( ie view page source ) shows that the body tag was rendered with the missing react-dataid.

The result is that you get a “Invariant Violation: Unable to find element with ID XX”, when the page updates, and somethings don't work.

Removing the body from inside the foreignObject tag seems to solve the problem, 

``` html
<foreignObject>
   <!-- whatever html I want -->
</foreignObject>
```

but I don't know if that is an "OK" solution to this or if that body tag is necessary in some scenarios.  But in either case this seems to be a scenario where server rendering results in different DOM/HTML then client rendering.

Is this a problem, or is the body tag not supposed to there anyway?

Todd

return ancestorInfo;
  };
  /**
   * Returns whether
   */
  var isTagValidWithParent = function(tag, parentTag) {
    
    switch (parentTag) {
      
      case 'select':
        return tag === 'option' || tag === 'optgroup' || tag === '#text';
      case 'optgroup':
        return tag === 'option' || tag === '#text';
      
      
      case 'option':
        return tag === '#text';
      
      
      
      
      
      case 'tr':
        return (
          tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' ||
          tag === 'template'
        );
      
      case 'tbody':
      case 'thead':