Image

Imagejdevelop wrote in Imageru_java

вопрос по JAXP

есть код на жабе

    public void prettyPrint(final Document document, final OutputStream target) {
        try {
            Transformer t = TransformerFactory.newInstance().newTransformer();
            if (tidyConfig.TidyXhtmlOut || tidyConfig.TidyXmlOut) {
                t.setOutputProperty(OutputKeys.METHOD, "xml");
                t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
                        "-//W3C//DTD XHTML 1.0 Strict//EN");
                Element root = document.getDocumentElement();
                root.setAttribute(XML_NAMESPACE_ATTRIBUTE,
                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd");
            } else {
                t.setOutputProperty(OutputKeys.METHOD, "html");
                t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
                        "-//W3C//DTD HTML 4.01 Transitional//EN");
            }
            t.transform(new DOMSource(document), new StreamResult(target));
            target.flush();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }



имеется документ вида

<?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">
<head>
<title></title>
</head>
<body>
<p><a id="a1" name="a1"></a> Here we go</p>
<script type="text/javascript">
//<![CDATA[
            var item = "&=";
            alert(item);
//]]>
</script>
</body>
</html>


после парсинга средствами NekoHTML и дальнейшей сериализации DOM в поток через prettyPrint получаю на выходе XHTML:

<?xml version="1.0" encoding="UTF-8"?><HTML xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<HEAD>
<TITLE />
</HEAD>
<BODY>
<P><A id="a1" /> Here we go</P>
<SCRIPT style=" list-style:text/javascript;">
//&lt;![CDATA[
            var item = "&amp;=";
            alert(item);
//]]&gt;
</SCRIPT>


</BODY></HTML>


вопросы:

1) почему для XHTML не сгенерировали DOCTYPE?
2) почему заэскейпилась <![CDATA[
3) кто и зачем переделал & в &amp; внутри скрипта?

Чота я туплю.