Not quite; the inner list of rings basically only represents holes
http://www.geojson.org/geojson-spec.html#id18
the "coordinates" member must be an array of LinearRing coordinate arrays. For Polygons with multiple rings, the first must be the exterior ring and any others must be interior rings or holes.

So xoring is incorrect and I believe this formula does the right thing. I'm of course open to suggestions but I believe this properly supports geojson polygons.