<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xht="http://www.w3.org/1999/xhtml">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <body>
            <script type="text/javascript">
                if (window.testRunner)
                {
                    testRunner.dumpAsText();
                    testRunner.waitUntilDone();
                }

                function runTest()
                {
                    document.getElementsByTagNameNS('http://www.w3.org/1999/xhtml', 'style')[0];
                    if (document.body) {
                        document.body.innerHTML = "PASS";
                        if (window.testRunner)
                            testRunner.notifyDone();
                    }
                }
            </script>
            <svg:style>
                <xht:caption>
                    <xht:iframe onload="runTest();"></xht:iframe>
                    <style></style>
                </xht:caption>
            </svg:style>
        </body>
    </html>
    <!----->
</svg>
