chromium/third_party/blink/web_tests/fast/dom/serialize-nodes.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foo="http://foo.com" xmlns:bar="http://bar.com" version="-//W3C//DTD XHTML 1.1//EN" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XMLSerializer() namespace test</title>
<script>
window.addEventListener("load", function() {
    if (window.testRunner)
        testRunner.dumpAsText();
    
    var xs = new XMLSerializer();
    var content = document.getElementById('content');
    content.firstChild.nodeValue = xs.serializeToString(document.getElementById('input'));

    // Original test
    var d = document.implementation.createDocument("urn:foo-ns", "foo:root", null);
    if (!d.documentElement) {
        // This shouldn't happen, since DomImplementation.createDocument
        // is supposed to create the root element.  But in Safari, it's required.
        d.appendChild(d.createElementNS("urn:foo-ns", "foo:root"));
    }
    var root = d.documentElement;
    root.setAttributeNS("urn:foo-ns", "foo:type", "test")
    
    var c = d.createElementNS(null, "child");
    root.appendChild(c);
    
    c.setAttributeNS("urn:foo-ns", "foo:name", "one");
    c.setAttributeNS("urn:bar-ns", "bar:name", "two");
    var attr = d.createAttributeNS(null, "name");
    attr.value = "three";
    c.setAttributeNode(attr);
    
    window.alert("foo:name is " + c.getAttributeNS("urn:foo-ns", "name") + " and should be one");
    window.alert("bar:name is " + c.getAttributeNS("urn:bar-ns", "name") + " and should be two");
    window.alert("name is " + c.getAttributeNS(null, "name") + " and should be three");
    window.alert("node is " + d.getElementsByTagNameNS(null, "child").item(0).nodeName + " and should be child");
    window.alert(xs.serializeToString(d));
}, false);
</script>
</head>
<body>
<pre id="content">foo</pre>
<div id="input">
    <div>
        <foo:node xmlns="http://baz.com" foo:name="foo_name" bar:name="bar_name">
            <node foo:name="foo_name">
                <bar:node xmlns:bar="http://bar2.com"/>
            </node>
        </foo:node>
    </div>
    <bar:node>
        <br />
    </bar:node>
</div>
</body>
</html>