<?xml version="1.0"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
    <title></title>
    <script type="text/javascript">
        function test()
        {
            if (window.layoutTestController)
              layoutTestController.dumpAsText();
            var td = document.createElement("td");
            document.getElementById("target").appendChild(document.createTextNode(td.namespaceURI));
        }
    </script>
</head>
<body onload="test()">
    <div id="target">
        namespaceURI: 
    </div>
    <p>The above text should display the xhtml namespace uri. Bug 8007.
    </p>
</body>
</html>
