(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

case 'nobr':
        return ancestorInfo.nobrTagInScope;
    }
    return null;
  };
  /**
   * Given a ReactCompositeComponent instance, return a list of its recursive
   * owners, starting at the root and ending with the instance itself.
   */
  var findOwnerStack = function(instance) {
    if (!instance) {
      return [];
    }
    var stack = [];
    do {
      stack.push(instance);
    } while ((instance = instance._currentElement._owner));
    stack.reverse();
    return stack;
  };
  var didWarn = {};
  validateDOMNesting = function(childTag, childInstance, ancestorInfo) {
    ancestorInfo = ancestorInfo || emptyAncestorInfo;
    var parentInfo = ancestorInfo.current;
    var parentTag = parentInfo && parentInfo.tag;
    var invalidParent =
      isTagValidWithParent(childTag, parentTag) ? null : parentInfo;
    var invalidAncestor =
      invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);
    var problematic = invalidParent || invalidAncestor;