Mixing Your Applications into XHTML

An even more important feature of Modular XHTML is the option to add new elements that HTML doesn’t support. For instance, to include SVG pictures in your documents, you just have to import the SVG DTD and redefine the Misc.extra parameter entity to allow the SVG root element svg. (This only lets you validate XHTML documents that contain SVG markup. It doesn’t magically give the browser the ability to render these pictures.) You accomplish this by redefining any of these three parameter entity references:

%Inline.extra;

Place the root elements of your application here if you want them to be added to the content specifications of inline elements, such as span, em, code, and textarea.

%Block.extra;

Place the root elements of your application here if you want them to be added to the content specifications of block elements, such as div, h1, p, and pre.

%Misc.extra;

Place the root elements of your application here if you want them to be added to the content specifications of both block and inline elements.

The definition of each of these parameter entities should be a list of the elements you want to add to the content specification separated by vertical bars and beginning with a vertical bar. For instance, to include MathML equations as both inline and block elements, you’d import the MathML DTD and redefine the Misc.extra parameter entity to include the MathML root element math like this:

<!ENTITY % Misc.extra "| math">

If you wanted to allow block-level ...

Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.