I’m having trouble adding Javascript as CDATA to .xml files. Is that possible? I’m starting from:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>XHTML 5 Example</title>
<script type="application/javascript">
<![CDATA[
function loadpdf() {
document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf";
}
]]>
</script>
</head>
<body onload="loadpdf()">
<p>This is an example of an
<abbr title="Extensible HyperText Markup Language">XHTML</abbr> 1.0 Strict document.<br/>
<img id="validation-icon"
src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0 Strict"/><br/>
<object id="pdf-object"
type="application/pdf"
data="http://www.w3.org/TR/xhtml1/xhtml1.pdf"
width="100"
height="500"/>
</p>
</body>
</html>
example#2 (I changed the width value to pass w3c validation)
can this file be saved as a well-formed .xml file, and should the javascript execute if so?
When putting a JavaScript
scripttag or CSSstyletag in XHTML, it is good form to place it in a<![CDATA[ ]]>tag. However, it will be viewed by the browser as part of your script. To prevent this part of the script from executing, simply comment out your<![CDATA[]]>tag:OR
This will allow you to use special characters in XML without needing to encode them, and will allow your script to execute properly without errors. Additionally, the multi-line comment is a good choice should white-space ever be parsed out.
EDIT to add:
I believe the
objectelement should have a closing tag (despite being empty) similar to how you should add a closing tag to thescripttag when an external source is specified. I haven’t been able to verify this as of yet.As for XHTML, the recommended file extension is still
.html, however you may save the file with any file extension (even .pdf). Just because you have labeled it as a different file extension doesn’t mean the content is necessarily valid for that extension, and doesn’t mean that applications will be able to read the file.Saving XHTML as a
.xmlfile is perfectly legitimate, and if it is properly formed XHTML it will be fully parsable by any application that can parse XML. If a web browser opens an XML file it will likely display the contents as an XML tree. If you would like the web browser to read it as a webpage, you should save it as such (.html)A word of caution: White space and line breaks are preserved in XML text nodes. If you parse a page using an XML parser and you’ve indented for readability purposes, the parser will include the line breaks and newline characters in the output.
The contents of the span will essentially be:
"\n Some text\n on multiple\n lines\n"A way around this is to extend the ending angle bracket to the beginning of a text node:
This works because extra white-space within an element is ignored.