<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="resources/xml-stylesheet-pi-not-in-prolog.css" type="text/css" alternate="yes" title="alt1"?>
<?xml-stylesheet href="resources/xml-stylesheet-pi-not-in-prolog.css" type="text/css" alternate="no"?>
<?xml-stylesheet href="resources/xml-stylesheet-pi-not-in-prolog.css" type="text/css"?>
<!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" xml:lang="en">
    <head>
        <title>xml-stylesheet pseudo attribute alternate test</title>
        <script type="text/javascript">
            function runTest() {
                if (window.testRunner)
                    testRunner.dumpAsText();
                var pi = document.firstChild;
                if (pi.sheet.disabled != true) return;
                pi = pi.nextSibling;
                if (pi.sheet.disabled != false) return;
                pi = pi.nextSibling;
                if (pi.sheet.disabled != false) return;

                document.getElementById('result').innerHTML = 'SUCCESS';
            }
        </script>
    </head>
    <body onload="runTest();">
        <div id="result">FAILURE</div>
    </body>
</html>
