Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to insert XUL into a XHTML document

I have a XHTML document and want to embed XUL widgets into the document. What is the correct XML syntax to do so?

<!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" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
</head>
  <body>    
  insert XUL here
  </body>
</html>
like image 885
Fabian Jakobs Avatar asked Oct 19 '09 12:10

Fabian Jakobs


People also ask

Which elements are mandatory in an xhtml document?

An XHTML document must have an XHTML <!DOCTYPE> declaration. The <html>, <head>, <title>, and <body> elements must also be present, and the xmlns attribute in <html> must specify the xml namespace for the document.

Which one of the following is the root element of an xhtml document?

<html> is the root element of XHTML MP. All other elements should be enclosed within the <html></html> tags. The xmlns attribute is used to define the namespace for XHTML MP.


1 Answers

add xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" to your <html> tag.

then use <xul:element>, e.g. <xul:vbox>

Edit

<!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" 
      xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
</head>
  <body>    
    <xul:vbox>
    </xul:vbox>
  </body>
</html>

Also, I assume this isn't such a simple case... otherwise there wouldn't be much point in wrapping the xul in html (though the other way around does happen sometimes)

Edit

Some additional points to keep in mind when doing this:

  1. must be served with a valid xml type. e.g. application/xml or text/xml -- not text/html. (See https://bugzilla.mozilla.org/show_bug.cgi?id=101147#c12 -- the whole thread is worth a read)
  2. must be valid xml. A certain degree of sloppiness is tolerated by browsers when parsing html (unclosed tags, etc.) and this is not that case for a document containing xul (even the html parts of the document)

(thanks to Nikolay for the first point)

like image 68
Jonathan Fingland Avatar answered Sep 22 '22 07:09

Jonathan Fingland